github.com/dinever/docker@v1.11.1/integration-cli/docker_cli_info_test.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "net" 6 "strings" 7 8 "github.com/docker/docker/pkg/integration/checker" 9 "github.com/docker/docker/utils" 10 "github.com/go-check/check" 11 ) 12 13 // ensure docker info succeeds 14 func (s *DockerSuite) TestInfoEnsureSucceeds(c *check.C) { 15 out, _ := dockerCmd(c, "info") 16 17 // always shown fields 18 stringsToCheck := []string{ 19 "ID:", 20 "Containers:", 21 " Running:", 22 " Paused:", 23 " Stopped:", 24 "Images:", 25 "OSType:", 26 "Architecture:", 27 "Logging Driver:", 28 "Operating System:", 29 "CPUs:", 30 "Total Memory:", 31 "Kernel Version:", 32 "Storage Driver:", 33 "Volume:", 34 "Network:", 35 } 36 37 if utils.ExperimentalBuild() { 38 stringsToCheck = append(stringsToCheck, "Experimental: true") 39 } 40 41 for _, linePrefix := range stringsToCheck { 42 c.Assert(out, checker.Contains, linePrefix, check.Commentf("couldn't find string %v in output", linePrefix)) 43 } 44 } 45 46 // TestInfoDiscoveryBackend verifies that a daemon run with `--cluster-advertise` and 47 // `--cluster-store` properly show the backend's endpoint in info output. 48 func (s *DockerSuite) TestInfoDiscoveryBackend(c *check.C) { 49 testRequires(c, SameHostDaemon, DaemonIsLinux) 50 51 d := NewDaemon(c) 52 discoveryBackend := "consul://consuladdr:consulport/some/path" 53 discoveryAdvertise := "1.1.1.1:2375" 54 err := d.Start(fmt.Sprintf("--cluster-store=%s", discoveryBackend), fmt.Sprintf("--cluster-advertise=%s", discoveryAdvertise)) 55 c.Assert(err, checker.IsNil) 56 defer d.Stop() 57 58 out, err := d.Cmd("info") 59 c.Assert(err, checker.IsNil) 60 c.Assert(out, checker.Contains, fmt.Sprintf("Cluster store: %s\n", discoveryBackend)) 61 c.Assert(out, checker.Contains, fmt.Sprintf("Cluster advertise: %s\n", discoveryAdvertise)) 62 } 63 64 // TestInfoDiscoveryInvalidAdvertise verifies that a daemon run with 65 // an invalid `--cluster-advertise` configuration 66 func (s *DockerSuite) TestInfoDiscoveryInvalidAdvertise(c *check.C) { 67 testRequires(c, SameHostDaemon, DaemonIsLinux) 68 69 d := NewDaemon(c) 70 discoveryBackend := "consul://consuladdr:consulport/some/path" 71 72 // --cluster-advertise with an invalid string is an error 73 err := d.Start(fmt.Sprintf("--cluster-store=%s", discoveryBackend), "--cluster-advertise=invalid") 74 c.Assert(err, checker.Not(checker.IsNil)) 75 76 // --cluster-advertise without --cluster-store is also an error 77 err = d.Start("--cluster-advertise=1.1.1.1:2375") 78 c.Assert(err, checker.Not(checker.IsNil)) 79 } 80 81 // TestInfoDiscoveryAdvertiseInterfaceName verifies that a daemon run with `--cluster-advertise` 82 // configured with interface name properly show the advertise ip-address in info output. 83 func (s *DockerSuite) TestInfoDiscoveryAdvertiseInterfaceName(c *check.C) { 84 testRequires(c, SameHostDaemon, Network, DaemonIsLinux) 85 86 d := NewDaemon(c) 87 discoveryBackend := "consul://consuladdr:consulport/some/path" 88 discoveryAdvertise := "eth0" 89 90 err := d.Start(fmt.Sprintf("--cluster-store=%s", discoveryBackend), fmt.Sprintf("--cluster-advertise=%s:2375", discoveryAdvertise)) 91 c.Assert(err, checker.IsNil) 92 defer d.Stop() 93 94 iface, err := net.InterfaceByName(discoveryAdvertise) 95 c.Assert(err, checker.IsNil) 96 addrs, err := iface.Addrs() 97 c.Assert(err, checker.IsNil) 98 c.Assert(len(addrs), checker.GreaterThan, 0) 99 ip, _, err := net.ParseCIDR(addrs[0].String()) 100 c.Assert(err, checker.IsNil) 101 102 out, err := d.Cmd("info") 103 c.Assert(err, checker.IsNil) 104 c.Assert(out, checker.Contains, fmt.Sprintf("Cluster store: %s\n", discoveryBackend)) 105 c.Assert(out, checker.Contains, fmt.Sprintf("Cluster advertise: %s:2375\n", ip.String())) 106 } 107 108 func (s *DockerSuite) TestInfoDisplaysRunningContainers(c *check.C) { 109 testRequires(c, DaemonIsLinux) 110 111 dockerCmd(c, "run", "-d", "busybox", "top") 112 out, _ := dockerCmd(c, "info") 113 c.Assert(out, checker.Contains, fmt.Sprintf("Containers: %d\n", 1)) 114 c.Assert(out, checker.Contains, fmt.Sprintf(" Running: %d\n", 1)) 115 c.Assert(out, checker.Contains, fmt.Sprintf(" Paused: %d\n", 0)) 116 c.Assert(out, checker.Contains, fmt.Sprintf(" Stopped: %d\n", 0)) 117 } 118 119 func (s *DockerSuite) TestInfoDisplaysPausedContainers(c *check.C) { 120 testRequires(c, DaemonIsLinux) 121 122 out, _ := dockerCmd(c, "run", "-d", "busybox", "top") 123 cleanedContainerID := strings.TrimSpace(out) 124 125 dockerCmd(c, "pause", cleanedContainerID) 126 127 out, _ = dockerCmd(c, "info") 128 c.Assert(out, checker.Contains, fmt.Sprintf("Containers: %d\n", 1)) 129 c.Assert(out, checker.Contains, fmt.Sprintf(" Running: %d\n", 0)) 130 c.Assert(out, checker.Contains, fmt.Sprintf(" Paused: %d\n", 1)) 131 c.Assert(out, checker.Contains, fmt.Sprintf(" Stopped: %d\n", 0)) 132 } 133 134 func (s *DockerSuite) TestInfoDisplaysStoppedContainers(c *check.C) { 135 testRequires(c, DaemonIsLinux) 136 137 out, _ := dockerCmd(c, "run", "-d", "busybox", "top") 138 cleanedContainerID := strings.TrimSpace(out) 139 140 dockerCmd(c, "stop", cleanedContainerID) 141 142 out, _ = dockerCmd(c, "info") 143 c.Assert(out, checker.Contains, fmt.Sprintf("Containers: %d\n", 1)) 144 c.Assert(out, checker.Contains, fmt.Sprintf(" Running: %d\n", 0)) 145 c.Assert(out, checker.Contains, fmt.Sprintf(" Paused: %d\n", 0)) 146 c.Assert(out, checker.Contains, fmt.Sprintf(" Stopped: %d\n", 1)) 147 } 148 149 func (s *DockerSuite) TestInfoDebug(c *check.C) { 150 testRequires(c, SameHostDaemon, DaemonIsLinux) 151 152 d := NewDaemon(c) 153 err := d.Start("--debug") 154 c.Assert(err, checker.IsNil) 155 defer d.Stop() 156 157 out, err := d.Cmd("--debug", "info") 158 c.Assert(err, checker.IsNil) 159 c.Assert(out, checker.Contains, "Debug mode (client): true\n") 160 c.Assert(out, checker.Contains, "Debug mode (server): true\n") 161 c.Assert(out, checker.Contains, "File Descriptors") 162 c.Assert(out, checker.Contains, "Goroutines") 163 c.Assert(out, checker.Contains, "System Time") 164 c.Assert(out, checker.Contains, "EventsListeners") 165 c.Assert(out, checker.Contains, "Docker Root Dir") 166 }