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