12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package daemon
- import (
- "testing"
- "time"
- "github.com/docker/docker/container"
- "github.com/docker/docker/daemon/events"
- containertypes "github.com/docker/engine-api/types/container"
- eventtypes "github.com/docker/engine-api/types/events"
- )
- func TestLogContainerEventCopyLabels(t *testing.T) {
- e := events.New()
- _, l, _ := e.Subscribe()
- defer e.Evict(l)
- container := &container.Container{
- CommonContainer: container.CommonContainer{
- ID: "container_id",
- Name: "container_name",
- Config: &containertypes.Config{
- Image: "image_name",
- Labels: map[string]string{
- "node": "1",
- "os": "alpine",
- },
- },
- },
- }
- daemon := &Daemon{
- EventsService: e,
- }
- daemon.LogContainerEvent(container, "create")
- if _, mutated := container.Config.Labels["image"]; mutated {
- t.Fatalf("Expected to not mutate the container labels, got %q", container.Config.Labels)
- }
- validateTestAttributes(t, l, map[string]string{
- "node": "1",
- "os": "alpine",
- })
- }
- func TestLogContainerEventWithAttributes(t *testing.T) {
- e := events.New()
- _, l, _ := e.Subscribe()
- defer e.Evict(l)
- container := &container.Container{
- CommonContainer: container.CommonContainer{
- ID: "container_id",
- Name: "container_name",
- Config: &containertypes.Config{
- Labels: map[string]string{
- "node": "1",
- "os": "alpine",
- },
- },
- },
- }
- daemon := &Daemon{
- EventsService: e,
- }
- attributes := map[string]string{
- "node": "2",
- "foo": "bar",
- }
- daemon.LogContainerEventWithAttributes(container, "create", attributes)
- validateTestAttributes(t, l, map[string]string{
- "node": "1",
- "foo": "bar",
- })
- }
- func validateTestAttributes(t *testing.T, l chan interface{}, expectedAttributesToTest map[string]string) {
- select {
- case ev := <-l:
- event, ok := ev.(eventtypes.Message)
- if !ok {
- t.Fatalf("Unexpected event message: %q", ev)
- }
- for key, expected := range expectedAttributesToTest {
- actual, ok := event.Actor.Attributes[key]
- if !ok || actual != expected {
- t.Fatalf("Expected value for key %s to be %s, but was %s (event:%v)", key, expected, actual, event)
- }
- }
- case <-time.After(10 * time.Second):
- t.Fatalf("LogEvent test timed out")
- }
- }
|