support docker rename events

This commit is contained in:
Paul Bellamy
2016-04-18 14:39:48 +01:00
parent 4810bbc572
commit 497270eff7
2 changed files with 30 additions and 4 deletions

View File

@@ -14,6 +14,7 @@ import (
const (
CreateEvent = "create"
DestroyEvent = "destroy"
RenameEvent = "rename"
StartEvent = "start"
DieEvent = "die"
PauseEvent = "pause"
@@ -238,7 +239,7 @@ func (r *registry) updateImages() error {
func (r *registry) handleEvent(event *docker_client.APIEvents) {
switch event.Status {
case CreateEvent, StartEvent, DieEvent, DestroyEvent, PauseEvent, UnpauseEvent:
case CreateEvent, RenameEvent, StartEvent, DieEvent, DestroyEvent, PauseEvent, UnpauseEvent:
r.updateContainerState(event.ID)
}
}

View File

@@ -203,9 +203,22 @@ var (
},
},
}
apiContainer1 = client.APIContainers{ID: "ping"}
apiContainer2 = client.APIContainers{ID: "wiff"}
apiImage1 = client.APIImages{ID: "baz", RepoTags: []string{"bang", "not-chosen"}}
renamedContainer = &client.Container{
ID: "renamed",
Name: "renamed",
Image: "baz",
State: client.State{Pid: 1, Running: true},
Config: &client.Config{
Labels: map[string]string{
"foo1": "bar1",
"foo2": "bar2",
},
},
}
apiContainer1 = client.APIContainers{ID: "ping"}
apiContainer2 = client.APIContainers{ID: "wiff"}
renamedAPIContainer = client.APIContainers{ID: "renamed"}
apiImage1 = client.APIImages{ID: "baz", RepoTags: []string{"bang", "not-chosen"}}
)
func newMockClient() *mockDockerClient {
@@ -350,5 +363,17 @@ func TestRegistryEvents(t *testing.T) {
want := []docker.Container{}
check(want)
}
{
mdc.Lock()
mdc.apiContainers = []client.APIContainers{renamedAPIContainer}
mdc.containers[renamedContainer.ID] = renamedContainer
mdc.Unlock()
mdc.send(&client.APIEvents{Status: docker.RenameEvent, ID: renamedContainer.ID})
runtime.Gosched()
want := []docker.Container{&mockContainer{renamedContainer}}
check(want)
}
})
}