github.com/kim0/docker@v0.6.2-0.20161130212042-4addda3f07e7/integration-cli/docker_cli_stack_test.go (about) 1 package main 2 3 import ( 4 "io/ioutil" 5 "os" 6 7 "github.com/docker/docker/pkg/integration/checker" 8 "github.com/go-check/check" 9 ) 10 11 func (s *DockerSwarmSuite) TestStackRemove(c *check.C) { 12 testRequires(c, ExperimentalDaemon) 13 d := s.AddDaemon(c, true, true) 14 15 stackArgs := append([]string{"stack", "remove", "UNKNOWN_STACK"}) 16 17 out, err := d.Cmd(stackArgs...) 18 c.Assert(err, checker.IsNil) 19 c.Assert(out, check.Equals, "Nothing found in stack: UNKNOWN_STACK\n") 20 } 21 22 func (s *DockerSwarmSuite) TestStackTasks(c *check.C) { 23 testRequires(c, ExperimentalDaemon) 24 d := s.AddDaemon(c, true, true) 25 26 stackArgs := append([]string{"stack", "ps", "UNKNOWN_STACK"}) 27 28 out, err := d.Cmd(stackArgs...) 29 c.Assert(err, checker.IsNil) 30 c.Assert(out, check.Equals, "Nothing found in stack: UNKNOWN_STACK\n") 31 } 32 33 func (s *DockerSwarmSuite) TestStackServices(c *check.C) { 34 testRequires(c, ExperimentalDaemon) 35 d := s.AddDaemon(c, true, true) 36 37 stackArgs := append([]string{"stack", "services", "UNKNOWN_STACK"}) 38 39 out, err := d.Cmd(stackArgs...) 40 c.Assert(err, checker.IsNil) 41 c.Assert(out, check.Equals, "Nothing found in stack: UNKNOWN_STACK\n") 42 } 43 44 // testDAB is the DAB JSON used for testing. 45 // TODO: Use template/text and substitute "Image" with the result of 46 // `docker inspect --format '{{index .RepoDigests 0}}' busybox:latest` 47 const testDAB = `{ 48 "Version": "0.1", 49 "Services": { 50 "srv1": { 51 "Image": "busybox@sha256:e4f93f6ed15a0cdd342f5aae387886fba0ab98af0a102da6276eaf24d6e6ade0", 52 "Command": ["top"] 53 }, 54 "srv2": { 55 "Image": "busybox@sha256:e4f93f6ed15a0cdd342f5aae387886fba0ab98af0a102da6276eaf24d6e6ade0", 56 "Command": ["tail"], 57 "Args": ["-f", "/dev/null"] 58 } 59 } 60 }` 61 62 func (s *DockerSwarmSuite) TestStackWithDAB(c *check.C) { 63 testRequires(c, ExperimentalDaemon) 64 // setup 65 testStackName := "test" 66 testDABFileName := testStackName + ".dab" 67 defer os.RemoveAll(testDABFileName) 68 err := ioutil.WriteFile(testDABFileName, []byte(testDAB), 0444) 69 c.Assert(err, checker.IsNil) 70 d := s.AddDaemon(c, true, true) 71 // deploy 72 stackArgs := []string{"stack", "deploy", testStackName} 73 out, err := d.Cmd(stackArgs...) 74 c.Assert(err, checker.IsNil) 75 c.Assert(out, checker.Contains, "Loading bundle from test.dab\n") 76 c.Assert(out, checker.Contains, "Creating service test_srv1\n") 77 c.Assert(out, checker.Contains, "Creating service test_srv2\n") 78 // ls 79 stackArgs = []string{"stack", "ls"} 80 out, err = d.Cmd(stackArgs...) 81 c.Assert(err, checker.IsNil) 82 c.Assert(out, check.Equals, "NAME SERVICES\n"+"test 2\n") 83 // rm 84 stackArgs = []string{"stack", "rm", testStackName} 85 out, err = d.Cmd(stackArgs...) 86 c.Assert(err, checker.IsNil) 87 c.Assert(out, checker.Contains, "Removing service test_srv1\n") 88 c.Assert(out, checker.Contains, "Removing service test_srv2\n") 89 // ls (empty) 90 stackArgs = []string{"stack", "ls"} 91 out, err = d.Cmd(stackArgs...) 92 c.Assert(err, checker.IsNil) 93 c.Assert(out, check.Equals, "NAME SERVICES\n") 94 } 95 96 func (s *DockerSwarmSuite) TestStackWithDABExtension(c *check.C) { 97 testRequires(c, ExperimentalDaemon) 98 // setup 99 testStackName := "test.dab" 100 testDABFileName := testStackName 101 defer os.RemoveAll(testDABFileName) 102 err := ioutil.WriteFile(testDABFileName, []byte(testDAB), 0444) 103 c.Assert(err, checker.IsNil) 104 d := s.AddDaemon(c, true, true) 105 // deploy 106 stackArgs := []string{"stack", "deploy", testStackName} 107 out, err := d.Cmd(stackArgs...) 108 c.Assert(err, checker.IsNil) 109 c.Assert(out, checker.Contains, "Loading bundle from test.dab\n") 110 c.Assert(out, checker.Contains, "Creating service test_srv1\n") 111 c.Assert(out, checker.Contains, "Creating service test_srv2\n") 112 }