Browse code

Explicitly add --detach to service CLI calls

The behavior of service (create/update/scale) was changed in a recent PR
to docker/cli. This commit serves to remedy test failures experienced
when attempting to use service calls.

Should not affect current behavior.

Signed-off-by: Eli Uriegas <eli.uriegas@docker.com>

Eli Uriegas authored on 2017/09/28 08:17:55
Showing 8 changed files
... ...
@@ -186,7 +186,7 @@ func (s *DockerSwarmSuite) TestAPISwarmServicesUpdate(c *check.C) {
186 186
 
187 187
 	// Roll back to the previous version. This uses the CLI because
188 188
 	// rollback used to be a client-side operation.
189
-	out, err := daemons[0].Cmd("service", "update", "--rollback", id)
189
+	out, err := daemons[0].Cmd("service", "update", "--detach", "--rollback", id)
190 190
 	c.Assert(err, checker.IsNil, check.Commentf(out))
191 191
 
192 192
 	// first batch
... ...
@@ -295,7 +295,7 @@ func (s *DockerSwarmSuite) TestAPISwarmServicesUpdateStartFirst(c *check.C) {
295 295
 
296 296
 	// Roll back to the previous version. This uses the CLI because
297 297
 	// rollback is a client-side operation.
298
-	out, err := d.Cmd("service", "update", "--rollback", id)
298
+	out, err := d.Cmd("service", "update", "--detach", "--rollback", id)
299 299
 	c.Assert(err, checker.IsNil, check.Commentf(out))
300 300
 
301 301
 	// first batch
... ...
@@ -340,7 +340,7 @@ func (s *DockerSwarmSuite) TestAPISwarmServicesFailedUpdate(c *check.C) {
340 340
 
341 341
 	// Roll back to the previous version. This uses the CLI because
342 342
 	// rollback used to be a client-side operation.
343
-	out, err := daemons[0].Cmd("service", "update", "--rollback", id)
343
+	out, err := daemons[0].Cmd("service", "update", "--detach", "--rollback", id)
344 344
 	c.Assert(err, checker.IsNil, check.Commentf(out))
345 345
 
346 346
 	waitAndAssert(c, defaultReconciliationTimeout, daemons[0].CheckRunningTaskImages, checker.DeepEquals,
... ...
@@ -54,7 +54,7 @@ func (s *DockerSwarmSuite) TestPruneNetwork(c *check.C) {
54 54
 
55 55
 	serviceName := "testprunesvc"
56 56
 	replicas := 1
57
-	out, err := d.Cmd("service", "create", "--no-resolve-image",
57
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image",
58 58
 		"--name", serviceName,
59 59
 		"--replicas", strconv.Itoa(replicas),
60 60
 		"--network", "n3",
... ...
@@ -76,7 +76,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithSecretSimple(c *check.C) {
76 76
 	})
77 77
 	c.Assert(id, checker.Not(checker.Equals), "", check.Commentf("secrets: %s", id))
78 78
 
79
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", serviceName, "--secret", testName, "busybox", "top")
79
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", serviceName, "--secret", testName, "busybox", "top")
80 80
 	c.Assert(err, checker.IsNil, check.Commentf(out))
81 81
 
82 82
 	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Secrets }}", serviceName)
... ...
@@ -122,7 +122,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithSecretSourceTargetPaths(c *check
122 122
 	}
123 123
 
124 124
 	serviceName := "svc"
125
-	serviceCmd := []string{"service", "create", "--no-resolve-image", "--name", serviceName}
125
+	serviceCmd := []string{"service", "create", "--detach", "--no-resolve-image", "--name", serviceName}
126 126
 	serviceCmd = append(serviceCmd, secretFlags...)
127 127
 	serviceCmd = append(serviceCmd, "busybox", "top")
128 128
 	out, err := d.Cmd(serviceCmd...)
... ...
@@ -175,7 +175,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithSecretReferencedTwice(c *check.C
175 175
 	c.Assert(id, checker.Not(checker.Equals), "", check.Commentf("secrets: %s", id))
176 176
 
177 177
 	serviceName := "svc"
178
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", serviceName, "--secret", "source=mysecret,target=target1", "--secret", "source=mysecret,target=target2", "busybox", "top")
178
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", serviceName, "--secret", "source=mysecret,target=target1", "--secret", "source=mysecret,target=target2", "busybox", "top")
179 179
 	c.Assert(err, checker.IsNil, check.Commentf(out))
180 180
 
181 181
 	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Secrets }}", serviceName)
... ...
@@ -224,7 +224,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithConfigSimple(c *check.C) {
224 224
 	})
225 225
 	c.Assert(id, checker.Not(checker.Equals), "", check.Commentf("configs: %s", id))
226 226
 
227
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", serviceName, "--config", testName, "busybox", "top")
227
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", serviceName, "--config", testName, "busybox", "top")
228 228
 	c.Assert(err, checker.IsNil, check.Commentf(out))
229 229
 
230 230
 	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Configs }}", serviceName)
... ...
@@ -269,7 +269,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithConfigSourceTargetPaths(c *check
269 269
 	}
270 270
 
271 271
 	serviceName := "svc"
272
-	serviceCmd := []string{"service", "create", "--no-resolve-image", "--name", serviceName}
272
+	serviceCmd := []string{"service", "create", "--detach", "--no-resolve-image", "--name", serviceName}
273 273
 	serviceCmd = append(serviceCmd, configFlags...)
274 274
 	serviceCmd = append(serviceCmd, "busybox", "top")
275 275
 	out, err := d.Cmd(serviceCmd...)
... ...
@@ -322,7 +322,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithConfigReferencedTwice(c *check.C
322 322
 	c.Assert(id, checker.Not(checker.Equals), "", check.Commentf("configs: %s", id))
323 323
 
324 324
 	serviceName := "svc"
325
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", serviceName, "--config", "source=myconfig,target=target1", "--config", "source=myconfig,target=target2", "busybox", "top")
325
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", serviceName, "--config", "source=myconfig,target=target1", "--config", "source=myconfig,target=target2", "busybox", "top")
326 326
 	c.Assert(err, checker.IsNil, check.Commentf(out))
327 327
 
328 328
 	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Configs }}", serviceName)
