mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-21 22:36:39 +00:00
plugins/traffic-control/docker: integrate loopIteration() into Start()
Move `loopIteration()` code in an anonymous function inside `Start()`.
This commit is contained in:
@@ -29,36 +29,34 @@ func NewDockerClient(store *Store) (*DockerClient, error) {
|
||||
// Start docker client
|
||||
func (c *DockerClient) Start() {
|
||||
for {
|
||||
c.loopIteration()
|
||||
func() {
|
||||
events := make(chan *docker.APIEvents)
|
||||
if err := c.client.AddEventListener(events); err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
defer func() {
|
||||
if err := c.client.RemoveEventListener(events); err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
}()
|
||||
if err := c.getContainers(); err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
for {
|
||||
event, ok := <-events
|
||||
if !ok {
|
||||
log.Error("event listener unexpectedly disconnected")
|
||||
return
|
||||
}
|
||||
c.handleEvent(event)
|
||||
}
|
||||
}()
|
||||
time.Sleep(time.Second)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *DockerClient) loopIteration() {
|
||||
events := make(chan *docker.APIEvents)
|
||||
if err := c.client.AddEventListener(events); err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
defer func() {
|
||||
if err := c.client.RemoveEventListener(events); err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
}()
|
||||
if err := c.getContainers(); err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
for {
|
||||
event, ok := <-events
|
||||
if !ok {
|
||||
log.Error("event listener unexpectedly disconnected")
|
||||
return
|
||||
}
|
||||
c.handleEvent(event)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *DockerClient) getContainers() error {
|
||||
apiContainers, err := c.client.ListContainers(docker.ListContainersOptions{All: true})
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user