Skip to content

Commit 9e1d7f1

Browse files
committed
refactor: factor out container signaling function
1 parent efe16fe commit 9e1d7f1

File tree

1 file changed

+27
-35
lines changed

1 file changed

+27
-35
lines changed

internal/generator/generator.go

Lines changed: 27 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ func (g *generator) generateFromContainers() {
132132
continue
133133
}
134134
g.runNotifyCmd(config)
135-
g.sendSignalToContainer(config)
136135
g.sendSignalToContainers(config)
136+
g.sendSignalToFilteredContainers(config)
137137
}
138138
}
139139

@@ -163,8 +163,8 @@ func (g *generator) generateAtInterval() {
163163
// ignore changed return value. always run notify command
164164
template.GenerateFile(cfg, containers)
165165
g.runNotifyCmd(cfg)
166-
g.sendSignalToContainer(cfg)
167166
g.sendSignalToContainers(cfg)
167+
g.sendSignalToFilteredContainers(cfg)
168168
case sig := <-sigChan:
169169
log.Printf("Received signal: %s\n", sig)
170170
switch sig {
@@ -212,8 +212,8 @@ func (g *generator) generateFromEvents() {
212212
continue
213213
}
214214
g.runNotifyCmd(cfg)
215-
g.sendSignalToContainer(cfg)
216215
g.sendSignalToContainers(cfg)
216+
g.sendSignalToFilteredContainers(cfg)
217217
}
218218
}(cfg)
219219
}
@@ -335,32 +335,36 @@ func (g *generator) runNotifyCmd(config config.Config) {
335335
}
336336
}
337337

338-
func (g *generator) sendSignalToContainer(config config.Config) {
339-
if len(config.NotifyContainers) < 1 {
338+
func (g *generator) sendSignalToContainer(container string, signal int) {
339+
log.Printf("Sending container '%s' signal '%v'", container, signal)
340+
341+
if signal == -1 {
342+
if err := g.Client.RestartContainer(container, 10); err != nil {
343+
log.Printf("Error sending restarting container: %s", err)
344+
}
340345
return
341346
}
342347

343-
for container, signal := range config.NotifyContainers {
344-
log.Printf("Sending container '%s' signal '%v'", container, signal)
348+
killOpts := docker.KillContainerOptions{
349+
ID: container,
350+
Signal: docker.Signal(signal),
351+
}
352+
if err := g.Client.KillContainer(killOpts); err != nil {
353+
log.Printf("Error sending signal to container: %s", err)
354+
}
355+
}
345356

346-
if signal == -1 {
347-
if err := g.Client.RestartContainer(container, 10); err != nil {
348-
log.Printf("Error sending restarting container: %s", err)
349-
}
350-
return
351-
}
357+
func (g *generator) sendSignalToContainers(config config.Config) {
358+
if len(config.NotifyContainers) < 1 {
359+
return
360+
}
352361

353-
killOpts := docker.KillContainerOptions{
354-
ID: container,
355-
Signal: docker.Signal(signal),
356-
}
357-
if err := g.Client.KillContainer(killOpts); err != nil {
358-
log.Printf("Error sending signal to container: %s", err)
359-
}
362+
for container, signal := range config.NotifyContainers {
363+
g.sendSignalToContainer(container, signal)
360364
}
361365
}
362366

363-
func (g *generator) sendSignalToContainers(config config.Config) {
367+
func (g *generator) sendSignalToFilteredContainers(config config.Config) {
364368
if len(config.NotifyContainersFilter) < 1 {
365369
return
366370
}
@@ -372,21 +376,9 @@ func (g *generator) sendSignalToContainers(config config.Config) {
372376
log.Printf("Error getting containers: %s", err)
373377
return
374378
}
379+
375380
for _, container := range containers {
376-
log.Printf("Sending container '%s' signal '%v'", container.ID, config.NotifyContainersSignal)
377-
if config.NotifyContainersSignal == -1 {
378-
if err := g.Client.RestartContainer(container.ID, 10); err != nil {
379-
log.Printf("Error sending restarting container: %s", err)
380-
}
381-
} else {
382-
killOpts := docker.KillContainerOptions{
383-
ID: container.ID,
384-
Signal: docker.Signal(config.NotifyContainersSignal),
385-
}
386-
if err := g.Client.KillContainer(killOpts); err != nil {
387-
log.Printf("Error sending signal to container: %s", err)
388-
}
389-
}
381+
g.sendSignalToContainer(container.ID, config.NotifyContainersSignal)
390382
}
391383
}
392384

0 commit comments

Comments
 (0)