... ...
@@ -31,7 +31,7 @@ func (s *DockerSwarmSuite) TestServiceLogs(c *check.C) {
31 31
 	}
32 32
 
33 33
 	for name, message := range services {
34
-		out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "busybox",
34
+		out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "busybox",
35 35
 			"sh", "-c", fmt.Sprintf("echo %s; tail -f /dev/null", message))
36 36
 		c.Assert(err, checker.IsNil)
37 37
 		c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
... ...
@@ -74,7 +74,7 @@ func (s *DockerSwarmSuite) TestServiceLogsCompleteness(c *check.C) {
74 74
 	name := "TestServiceLogsCompleteness"
75 75
 
76 76
 	// make a service that prints 6 lines
77
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "busybox", "sh", "-c", "for line in $(seq 0 5); do echo log test $line; done; sleep 100000")
77
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "busybox", "sh", "-c", "for line in $(seq 0 5); do echo log test $line; done; sleep 100000")
78 78
 	c.Assert(err, checker.IsNil)
79 79
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
80 80
 
... ...
@@ -101,7 +101,7 @@ func (s *DockerSwarmSuite) TestServiceLogsTail(c *check.C) {
101 101
 	name := "TestServiceLogsTail"
102 102
 
103 103
 	// make a service that prints 6 lines
104
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "busybox", "sh", "-c", "for line in $(seq 1 6); do echo log test $line; done; sleep 100000")
104
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "busybox", "sh", "-c", "for line in $(seq 1 6); do echo log test $line; done; sleep 100000")
105 105
 	c.Assert(err, checker.IsNil)
106 106
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
107 107
 
... ...
@@ -125,7 +125,7 @@ func (s *DockerSwarmSuite) TestServiceLogsSince(c *check.C) {
125 125
 
126 126
 	name := "TestServiceLogsSince"
127 127
 
128
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "busybox", "sh", "-c", "for i in $(seq 1 3); do sleep .1; echo log$i; done; sleep 10000000")
128
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "busybox", "sh", "-c", "for i in $(seq 1 3); do sleep .1; echo log$i; done; sleep 10000000")
129 129
 	c.Assert(err, checker.IsNil)
130 130
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
131 131
 	waitAndAssert(c, defaultReconciliationTimeout, d.CheckActiveContainerCount, checker.Equals, 1)
... ...
@@ -159,7 +159,7 @@ func (s *DockerSwarmSuite) TestServiceLogsFollow(c *check.C) {
159 159
 
160 160
 	name := "TestServiceLogsFollow"
161 161
 
162
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "busybox", "sh", "-c", "while true; do echo log test; sleep 0.1; done")
162
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "busybox", "sh", "-c", "while true; do echo log test; sleep 0.1; done")
163 163
 	c.Assert(err, checker.IsNil)
164 164
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
165 165
 
