@@ -66,9 +66,9 @@ func NewGenerator(gc GeneratorConfig) (*generator, error) {
6666}
6767
6868func (g * generator ) Generate () error {
69- g .generateFromContainers (g . Client )
70- g .generateAtInterval (g . Client , g . Configs )
71- g .generateFromEvents (g . Client , g . Configs )
69+ g .generateFromContainers ()
70+ g .generateAtInterval ()
71+ g .generateFromEvents ()
7272 g .generateFromSignals ()
7373 g .wg .Wait ()
7474
@@ -88,7 +88,7 @@ func (g *generator) generateFromSignals() {
8888 log .Printf ("Received signal: %s\n " , sig )
8989 switch sig {
9090 case syscall .SIGHUP :
91- g .generateFromContainers (g . Client )
91+ g .generateFromContainers ()
9292 case syscall .SIGQUIT , syscall .SIGKILL , syscall .SIGTERM , syscall .SIGINT :
9393 // exit when context is done
9494 return
@@ -97,8 +97,8 @@ func (g *generator) generateFromSignals() {
9797 }()
9898}
9999
100- func (g * generator ) generateFromContainers (client * docker. Client ) {
101- containers , err := g .getContainers (client )
100+ func (g * generator ) generateFromContainers () {
101+ containers , err := g .getContainers ()
102102 if err != nil {
103103 log .Printf ("error listing containers: %s\n " , err )
104104 return
@@ -110,12 +110,12 @@ func (g *generator) generateFromContainers(client *docker.Client) {
110110 continue
111111 }
112112 g .runNotifyCmd (config )
113- g .sendSignalToContainer (client , config )
113+ g .sendSignalToContainer (config )
114114 }
115115}
116116
117- func (g * generator ) generateAtInterval (client * docker. Client , configs ConfigFile ) {
118- for _ , config := range configs .Config {
117+ func (g * generator ) generateAtInterval () {
118+ for _ , config := range g . Configs .Config {
119119
120120 if config .Interval == 0 {
121121 continue
@@ -125,39 +125,39 @@ func (g *generator) generateAtInterval(client *docker.Client, configs ConfigFile
125125 g .wg .Add (1 )
126126 ticker := time .NewTicker (time .Duration (config .Interval ) * time .Second )
127127 quit := make (chan struct {})
128- configCopy := config
129- go func () {
128+ go func (config Config ) {
130129 defer g .wg .Done ()
131130 for {
132131 select {
133132 case <- ticker .C :
134- containers , err := g .getContainers (client )
133+ containers , err := g .getContainers ()
135134 if err != nil {
136135 log .Printf ("Error listing containers: %s\n " , err )
137136 continue
138137 }
139138 // ignore changed return value. always run notify command
140- GenerateFile (configCopy , containers )
141- g .runNotifyCmd (configCopy )
142- g .sendSignalToContainer (client , configCopy )
139+ GenerateFile (config , containers )
140+ g .runNotifyCmd (config )
141+ g .sendSignalToContainer (config )
143142 case <- quit :
144143 ticker .Stop ()
145144 return
146145 }
147146 }
148- }()
147+ }(config )
149148 }
150149}
151150
152- func (g * generator ) generateFromEvents (client * docker. Client , configs ConfigFile ) {
153- configs = configs .FilterWatches ()
151+ func (g * generator ) generateFromEvents () {
152+ configs := g . Configs .FilterWatches ()
154153 if len (configs .Config ) == 0 {
155154 return
156155 }
157156
158157 g .wg .Add (1 )
159158 defer g .wg .Done ()
160159
160+ client := g .Client
161161 for {
162162 if client == nil {
163163 var err error
@@ -174,7 +174,7 @@ func (g *generator) generateFromEvents(client *docker.Client, configs ConfigFile
174174 time .Sleep (10 * time .Second )
175175 continue
176176 }
177- g .generateFromContainers (client )
177+ g .generateFromContainers ()
178178 }
179179
180180 eventChan := make (chan * docker.APIEvents , 100 )
@@ -224,7 +224,7 @@ func (g *generator) generateFromEvents(client *docker.Client, configs ConfigFile
224224
225225 if event .Status == "start" || event .Status == "stop" || event .Status == "die" {
226226 log .Printf ("Received event %s for container %s" , event .Status , event .ID [:12 ])
227- g .generateFromContainers (client )
227+ g .generateFromContainers ()
228228 }
229229 case <- time .After (10 * time .Second ):
230230 // check for docker liveness
@@ -254,7 +254,7 @@ func (g *generator) runNotifyCmd(config Config) {
254254 }
255255}
256256
257- func (g * generator ) sendSignalToContainer (client * docker. Client , config Config ) {
257+ func (g * generator ) sendSignalToContainer (config Config ) {
258258 if len (config .NotifyContainers ) < 1 {
259259 return
260260 }
@@ -265,21 +265,21 @@ func (g *generator) sendSignalToContainer(client *docker.Client, config Config)
265265 ID : container ,
266266 Signal : signal ,
267267 }
268- if err := client .KillContainer (killOpts ); err != nil {
268+ if err := g . Client .KillContainer (killOpts ); err != nil {
269269 log .Printf ("Error sending signal to container: %s" , err )
270270 }
271271 }
272272}
273273
274- func (g * generator ) getContainers (client * docker. Client ) ([]* RuntimeContainer , error ) {
275- apiInfo , err := client .Info ()
274+ func (g * generator ) getContainers () ([]* RuntimeContainer , error ) {
275+ apiInfo , err := g . Client .Info ()
276276 if err != nil {
277277 log .Printf ("error retrieving docker server info: %s\n " , err )
278278 }
279279
280280 SetServerInfo (apiInfo )
281281
282- apiContainers , err := client .ListContainers (docker.ListContainersOptions {
282+ apiContainers , err := g . Client .ListContainers (docker.ListContainersOptions {
283283 All : false ,
284284 Size : false ,
285285 })
@@ -289,7 +289,7 @@ func (g *generator) getContainers(client *docker.Client) ([]*RuntimeContainer, e
289289
290290 containers := []* RuntimeContainer {}
291291 for _ , apiContainer := range apiContainers {
292- container , err := client .InspectContainer (apiContainer .ID )
292+ container , err := g . Client .InspectContainer (apiContainer .ID )
293293 if err != nil {
294294 log .Printf ("error inspecting container: %s: %s\n " , apiContainer .ID , err )
295295 continue
0 commit comments