Browse code

Add integration test for stack deploy.

Signed-off-by: Daniel Nephin <dnephin@docker.com>

Daniel Nephin authored on 2016/11/05 05:55:24
Showing 4 changed files
... ...
@@ -19,8 +19,8 @@ import (
19 19
 	"github.com/docker/docker/cli"
20 20
 	"github.com/docker/docker/cli/command"
21 21
 	servicecmd "github.com/docker/docker/cli/command/service"
22
-	runconfigopts "github.com/docker/docker/runconfig/opts"
23 22
 	"github.com/docker/docker/opts"
23
+	runconfigopts "github.com/docker/docker/runconfig/opts"
24 24
 	"github.com/docker/go-connections/nat"
25 25
 )
26 26
 
... ...
@@ -85,7 +85,12 @@ func runDeploy(dockerCli *command.DockerCli, opts deployOptions) error {
85 85
 
86 86
 	ctx := context.Background()
87 87
 	namespace := namespace{name: opts.namespace}
88
-	if err := createNetworks(ctx, dockerCli, config.Networks, namespace); err != nil {
88
+
89
+	networks := config.Networks
90
+	if networks == nil {
91
+		networks = make(map[string]composetypes.NetworkConfig)
92
+	}
93
+	if err := createNetworks(ctx, dockerCli, networks, namespace); err != nil {
89 94
 		return err
90 95
 	}
91 96
 	return deployServices(ctx, dockerCli, config, namespace, opts.sendRegistryAuth)
... ...
@@ -141,7 +141,6 @@ func (c *containerConfig) config() *enginecontainer.Config {
141 141
 		Labels:      c.labels(),
142 142
 		Tty:         c.spec().TTY,
143 143
 		User:        c.spec().User,
144
-		Hostname:    c.spec().Hostname,
145 144
 		Env:         c.spec().Env,
146 145
 		Hostname:    c.spec().Hostname,
147 146
 		WorkingDir:  c.spec().Dir,
... ...
@@ -1,9 +1,6 @@
1 1
 package main
2 2
 
3 3
 import (
4
-	"io/ioutil"
5
-	"os"
6
-
7 4
 	"github.com/docker/docker/pkg/integration/checker"
8 5
 	"github.com/go-check/check"
9 6
 )
... ...
@@ -41,72 +38,26 @@ func (s *DockerSwarmSuite) TestStackServices(c *check.C) {
41 41
 	c.Assert(out, check.Equals, "Nothing found in stack: UNKNOWN_STACK\n")
42 42
 }
43 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) {
44
+func (s *DockerSwarmSuite) TestStackDeployComposeFile(c *check.C) {
63 45
 	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 46
 	d := s.AddDaemon(c, true, true)
71
-	// deploy
72
-	stackArgs := []string{"stack", "deploy", testStackName}
47
+
48
+	testStackName := "testdeploy"
49
+	stackArgs := []string{
50
+		"stack", "deploy",
51
+		"--compose-file", "fixtures/deploy/default.yaml",
52
+		testStackName,
53
+	}
73 54
 	out, err := d.Cmd(stackArgs...)
55
+	c.Assert(err, checker.IsNil, check.Commentf(out))
56
+
57
+	out, err = d.Cmd([]string{"stack", "ls"}...)
74 58
 	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
-}
59
+	c.Assert(out, check.Equals, "NAME        SERVICES\n"+"testdeploy  2\n")
95 60
 
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)
61
+	out, err = d.Cmd([]string{"stack", "rm", testStackName}...)
103 62
 	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...)
63
+	out, err = d.Cmd([]string{"stack", "ls"}...)
108 64
 	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")
65
+	c.Assert(out, check.Equals, "NAME  SERVICES\n")
112 66
 }
113 67
new file mode 100644
... ...
@@ -0,0 +1,9 @@
0
+
1
+version: "3"
2
+services:
3
+  web:
4
+    image: busybox@sha256:e4f93f6ed15a0cdd342f5aae387886fba0ab98af0a102da6276eaf24d6e6ade0
5
+    command: top
6
+  db:
7
+    image: busybox@sha256:e4f93f6ed15a0cdd342f5aae387886fba0ab98af0a102da6276eaf24d6e6ade0
8
+    command: "tail -f /dev/null"