... ...
@@ -207,7 +207,7 @@ func (s *DockerSwarmSuite) TestServiceLogsTaskLogs(c *check.C) {
207 207
 
208 208
 	result := icmd.RunCmd(d.Command(
209 209
 		// create a service with the name
210
-		"service", "create", "--no-resolve-image", "--name", name,
210
+		"service", "create", "--detach", "--no-resolve-image", "--name", name,
211 211
 		// which has some number of replicas
212 212
 		fmt.Sprintf("--replicas=%v", replicas),
213 213
 		// which has this the task id as an environment variable templated in
... ...
@@ -259,7 +259,7 @@ func (s *DockerSwarmSuite) TestServiceLogsTTY(c *check.C) {
259 259
 
260 260
 	result := icmd.RunCmd(d.Command(
261 261
 		// create a service
262
-		"service", "create", "--no-resolve-image",
262
+		"service", "create", "--detach", "--no-resolve-image",
263 263
 		// name it $name
264 264
 		"--name", name,
265 265
 		// use a TTY
... ...
@@ -297,7 +297,7 @@ func (s *DockerSwarmSuite) TestServiceLogsNoHangDeletedContainer(c *check.C) {
297 297
 
298 298
 	result := icmd.RunCmd(d.Command(
299 299
 		// create a service
300
-		"service", "create", "--no-resolve-image",
300
+		"service", "create", "--detach", "--no-resolve-image",
301 301
 		// name it $name
302 302
 		"--name", name,
303 303
 		// busybox image, shell string
... ...
@@ -346,7 +346,7 @@ func (s *DockerSwarmSuite) TestServiceLogsDetails(c *check.C) {
346 346
 
347 347
 	result := icmd.RunCmd(d.Command(
348 348
 		// create a service
349
-		"service", "create", "--no-resolve-image",
349
+		"service", "create", "--detach", "--no-resolve-image",
350 350
 		// name it $name
351 351
 		"--name", name,
352 352
 		// add an environment variable
... ...
@@ -14,11 +14,11 @@ func (s *DockerSwarmSuite) TestServiceScale(c *check.C) {
14 14
 	d := s.AddDaemon(c, true, true)
15 15
 
16 16
 	service1Name := "TestService1"
17
-	service1Args := append([]string{"service", "create", "--no-resolve-image", "--name", service1Name, defaultSleepImage}, sleepCommandForDaemonPlatform()...)
17
+	service1Args := append([]string{"service", "create", "--detach", "--no-resolve-image", "--name", service1Name, defaultSleepImage}, sleepCommandForDaemonPlatform()...)
18 18
 
19 19
 	// global mode
20 20
 	service2Name := "TestService2"
21
-	service2Args := append([]string{"service", "create", "--no-resolve-image", "--name", service2Name, "--mode=global", defaultSleepImage}, sleepCommandForDaemonPlatform()...)
21
+	service2Args := append([]string{"service", "create", "--detach", "--no-resolve-image", "--name", service2Name, "--mode=global", defaultSleepImage}, sleepCommandForDaemonPlatform()...)
22 22
 
23 23
 	// Create services
24 24
 	out, err := d.Cmd(service1Args...)
... ...
@@ -27,10 +27,10 @@ func (s *DockerSwarmSuite) TestServiceScale(c *check.C) {
27 27
 	out, err = d.Cmd(service2Args...)
28 28
 	c.Assert(err, checker.IsNil)
29 29
 
30
-	out, err = d.Cmd("service", "scale", "TestService1=2")
30
+	out, err = d.Cmd("service", "scale", "--detach", "TestService1=2")
31 31
 	c.Assert(err, checker.IsNil)
32 32
 
33
-	out, err = d.Cmd("service", "scale", "TestService1=foobar")
33
+	out, err = d.Cmd("service", "scale", "--detach", "TestService1=foobar")
34 34
 	c.Assert(err, checker.NotNil)
35 35
 
36 36
 	str := fmt.Sprintf("%s: invalid replicas value %s", service1Name, "foobar")
... ...
@@ -38,7 +38,7 @@ func (s *DockerSwarmSuite) TestServiceScale(c *check.C) {
38 38
 		c.Errorf("got: %s, expected has sub string: %s", out, str)
39 39
 	}
40 40
 
41
-	out, err = d.Cmd("service", "scale", "TestService1=-1")
41
+	out, err = d.Cmd("service", "scale", "--detach", "TestService1=-1")
42 42
 	c.Assert(err, checker.NotNil)
43 43
 
44 44
 	str = fmt.Sprintf("%s: invalid replicas value %s", service1Name, "-1")
... ...
@@ -47,7 +47,7 @@ func (s *DockerSwarmSuite) TestServiceScale(c *check.C) {
47 47
 	}
48 48
 
49 49
 	// TestService2 is a global mode
50
-	out, err = d.Cmd("service", "scale", "TestService2=2")
50
+	out, err = d.Cmd("service", "scale", "--detach", "TestService2=2")
51 51
 	c.Assert(err, checker.NotNil)
52 52
 
53 53
 	str = fmt.Sprintf("%s: scale can only be used with replicated mode\n", service2Name)
... ...
@@ -15,7 +15,7 @@ func (s *DockerSwarmSuite) TestServiceUpdatePort(c *check.C) {
15 15
 	d := s.AddDaemon(c, true, true)
16 16
 
17 17
 	serviceName := "TestServiceUpdatePort"
18
-	serviceArgs := append([]string{"service", "create", "--no-resolve-image", "--name", serviceName, "-p", "8080:8081", defaultSleepImage}, sleepCommandForDaemonPlatform()...)
18
+	serviceArgs := append([]string{"service", "create", "--detach", "--no-resolve-image", "--name", serviceName, "-p", "8080:8081", defaultSleepImage}, sleepCommandForDaemonPlatform()...)
19 19
 
20 20
 	// Create a service with a port mapping of 8080:8081.
21 21
 	out, err := d.Cmd(serviceArgs...)
... ...
@@ -23,7 +23,7 @@ func (s *DockerSwarmSuite) TestServiceUpdatePort(c *check.C) {
23 23
 	waitAndAssert(c, defaultReconciliationTimeout, d.CheckActiveContainerCount, checker.Equals, 1)
24 24
 
25 25
 	// Update the service: changed the port mapping from 8080:8081 to 8082:8083.
26
-	_, err = d.Cmd("service", "update", "--publish-add", "8082:8083", "--publish-rm", "8081", serviceName)
26
+	_, err = d.Cmd("service", "update", "--detach", "--publish-add", "8082:8083", "--publish-rm", "8081", serviceName)
27 27
 	c.Assert(err, checker.IsNil)
28 28
 
29 29
 	// Inspect the service and verify port mapping
... ...
@@ -48,39 +48,39 @@ func (s *DockerSwarmSuite) TestServiceUpdatePort(c *check.C) {
48 48
 
49 49
 func (s *DockerSwarmSuite) TestServiceUpdateLabel(c *check.C) {
50 50
 	d := s.AddDaemon(c, true, true)
51
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name=test", "busybox", "top")
51
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name=test", "busybox", "top")
52 52
 	c.Assert(err, checker.IsNil, check.Commentf(out))
53 53
 	service := d.GetService(c, "test")
54 54
 	c.Assert(service.Spec.Labels, checker.HasLen, 0)
55 55
 
56 56
 	// add label to empty set
57
-	out, err = d.Cmd("service", "update", "test", "--label-add", "foo=bar")
57
+	out, err = d.Cmd("service", "update", "--detach", "test", "--label-add", "foo=bar")
58 58
 	c.Assert(err, checker.IsNil, check.Commentf(out))
59 59
 	service = d.GetService(c, "test")
60 60
 	c.Assert(service.Spec.Labels, checker.HasLen, 1)
61 61
 	c.Assert(service.Spec.Labels["foo"], checker.Equals, "bar")
62 62
 
63 63
 	// add label to non-empty set
64
-	out, err = d.Cmd("service", "update", "test", "--label-add", "foo2=bar")
64
+	out, err = d.Cmd("service", "update", "--detach", "test", "--label-add", "foo2=bar")
65 65
 	c.Assert(err, checker.IsNil, check.Commentf(out))
66 66
 	service = d.GetService(c, "test")
67 67
 	c.Assert(service.Spec.Labels, checker.HasLen, 2)
68 68
 	c.Assert(service.Spec.Labels["foo2"], checker.Equals, "bar")
69 69
 
70
-	out, err = d.Cmd("service", "update", "test", "--label-rm", "foo2")
70
+	out, err = d.Cmd("service", "update", "--detach", "test", "--label-rm", "foo2")
71 71
 	c.Assert(err, checker.IsNil, check.Commentf(out))
72 72
 	service = d.GetService(c, "test")
73 73
 	c.Assert(service.Spec.Labels, checker.HasLen, 1)
74 74
 	c.Assert(service.Spec.Labels["foo2"], checker.Equals, "")
75 75
 
76
-	out, err = d.Cmd("service", "update", "test", "--label-rm", "foo")
76
+	out, err = d.Cmd("service", "update", "--detach", "test", "--label-rm", "foo")
77 77
 	c.Assert(err, checker.IsNil, check.Commentf(out))
78 78
 	service = d.GetService(c, "test")
79 79
 	c.Assert(service.Spec.Labels, checker.HasLen, 0)
80 80
 	c.Assert(service.Spec.Labels["foo"], checker.Equals, "")
81 81
 
82 82
 	// now make sure we can add again
83
-	out, err = d.Cmd("service", "update", "test", "--label-add", "foo=bar")
83
+	out, err = d.Cmd("service", "update", "--detach", "test", "--label-add", "foo=bar")
84 84
 	c.Assert(err, checker.IsNil, check.Commentf(out))
85 85
 	service = d.GetService(c, "test")
86 86
 	c.Assert(service.Spec.Labels, checker.HasLen, 1)
... ...
@@ -100,11 +100,11 @@ func (s *DockerSwarmSuite) TestServiceUpdateSecrets(c *check.C) {
100 100
 	testTarget := "testing"
101 101
 	serviceName := "test"
102 102
 
103
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", serviceName, "busybox", "top")
103
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", serviceName, "busybox", "top")
104 104
 	c.Assert(err, checker.IsNil, check.Commentf(out))
105 105
 
106 106
 	// add secret
107
-	out, err = d.CmdRetryOutOfSequence("service", "update", "test", "--secret-add", fmt.Sprintf("source=%s,target=%s", testName, testTarget))
107
+	out, err = d.CmdRetryOutOfSequence("service", "update", "--detach", "test", "--secret-add", fmt.Sprintf("source=%s,target=%s", testName, testTarget))
108 108
 	c.Assert(err, checker.IsNil, check.Commentf(out))
109 109
 
110 110
 	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Secrets }}", serviceName)
... ...
@@ -119,7 +119,7 @@ func (s *DockerSwarmSuite) TestServiceUpdateSecrets(c *check.C) {
119 119
 	c.Assert(refs[0].File.Name, checker.Equals, testTarget)
120 120
 
121 121
 	// remove
122
-	out, err = d.CmdRetryOutOfSequence("service", "update", "test", "--secret-rm", testName)
122
+	out, err = d.CmdRetryOutOfSequence("service", "update", "--detach", "test", "--secret-rm", testName)
123 123
 	c.Assert(err, checker.IsNil, check.Commentf(out))
124 124
 
125 125
 	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Secrets }}", serviceName)
... ...
@@ -142,11 +142,11 @@ func (s *DockerSwarmSuite) TestServiceUpdateConfigs(c *check.C) {
142 142
 	testTarget := "/testing"
143 143
 	serviceName := "test"
144 144
 
145
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", serviceName, "busybox", "top")
145
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", serviceName, "busybox", "top")
146 146
 	c.Assert(err, checker.IsNil, check.Commentf(out))
147 147
 
148 148
 	// add config
149
-	out, err = d.CmdRetryOutOfSequence("service", "update", "test", "--config-add", fmt.Sprintf("source=%s,target=%s", testName, testTarget))
149
+	out, err = d.CmdRetryOutOfSequence("service", "update", "--detach", "test", "--config-add", fmt.Sprintf("source=%s,target=%s", testName, testTarget))
150 150
 	c.Assert(err, checker.IsNil, check.Commentf(out))
151 151
 
152 152
 	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Configs }}", serviceName)
... ...
@@ -161,7 +161,7 @@ func (s *DockerSwarmSuite) TestServiceUpdateConfigs(c *check.C) {
161 161
 	c.Assert(refs[0].File.Name, checker.Equals, testTarget)
162 162
 
163 163
 	// remove
164
-	out, err = d.CmdRetryOutOfSequence("service", "update", "test", "--config-rm", testName)
164
+	out, err = d.CmdRetryOutOfSequence("service", "update", "--detach", "test", "--config-rm", testName)
165 165
 	c.Assert(err, checker.IsNil, check.Commentf(out))
166 166
 
167 167
 	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Configs }}", serviceName)
... ...
@@ -172,7 +172,7 @@ func (s *DockerSwarmSuite) TestSwarmServiceTemplatingHostname(c *check.C) {
172 172
 	hostname, err := d.Cmd("node", "inspect", "--format", "{{.Description.Hostname}}", "self")
173 173
 	c.Assert(err, checker.IsNil, check.Commentf(hostname))
174 174
 
175
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", "test", "--hostname", "{{.Service.Name}}-{{.Task.Slot}}-{{.Node.Hostname}}", "busybox", "top")
175
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", "test", "--hostname", "{{.Service.Name}}-{{.Task.Slot}}-{{.Node.Hostname}}", "busybox", "top")
176 176
 	c.Assert(err, checker.IsNil, check.Commentf(out))
177 177
 
178 178
 	// make sure task has been deployed.
... ...
@@ -191,15 +191,15 @@ func (s *DockerSwarmSuite) TestSwarmServiceListFilter(c *check.C) {
191 191
 	name1 := "redis-cluster-md5"
192 192
 	name2 := "redis-cluster"
193 193
 	name3 := "other-cluster"
194
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name1, "busybox", "top")
194
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name1, "busybox", "top")
195 195
 	c.Assert(err, checker.IsNil)
196 196
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
197 197
 
198
-	out, err = d.Cmd("service", "create", "--no-resolve-image", "--name", name2, "busybox", "top")
198
+	out, err = d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name2, "busybox", "top")
199 199
 	c.Assert(err, checker.IsNil)
200 200
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
201 201
 
202
-	out, err = d.Cmd("service", "create", "--no-resolve-image", "--name", name3, "busybox", "top")
202
+	out, err = d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name3, "busybox", "top")
203 203
 	c.Assert(err, checker.IsNil)
204 204
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
205 205
 
... ...
@@ -249,7 +249,7 @@ func (s *DockerSwarmSuite) TestSwarmNodeTaskListFilter(c *check.C) {
249 249
 	d := s.AddDaemon(c, true, true)
250 250
 
251 251
 	name := "redis-cluster-md5"
252
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "--replicas=3", "busybox", "top")
252
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "--replicas=3", "busybox", "top")
253 253
 	c.Assert(err, checker.IsNil)
254 254
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
255 255
 
... ...
@@ -276,17 +276,17 @@ func (s *DockerSwarmSuite) TestSwarmPublishAdd(c *check.C) {
276 276
 	d := s.AddDaemon(c, true, true)
277 277
 
278 278
 	name := "top"
279
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "--label", "x=y", "busybox", "top")
279
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "--label", "x=y", "busybox", "top")
280 280
 	c.Assert(err, checker.IsNil)
281 281
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
282 282
 
283
-	out, err = d.Cmd("service", "update", "--publish-add", "80:80", name)
283
+	out, err = d.Cmd("service", "update", "--detach", "--publish-add", "80:80", name)
284 284
 	c.Assert(err, checker.IsNil)
285 285
 
286
-	out, err = d.CmdRetryOutOfSequence("service", "update", "--publish-add", "80:80", name)
286
+	out, err = d.CmdRetryOutOfSequence("service", "update", "--detach", "--publish-add", "80:80", name)
287 287
 	c.Assert(err, checker.IsNil)
288 288
 
289
-	out, err = d.CmdRetryOutOfSequence("service", "update", "--publish-add", "80:80", "--publish-add", "80:20", name)
289
+	out, err = d.CmdRetryOutOfSequence("service", "update", "--detach", "--publish-add", "80:80", "--publish-add", "80:20", name)
290 290
 	c.Assert(err, checker.NotNil)
291 291
 
292 292
 	out, err = d.Cmd("service", "inspect", "--format", "{{ .Spec.EndpointSpec.Ports }}", name)
... ...
@@ -298,7 +298,7 @@ func (s *DockerSwarmSuite) TestSwarmServiceWithGroup(c *check.C) {
298 298
 	d := s.AddDaemon(c, true, true)
299 299
 
300 300
 	name := "top"
301
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "--user", "root:root", "--group", "wheel", "--group", "audio", "--group", "staff", "--group", "777", "busybox", "top")
301
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "--user", "root:root", "--group", "wheel", "--group", "audio", "--group", "staff", "--group", "777", "busybox", "top")
302 302
 	c.Assert(err, checker.IsNil)
303 303
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
304 304
 
... ...
@@ -487,7 +487,7 @@ func (s *DockerSwarmSuite) TestSwarmIngressNetwork(c *check.C) {
487 487
 	c.Assert(strings.TrimSpace(out), checker.Contains, "is already present")
488 488
 
489 489
 	// It cannot be removed if it is being used
490
-	out, err = d.Cmd("service", "create", "--no-resolve-image", "--name", "srv1", "-p", "9000:8000", "busybox", "top")
490
+	out, err = d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", "srv1", "-p", "9000:8000", "busybox", "top")
491 491
 	c.Assert(err, checker.IsNil, check.Commentf(out))
492 492
 
493 493
 	result = removeNetwork("new-ingress")
... ...
@@ -497,24 +497,24 @@ func (s *DockerSwarmSuite) TestSwarmIngressNetwork(c *check.C) {
497 497
 	})
498 498
 
499 499
 	// But it can be removed once no more services depend on it
500
-	out, err = d.Cmd("service", "update", "--publish-rm", "9000:8000", "srv1")
500
+	out, err = d.Cmd("service", "update", "--detach", "--publish-rm", "9000:8000", "srv1")
501 501
 	c.Assert(err, checker.IsNil, check.Commentf(out))
502 502
 
503 503
 	result = removeNetwork("new-ingress")
504 504
 	result.Assert(c, icmd.Success)
505 505
 
506 506
 	// A service which needs the ingress network cannot be created if no ingress is present
507
-	out, err = d.Cmd("service", "create", "--no-resolve-image", "--name", "srv2", "-p", "500:500", "busybox", "top")
507
+	out, err = d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", "srv2", "-p", "500:500", "busybox", "top")
508 508
 	c.Assert(err, checker.NotNil)
509 509
 	c.Assert(strings.TrimSpace(out), checker.Contains, "no ingress network is present")
510 510
 
511 511
 	// An existing service cannot be updated to use the ingress nw if the nw is not present
512
-	out, err = d.Cmd("service", "update", "--publish-add", "9000:8000", "srv1")
512
+	out, err = d.Cmd("service", "update", "--detach", "--publish-add", "9000:8000", "srv1")
513 513
 	c.Assert(err, checker.NotNil)
514 514
 	c.Assert(strings.TrimSpace(out), checker.Contains, "no ingress network is present")
515 515
 
516 516
 	// But services which do not need routing mesh can be created regardless
517
-	out, err = d.Cmd("service", "create", "--no-resolve-image", "--name", "srv3", "--endpoint-mode", "dnsrr", "busybox", "top")
517
+	out, err = d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", "srv3", "--endpoint-mode", "dnsrr", "busybox", "top")
518 518
 	c.Assert(err, checker.IsNil, check.Commentf(out))
519 519
 }
520 520
 
... ...
@@ -531,7 +531,7 @@ func (s *DockerSwarmSuite) TestSwarmCreateServiceWithNoIngressNetwork(c *check.C
531 531
 	// Make sure nothing panics because ingress network is missing
532 532
 	out, err := d.Cmd("network", "create", "-d", "overlay", "another-network")
533 533
 	c.Assert(err, checker.IsNil, check.Commentf(out))
534
-	out, err = d.Cmd("service", "create", "--no-resolve-image", "--name", "srv4", "--network", "another-network", "busybox", "top")
534
+	out, err = d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", "srv4", "--network", "another-network", "busybox", "top")
535 535
 	c.Assert(err, checker.IsNil, check.Commentf(out))
536 536
 }
537 537
 
... ...
@@ -541,7 +541,7 @@ func (s *DockerSwarmSuite) TestSwarmTaskListFilter(c *check.C) {
541 541
 	d := s.AddDaemon(c, true, true)
542 542
 
543 543
 	name := "redis-cluster-md5"
544
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "--replicas=3", "busybox", "top")
544
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "--replicas=3", "busybox", "top")
545 545
 	c.Assert(err, checker.IsNil)
546 546
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
547 547
 
... ...
@@ -575,7 +575,7 @@ func (s *DockerSwarmSuite) TestSwarmTaskListFilter(c *check.C) {
575 575
 	c.Assert(out, checker.Not(checker.Contains), name+".3")
576 576
 
577 577
 	name = "redis-cluster-sha1"
578
-	out, err = d.Cmd("service", "create", "--no-resolve-image", "--name", name, "--mode=global", "busybox", "top")
578
+	out, err = d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "--mode=global", "busybox", "top")
579 579
 	c.Assert(err, checker.IsNil)
580 580
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
581 581
 
... ...
@@ -604,7 +604,7 @@ func (s *DockerSwarmSuite) TestPsListContainersFilterIsTask(c *check.C) {
604 604
 	bareID := strings.TrimSpace(out)[:12]
605 605
 	// Create a service
606 606
 	name := "busybox-top"
607
-	out, err = d.Cmd("service", "create", "--no-resolve-image", "--name", name, "busybox", "top")
607
+	out, err = d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "busybox", "top")
608 608
 	c.Assert(err, checker.IsNil)
609 609
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
610 610
 
... ...
@@ -823,7 +823,7 @@ func (s *DockerSwarmSuite) TestSwarmServiceEnvFile(c *check.C) {
823 823
 	c.Assert(err, checker.IsNil)
824 824
 
825 825
 	name := "worker"
826
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--env-file", path, "--env", "VAR1=B", "--env", "VAR1=C", "--env", "VAR2=", "--env", "VAR2", "--name", name, "busybox", "top")
826
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--env-file", path, "--env", "VAR1=B", "--env", "VAR1=C", "--env", "VAR2=", "--env", "VAR2", "--name", name, "busybox", "top")
827 827
 	c.Assert(err, checker.IsNil)
828 828
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
829 829
 
... ...
@@ -842,7 +842,7 @@ func (s *DockerSwarmSuite) TestSwarmServiceTTY(c *check.C) {
842 842
 
843 843
 	// Without --tty
844 844
 	expectedOutput := "none"
845
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "busybox", "sh", "-c", ttyCheck)
845
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "busybox", "sh", "-c", ttyCheck)
846 846
 	c.Assert(err, checker.IsNil)
847 847
 
848 848
 	// Make sure task has been deployed.
... ...
@@ -865,7 +865,7 @@ func (s *DockerSwarmSuite) TestSwarmServiceTTY(c *check.C) {
865 865
 
866 866
 	// With --tty
867 867
 	expectedOutput = "TTY"
868
-	out, err = d.Cmd("service", "create", "--no-resolve-image", "--name", name, "--tty", "busybox", "sh", "-c", ttyCheck)
868
+	out, err = d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "--tty", "busybox", "sh", "-c", ttyCheck)
869 869
 	c.Assert(err, checker.IsNil)
870 870
 
871 871
 	// Make sure task has been deployed.
... ...
@@ -886,7 +886,7 @@ func (s *DockerSwarmSuite) TestSwarmServiceTTYUpdate(c *check.C) {
886 886
 
887 887
 	// Create a service
888 888
 	name := "top"
889
-	_, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "busybox", "top")
889
+	_, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "busybox", "top")
890 890
 	c.Assert(err, checker.IsNil)
891 891
 
892 892
 	// Make sure task has been deployed.
... ...
@@ -896,7 +896,7 @@ func (s *DockerSwarmSuite) TestSwarmServiceTTYUpdate(c *check.C) {
896 896
 	c.Assert(err, checker.IsNil)
897 897
 	c.Assert(strings.TrimSpace(out), checker.Equals, "false")
898 898
 
899
-	_, err = d.Cmd("service", "update", "--tty", name)
899
+	_, err = d.Cmd("service", "update", "--detach", "--tty", name)
900 900
 	c.Assert(err, checker.IsNil)
901 901
 
902 902
 	out, err = d.Cmd("service", "inspect", "--format", "{{ .Spec.TaskTemplate.ContainerSpec.TTY }}", name)
... ...
@@ -921,7 +921,7 @@ func (s *DockerSwarmSuite) TestSwarmServiceNetworkUpdate(c *check.C) {
921 921
 
922 922
 	// Create a service
923 923
 	name := "top"
924
-	result = icmd.RunCmd(d.Command("service", "create", "--no-resolve-image", "--network", "foo", "--network", "bar", "--name", name, "busybox", "top"))
924
+	result = icmd.RunCmd(d.Command("service", "create", "--detach", "--no-resolve-image", "--network", "foo", "--network", "bar", "--name", name, "busybox", "top"))
925 925
 	result.Assert(c, icmd.Success)
926 926
 
927 927
 	// Make sure task has been deployed.
... ...
@@ -929,14 +929,14 @@ func (s *DockerSwarmSuite) TestSwarmServiceNetworkUpdate(c *check.C) {
929 929
 		map[string]int{fooNetwork: 1, barNetwork: 1})
930 930
 
931 931
 	// Remove a network
932
-	result = icmd.RunCmd(d.Command("service", "update", "--network-rm", "foo", name))
932
+	result = icmd.RunCmd(d.Command("service", "update", "--detach", "--network-rm", "foo", name))
933 933
 	result.Assert(c, icmd.Success)
934 934
 
935 935
 	waitAndAssert(c, defaultReconciliationTimeout, d.CheckRunningTaskNetworks, checker.DeepEquals,
936 936
 		map[string]int{barNetwork: 1})
937 937
 
938 938
 	// Add a network
939
-	result = icmd.RunCmd(d.Command("service", "update", "--network-add", "baz", name))
939
+	result = icmd.RunCmd(d.Command("service", "update", "--detach", "--network-add", "baz", name))
940 940
 	result.Assert(c, icmd.Success)
941 941
 
942 942
 	waitAndAssert(c, defaultReconciliationTimeout, d.CheckRunningTaskNetworks, checker.DeepEquals,
... ...
@@ -948,7 +948,7 @@ func (s *DockerSwarmSuite) TestDNSConfig(c *check.C) {
948 948
 
949 949
 	// Create a service
950 950
 	name := "top"
951
-	_, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "--dns=1.2.3.4", "--dns-search=example.com", "--dns-option=timeout:3", "busybox", "top")
951
+	_, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "--dns=1.2.3.4", "--dns-search=example.com", "--dns-option=timeout:3", "busybox", "top")
952 952
 	c.Assert(err, checker.IsNil)
953 953
 
954 954
 	// Make sure task has been deployed.
... ...
@@ -975,13 +975,13 @@ func (s *DockerSwarmSuite) TestDNSConfigUpdate(c *check.C) {
975 975
 
976 976
 	// Create a service
977 977
 	name := "top"
978
-	_, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "busybox", "top")
978
+	_, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "busybox", "top")
979 979
 	c.Assert(err, checker.IsNil)
980 980
 
981 981
 	// Make sure task has been deployed.
982 982
 	waitAndAssert(c, defaultReconciliationTimeout, d.CheckActiveContainerCount, checker.Equals, 1)
983 983
 
984
-	_, err = d.Cmd("service", "update", "--dns-add=1.2.3.4", "--dns-search-add=example.com", "--dns-option-add=timeout:3", name)
984
+	_, err = d.Cmd("service", "update", "--detach", "--dns-add=1.2.3.4", "--dns-search-add=example.com", "--dns-option-add=timeout:3", name)
985 985
 	c.Assert(err, checker.IsNil)
986 986
 
987 987
 	out, err := d.Cmd("service", "inspect", "--format", "{{ .Spec.TaskTemplate.ContainerSpec.DNSConfig }}", name)
... ...
@@ -1497,7 +1497,7 @@ func (s *DockerSwarmSuite) TestExtraHosts(c *check.C) {
1497 1497
 
1498 1498
 	// Create a service
1499 1499
 	name := "top"
1500
-	_, err := d.Cmd("service", "create", "--no-resolve-image", "--name", name, "--host=example.com:1.2.3.4", "busybox", "top")
1500
+	_, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", name, "--host=example.com:1.2.3.4", "busybox", "top")
1501 1501
 	c.Assert(err, checker.IsNil)
1502 1502
 
1503 1503
 	// Make sure task has been deployed.
... ...
@@ -1547,7 +1547,7 @@ func (s *DockerSwarmSuite) TestSwarmNetworkIPAMOptions(c *check.C) {
1547 1547
 	c.Assert(err, checker.IsNil, check.Commentf(out))
1548 1548
 	c.Assert(strings.TrimSpace(out), checker.Equals, "map[foo:bar]")
1549 1549
 
1550
-	out, err = d.Cmd("service", "create", "--no-resolve-image", "--network=foo", "--name", "top", "busybox", "top")
1550
+	out, err = d.Cmd("service", "create", "--detach", "--no-resolve-image", "--network=foo", "--name", "top", "busybox", "top")
1551 1551
 	c.Assert(err, checker.IsNil, check.Commentf(out))
1552 1552
 
1553 1553
 	// make sure task has been deployed.
... ...
@@ -1565,7 +1565,7 @@ func (s *DockerTrustedSwarmSuite) TestTrustedServiceCreate(c *check.C) {
1565 1565
 	repoName := s.trustSuite.setupTrustedImage(c, "trusted-pull")
1566 1566
 
1567 1567
 	name := "trusted"
1568
-	cli.Docker(cli.Args("-D", "service", "create", "--no-resolve-image", "--name", name, repoName, "top"), trustedCmd, cli.Daemon(d.Daemon)).Assert(c, icmd.Expected{
1568
+	cli.Docker(cli.Args("-D", "service", "create", "--detach", "--no-resolve-image", "--name", name, repoName, "top"), trustedCmd, cli.Daemon(d.Daemon)).Assert(c, icmd.Expected{
1569 1569
 		Err: "resolved image tag to",
1570 1570
 	})
1571 1571
 
... ...
@@ -1582,7 +1582,7 @@ func (s *DockerTrustedSwarmSuite) TestTrustedServiceCreate(c *check.C) {
1582 1582
 	cli.DockerCmd(c, "rmi", repoName)
1583 1583
 
1584 1584
 	name = "untrusted"
1585
-	cli.Docker(cli.Args("service", "create", "--no-resolve-image", "--name", name, repoName, "top"), trustedCmd, cli.Daemon(d.Daemon)).Assert(c, icmd.Expected{
1585
+	cli.Docker(cli.Args("service", "create", "--detach", "--no-resolve-image", "--name", name, repoName, "top"), trustedCmd, cli.Daemon(d.Daemon)).Assert(c, icmd.Expected{
1586 1586
 		ExitCode: 1,
1587 1587
 		Err:      "Error: remote trust data does not exist",
1588 1588
 	})
... ...
@@ -1600,7 +1600,7 @@ func (s *DockerTrustedSwarmSuite) TestTrustedServiceUpdate(c *check.C) {
1600 1600
 	name := "myservice"
1601 1601
 
1602 1602
 	// Create a service without content trust
1603
-	cli.Docker(cli.Args("service", "create", "--no-resolve-image", "--name", name, repoName, "top"), cli.Daemon(d.Daemon)).Assert(c, icmd.Success)
1603
+	cli.Docker(cli.Args("service", "create", "--detach", "--no-resolve-image", "--name", name, repoName, "top"), cli.Daemon(d.Daemon)).Assert(c, icmd.Success)
1604 1604
 
1605 1605
 	result := cli.Docker(cli.Args("service", "inspect", "--pretty", name), cli.Daemon(d.Daemon))
1606 1606
 	c.Assert(result.Error, checker.IsNil, check.Commentf(result.Combined()))
... ...
@@ -1608,7 +1608,7 @@ func (s *DockerTrustedSwarmSuite) TestTrustedServiceUpdate(c *check.C) {
1608 1608
 	// DOCKER_SERVICE_PREFER_OFFLINE_IMAGE.
1609 1609
 	c.Assert(result.Combined(), check.Not(checker.Contains), repoName+"@", check.Commentf(result.Combined()))
1610 1610
 
1611
-	cli.Docker(cli.Args("-D", "service", "update", "--no-resolve-image", "--image", repoName, name), trustedCmd, cli.Daemon(d.Daemon)).Assert(c, icmd.Expected{
1611
+	cli.Docker(cli.Args("-D", "service", "update", "--detach", "--no-resolve-image", "--image", repoName, name), trustedCmd, cli.Daemon(d.Daemon)).Assert(c, icmd.Expected{
1612 1612
 		Err: "resolved image tag to",
1613 1613
 	})
1614 1614
 
... ...
@@ -1624,7 +1624,7 @@ func (s *DockerTrustedSwarmSuite) TestTrustedServiceUpdate(c *check.C) {
1624 1624
 	cli.DockerCmd(c, "push", repoName)
1625 1625
 	cli.DockerCmd(c, "rmi", repoName)
1626 1626
 
1627
-	cli.Docker(cli.Args("service", "update", "--no-resolve-image", "--image", repoName, name), trustedCmd, cli.Daemon(d.Daemon)).Assert(c, icmd.Expected{
1627
+	cli.Docker(cli.Args("service", "update", "--detach", "--no-resolve-image", "--image", repoName, name), trustedCmd, cli.Daemon(d.Daemon)).Assert(c, icmd.Expected{
1628 1628
 		ExitCode: 1,
1629 1629
 		Err:      "Error: remote trust data does not exist",
1630 1630
 	})
... ...
@@ -1740,7 +1740,7 @@ func (s *DockerSwarmSuite) TestSwarmReadonlyRootfs(c *check.C) {
1740 1740
 
1741 1741
 	d := s.AddDaemon(c, true, true)
1742 1742
 
1743
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", "top", "--read-only", "busybox", "top")
1743
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", "top", "--read-only", "busybox", "top")
1744 1744
 	c.Assert(err, checker.IsNil, check.Commentf(out))
1745 1745
 
1746 1746
 	// make sure task has been deployed.
... ...
@@ -1827,7 +1827,7 @@ func (s *DockerSwarmSuite) TestSwarmStopSignal(c *check.C) {
1827 1827
 
1828 1828
 	d := s.AddDaemon(c, true, true)
1829 1829
 
1830
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", "top", "--stop-signal=SIGHUP", "busybox", "top")
1830
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", "top", "--stop-signal=SIGHUP", "busybox", "top")
1831 1831
 	c.Assert(err, checker.IsNil, check.Commentf(out))
1832 1832
 
1833 1833
 	// make sure task has been deployed.
... ...
@@ -1842,7 +1842,7 @@ func (s *DockerSwarmSuite) TestSwarmStopSignal(c *check.C) {
1842 1842
 	c.Assert(err, checker.IsNil, check.Commentf(out))
1843 1843
 	c.Assert(strings.TrimSpace(out), checker.Equals, "SIGHUP")
1844 1844
 
1845
-	out, err = d.Cmd("service", "update", "--stop-signal=SIGUSR1", "top")
1845
+	out, err = d.Cmd("service", "update", "--detach", "--stop-signal=SIGUSR1", "top")
1846 1846
 	c.Assert(err, checker.IsNil, check.Commentf(out))
1847 1847
 
1848 1848
 	out, err = d.Cmd("service", "inspect", "--format", "{{ .Spec.TaskTemplate.ContainerSpec.StopSignal }}", "top")
... ...
@@ -1853,11 +1853,11 @@ func (s *DockerSwarmSuite) TestSwarmStopSignal(c *check.C) {
1853 1853
 func (s *DockerSwarmSuite) TestSwarmServiceLsFilterMode(c *check.C) {
1854 1854
 	d := s.AddDaemon(c, true, true)
1855 1855
 
1856
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--name", "top1", "busybox", "top")
1856
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", "top1", "busybox", "top")
1857 1857
 	c.Assert(err, checker.IsNil, check.Commentf(out))
1858 1858
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
1859 1859
 
1860
-	out, err = d.Cmd("service", "create", "--no-resolve-image", "--name", "top2", "--mode=global", "busybox", "top")
1860
+	out, err = d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", "top2", "--mode=global", "busybox", "top")
1861 1861
 	c.Assert(err, checker.IsNil, check.Commentf(out))
1862 1862
 	c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
1863 1863
 
... ...
@@ -2033,7 +2033,7 @@ func (s *DockerSwarmSuite) TestSwarmClusterEventsService(c *check.C) {
2033 2033
 
2034 2034
 	// scale service
2035 2035
 	t2 := daemonUnixTime(c)
2036
-	out, err = d.Cmd("service", "scale", "test=3")
2036
+	out, err = d.Cmd("service", "scale", "--detach", "test=3")
2037 2037
 	c.Assert(err, checker.IsNil, check.Commentf(out))
2038 2038
 
2039 2039
 	out = waitForEvent(c, d, t2, "-f scope=swarm", "service update "+serviceID, defaultRetryCount)
... ...
@@ -15,7 +15,7 @@ import (
15 15
 func (s *DockerSwarmSuite) TestSwarmVolumePlugin(c *check.C) {
16 16
 	d := s.AddDaemon(c, true, true)
17 17
 
18
-	out, err := d.Cmd("service", "create", "--no-resolve-image", "--mount", "type=volume,source=my-volume,destination=/foo,volume-driver=customvolumedriver", "--name", "top", "busybox", "top")
18
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--mount", "type=volume,source=my-volume,destination=/foo,volume-driver=customvolumedriver", "--name", "top", "busybox", "top")
19 19
 	c.Assert(err, checker.IsNil, check.Commentf(out))
20 20
 
21 21
 	// Make sure task stays pending before plugin is available
... ...
@@ -74,7 +74,7 @@ func (s *DockerSwarmSuite) TestSwarmNetworkPluginV2(c *check.C) {
74 74
 
75 75
 	// create a global service to ensure that both nodes will have an instance
76 76
 	serviceName := "my-service"
77
-	_, err = d1.Cmd("service", "create", "--no-resolve-image", "--name", serviceName, "--mode=global", "--network", networkName, "busybox", "top")
77
+	_, err = d1.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", serviceName, "--mode=global", "--network", networkName, "busybox", "top")
78 78
 	c.Assert(err, checker.IsNil)
79 79
 
80 80
 	// wait for tasks ready
... ...
@@ -96,7 +96,7 @@ func (s *DockerSwarmSuite) TestSwarmNetworkPluginV2(c *check.C) {
96 96
 
97 97
 	image := "busybox:latest"
98 98
 	// create a new global service again.
99
-	_, err = d1.Cmd("service", "create", "--no-resolve-image", "--name", serviceName, "--mode=global", "--network", networkName, image, "top")
99
+	_, err = d1.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", serviceName, "--mode=global", "--network", networkName, image, "top")
100 100
 	c.Assert(err, checker.IsNil)
101 101
 
102 102
 	waitAndAssert(c, defaultReconciliationTimeout, d1.CheckRunningTaskImages, checker.DeepEquals,