@@ -33,6 +33,10 @@ import (
33
33
)
34
34
35
35
func TestReloader (t * testing.T ) {
36
+ oldRegistry := reload .RegisterV2
37
+ defer func () { reload .RegisterV2 = oldRegistry }()
38
+ reload .RegisterV2 = reload .NewRegistry ()
39
+
36
40
type runner struct {
37
41
running chan struct {}
38
42
stopped chan struct {}
@@ -55,9 +59,7 @@ func TestReloader(t *testing.T) {
55
59
panic ("unreachable" )
56
60
}
57
61
58
- registry := reload .NewRegistry ()
59
-
60
- reloader , err := NewReloader (beat.Info {}, registry , func (args RunnerParams ) (Runner , error ) {
62
+ reloader , err := NewReloader (beat.Info {}, func (args RunnerParams ) (Runner , error ) {
61
63
if shouldError , _ := args .Config .Bool ("error" , - 1 ); shouldError {
62
64
return nil , errors .New ("no runner for you" )
63
65
}
@@ -84,29 +86,29 @@ func TestReloader(t *testing.T) {
84
86
// No reload until there's input, output, apm tracing configuration.
85
87
assertNoReload ()
86
88
87
- err = registry .GetInputList ().Reload ([]* reload.ConfigWithMeta {{
89
+ err = reload . RegisterV2 .GetInputList ().Reload ([]* reload.ConfigWithMeta {{
88
90
Config : config .MustNewConfigFrom (`{}` ),
89
91
}})
90
92
assert .EqualError (t , err , "failed to extract input config revision: missing field accessing 'revision'" )
91
93
assertNoReload ()
92
94
93
- err = registry .GetInputList ().Reload ([]* reload.ConfigWithMeta {{
95
+ err = reload . RegisterV2 .GetInputList ().Reload ([]* reload.ConfigWithMeta {{
94
96
Config : config .MustNewConfigFrom (`{"revision": 1}` ),
95
97
}})
96
98
assert .NoError (t , err )
97
99
assertNoReload ()
98
100
99
- err = registry .GetReloadableOutput ().Reload (& reload.ConfigWithMeta {
101
+ err = reload . RegisterV2 .GetReloadableOutput ().Reload (& reload.ConfigWithMeta {
100
102
Config : config .MustNewConfigFrom (`{}` ),
101
103
})
102
104
assert .NoError (t , err )
103
105
assertNoReload () // an output must be set
104
106
105
- err = registry .GetReloadableAPM ().Reload (nil )
107
+ err = reload . RegisterV2 .GetReloadableAPM ().Reload (nil )
106
108
assert .NoError (t , err )
107
109
assertNoReload ()
108
110
109
- err = registry .GetReloadableOutput ().Reload (& reload.ConfigWithMeta {
111
+ err = reload . RegisterV2 .GetReloadableOutput ().Reload (& reload.ConfigWithMeta {
110
112
Config : config .MustNewConfigFrom (`{"console.enabled": true}` ),
111
113
})
112
114
assert .NoError (t , err )
@@ -116,14 +118,14 @@ func TestReloader(t *testing.T) {
116
118
expectEvent (t , r1 .running , "runner should have been started" )
117
119
expectNoEvent (t , r1 .stopped , "runner should not have been stopped" )
118
120
119
- err = registry .GetInputList ().Reload ([]* reload.ConfigWithMeta {{
121
+ err = reload . RegisterV2 .GetInputList ().Reload ([]* reload.ConfigWithMeta {{
120
122
Config : config .MustNewConfigFrom (`{"revision": 2, "error": true}` ),
121
123
}})
122
124
assert .EqualError (t , err , "failed to load input config: no runner for you" )
123
125
assertNoReload () // error occurred during reload, nothing changes
124
126
expectNoEvent (t , r1 .stopped , "runner should not have been stopped" )
125
127
126
- err = registry .GetInputList ().Reload ([]* reload.ConfigWithMeta {{
128
+ err = reload . RegisterV2 .GetInputList ().Reload ([]* reload.ConfigWithMeta {{
127
129
Config : config .MustNewConfigFrom (`{"revision": 3}` ),
128
130
}})
129
131
assert .NoError (t , err )
@@ -132,7 +134,7 @@ func TestReloader(t *testing.T) {
132
134
expectEvent (t , r2 .running , "new runner should have been started" )
133
135
expectNoEvent (t , r2 .stopped , "new runner should not have been stopped" )
134
136
135
- err = registry .GetReloadableAPM ().Reload (& reload.ConfigWithMeta {
137
+ err = reload . RegisterV2 .GetReloadableAPM ().Reload (& reload.ConfigWithMeta {
136
138
Config : config .MustNewConfigFrom (`{"elastic.enabled": true, "elastic.api_key": "boo"}` ),
137
139
})
138
140
assert .NoError (t , err )
@@ -146,11 +148,13 @@ func TestReloader(t *testing.T) {
146
148
}
147
149
148
150
func TestReloaderNewRunnerParams (t * testing.T ) {
149
- registry := reload .NewRegistry ()
151
+ oldRegistry := reload .RegisterV2
152
+ defer func () { reload .RegisterV2 = oldRegistry }()
153
+ reload .RegisterV2 = reload .NewRegistry ()
150
154
151
155
calls := make (chan RunnerParams , 1 )
152
156
info := beat.Info {Beat : "not-apm-server" , Version : "0.0.1" }
153
- reloader , err := NewReloader (info , registry , func (args RunnerParams ) (Runner , error ) {
157
+ reloader , err := NewReloader (info , func (args RunnerParams ) (Runner , error ) {
154
158
calls <- args
155
159
return runnerFunc (func (ctx context.Context ) error {
156
160
<- ctx .Done ()
@@ -165,18 +169,18 @@ func TestReloaderNewRunnerParams(t *testing.T) {
165
169
defer func () { assert .NoError (t , g .Wait ()) }()
166
170
defer cancel ()
167
171
168
- registry .GetInputList ().Reload ([]* reload.ConfigWithMeta {{
172
+ reload . RegisterV2 .GetInputList ().Reload ([]* reload.ConfigWithMeta {{
169
173
Config : config .MustNewConfigFrom (`{"revision": 1, "input": 123}` ),
170
174
}})
171
175
172
176
// reloader will wait until input and output are available.
173
177
// triggering APM reload before output reload will let the params to contain
174
178
// the apm tracing config too in this test setup
175
- registry .GetReloadableAPM ().Reload (& reload.ConfigWithMeta {
179
+ reload . RegisterV2 .GetReloadableAPM ().Reload (& reload.ConfigWithMeta {
176
180
Config : config .MustNewConfigFrom (`{"elastic.environment": "test"}` ),
177
181
})
178
182
179
- registry .GetReloadableOutput ().Reload (& reload.ConfigWithMeta {
183
+ reload . RegisterV2 .GetReloadableOutput ().Reload (& reload.ConfigWithMeta {
180
184
Config : config .MustNewConfigFrom (`{"console.enabled": true}` ),
181
185
})
182
186
args := <- calls
0 commit comments