Browse code

Revert "migrated service integration tests from integration-cli/docker_cli_service_update_test.go to integration/service"

This reverts commit fbaef1b0d3c5656a8aa5f0424b89c118ca277427.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>

Vincent Demeester authored on 2018/07/28 00:35:46
Showing 2 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,137 @@
0
+// +build !windows
1
+
2
+package main
3
+
4
+import (
5
+	"encoding/json"
6
+	"fmt"
7
+
8
+	"github.com/docker/docker/api/types/swarm"
9
+	"github.com/docker/docker/integration-cli/checker"
10
+	"github.com/go-check/check"
11
+)
12
+
13
+func (s *DockerSwarmSuite) TestServiceUpdateLabel(c *check.C) {
14
+	d := s.AddDaemon(c, true, true)
15
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name=test", "busybox", "top")
16
+	c.Assert(err, checker.IsNil, check.Commentf(out))
17
+	service := d.GetService(c, "test")
18
+	c.Assert(service.Spec.Labels, checker.HasLen, 0)
19
+
20
+	// add label to empty set
21
+	out, err = d.Cmd("service", "update", "--detach", "test", "--label-add", "foo=bar")
22
+	c.Assert(err, checker.IsNil, check.Commentf(out))
23
+	service = d.GetService(c, "test")
24
+	c.Assert(service.Spec.Labels, checker.HasLen, 1)
25
+	c.Assert(service.Spec.Labels["foo"], checker.Equals, "bar")
26
+
27
+	// add label to non-empty set
28
+	out, err = d.Cmd("service", "update", "--detach", "test", "--label-add", "foo2=bar")
29
+	c.Assert(err, checker.IsNil, check.Commentf(out))
30
+	service = d.GetService(c, "test")
31
+	c.Assert(service.Spec.Labels, checker.HasLen, 2)
32
+	c.Assert(service.Spec.Labels["foo2"], checker.Equals, "bar")
33
+
34
+	out, err = d.Cmd("service", "update", "--detach", "test", "--label-rm", "foo2")
35
+	c.Assert(err, checker.IsNil, check.Commentf(out))
36
+	service = d.GetService(c, "test")
37
+	c.Assert(service.Spec.Labels, checker.HasLen, 1)
38
+	c.Assert(service.Spec.Labels["foo2"], checker.Equals, "")
39
+
40
+	out, err = d.Cmd("service", "update", "--detach", "test", "--label-rm", "foo")
41
+	c.Assert(err, checker.IsNil, check.Commentf(out))
42
+	service = d.GetService(c, "test")
43
+	c.Assert(service.Spec.Labels, checker.HasLen, 0)
44
+	c.Assert(service.Spec.Labels["foo"], checker.Equals, "")
45
+
46
+	// now make sure we can add again
47
+	out, err = d.Cmd("service", "update", "--detach", "test", "--label-add", "foo=bar")
48
+	c.Assert(err, checker.IsNil, check.Commentf(out))
49
+	service = d.GetService(c, "test")
50
+	c.Assert(service.Spec.Labels, checker.HasLen, 1)
51
+	c.Assert(service.Spec.Labels["foo"], checker.Equals, "bar")
52
+}
53
+
54
+func (s *DockerSwarmSuite) TestServiceUpdateSecrets(c *check.C) {
55
+	d := s.AddDaemon(c, true, true)
56
+	testName := "test_secret"
57
+	id := d.CreateSecret(c, swarm.SecretSpec{
58
+		Annotations: swarm.Annotations{
59
+			Name: testName,
60
+		},
61
+		Data: []byte("TESTINGDATA"),
62
+	})
63
+	c.Assert(id, checker.Not(checker.Equals), "", check.Commentf("secrets: %s", id))
64
+	testTarget := "testing"
65
+	serviceName := "test"
66
+
67
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", serviceName, "busybox", "top")
68
+	c.Assert(err, checker.IsNil, check.Commentf(out))
69
+
70
+	// add secret
71
+	out, err = d.Cmd("service", "update", "--detach", "test", "--secret-add", fmt.Sprintf("source=%s,target=%s", testName, testTarget))
72
+	c.Assert(err, checker.IsNil, check.Commentf(out))
73
+
74
+	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Secrets }}", serviceName)
75
+	c.Assert(err, checker.IsNil)
76
+
77
+	var refs []swarm.SecretReference
78
+	c.Assert(json.Unmarshal([]byte(out), &refs), checker.IsNil)
79
+	c.Assert(refs, checker.HasLen, 1)
80
+
81
+	c.Assert(refs[0].SecretName, checker.Equals, testName)
82
+	c.Assert(refs[0].File, checker.Not(checker.IsNil))
83
+	c.Assert(refs[0].File.Name, checker.Equals, testTarget)
84
+
85
+	// remove
86
+	out, err = d.Cmd("service", "update", "--detach", "test", "--secret-rm", testName)
87
+	c.Assert(err, checker.IsNil, check.Commentf(out))
88
+
89
+	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Secrets }}", serviceName)
90
+	c.Assert(err, checker.IsNil)
91
+
92
+	c.Assert(json.Unmarshal([]byte(out), &refs), checker.IsNil)
93
+	c.Assert(refs, checker.HasLen, 0)
94
+}
95
+
96
+func (s *DockerSwarmSuite) TestServiceUpdateConfigs(c *check.C) {
97
+	d := s.AddDaemon(c, true, true)
98
+	testName := "test_config"
99
+	id := d.CreateConfig(c, swarm.ConfigSpec{
100
+		Annotations: swarm.Annotations{
101
+			Name: testName,
102
+		},
103
+		Data: []byte("TESTINGDATA"),
104
+	})
105
+	c.Assert(id, checker.Not(checker.Equals), "", check.Commentf("configs: %s", id))
106
+	testTarget := "/testing"
107
+	serviceName := "test"
108
+
109
+	out, err := d.Cmd("service", "create", "--detach", "--no-resolve-image", "--name", serviceName, "busybox", "top")
110
+	c.Assert(err, checker.IsNil, check.Commentf(out))
111
+
112
+	// add config
113
+	out, err = d.Cmd("service", "update", "--detach", "test", "--config-add", fmt.Sprintf("source=%s,target=%s", testName, testTarget))
114
+	c.Assert(err, checker.IsNil, check.Commentf(out))
115
+
116
+	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Configs }}", serviceName)
117
+	c.Assert(err, checker.IsNil)
118
+
119
+	var refs []swarm.ConfigReference
120
+	c.Assert(json.Unmarshal([]byte(out), &refs), checker.IsNil)
121
+	c.Assert(refs, checker.HasLen, 1)
122
+
123
+	c.Assert(refs[0].ConfigName, checker.Equals, testName)
124
+	c.Assert(refs[0].File, checker.Not(checker.IsNil))
125
+	c.Assert(refs[0].File.Name, checker.Equals, testTarget)
126
+
127
+	// remove
128
+	out, err = d.Cmd("service", "update", "--detach", "test", "--config-rm", testName)
129
+	c.Assert(err, checker.IsNil, check.Commentf(out))
130
+
131
+	out, err = d.Cmd("service", "inspect", "--format", "{{ json .Spec.TaskTemplate.ContainerSpec.Configs }}", serviceName)
132
+	c.Assert(err, checker.IsNil)
133
+
134
+	c.Assert(json.Unmarshal([]byte(out), &refs), checker.IsNil)
135
+	c.Assert(refs, checker.HasLen, 0)
136
+}
0 137
deleted file mode 100644
... ...
@@ -1,186 +0,0 @@
1
-package service // import "github.com/docker/docker/integration/service"
2
-
3
-import (
4
-	"context"
5
-	"testing"
6
-
7
-	"github.com/docker/docker/api/types"
8
-	swarmtypes "github.com/docker/docker/api/types/swarm"
9
-	"github.com/docker/docker/client"
10
-	"github.com/docker/docker/integration/internal/swarm"
11
-	"gotest.tools/assert"
12
-	is "gotest.tools/assert/cmp"
13
-	"gotest.tools/skip"
14
-)
15
-
16
-func TestServiceUpdateLabel(t *testing.T) {
17
-	skip.If(t, testEnv.DaemonInfo.OSType != "linux")
18
-	defer setupTest(t)()
19
-	d := swarm.NewSwarm(t, testEnv)
20
-	defer d.Stop(t)
21
-	cli := d.NewClientT(t)
22
-	defer cli.Close()
23
-
24
-	ctx := context.Background()
25
-	serviceName := "TestService_" + t.Name()
26
-	serviceID := swarm.CreateService(t, d, swarm.ServiceWithName(serviceName))
27
-	service := getService(t, cli, serviceID)
28
-	assert.Check(t, is.DeepEqual(service.Spec.Labels, map[string]string{}))
29
-
30
-	// add label to empty set
31
-	service.Spec.Labels["foo"] = "bar"
32
-	_, err := cli.ServiceUpdate(ctx, serviceID, service.Version, service.Spec, types.ServiceUpdateOptions{})
33
-	assert.NilError(t, err)
34
-	service = getService(t, cli, serviceID)
35
-	assert.Check(t, is.DeepEqual(service.Spec.Labels, map[string]string{"foo": "bar"}))
36
-
37
-	// add label to non-empty set
38
-	service.Spec.Labels["foo2"] = "bar"
39
-	_, err = cli.ServiceUpdate(ctx, serviceID, service.Version, service.Spec, types.ServiceUpdateOptions{})
40
-	assert.NilError(t, err)
41
-	service = getService(t, cli, serviceID)
42
-	assert.Check(t, is.DeepEqual(service.Spec.Labels, map[string]string{"foo": "bar", "foo2": "bar"}))
43
-
44
-	delete(service.Spec.Labels, "foo2")
45
-	_, err = cli.ServiceUpdate(ctx, serviceID, service.Version, service.Spec, types.ServiceUpdateOptions{})
46
-	assert.NilError(t, err)
47
-	service = getService(t, cli, serviceID)
48
-	assert.Check(t, is.DeepEqual(service.Spec.Labels, map[string]string{"foo": "bar"}))
49
-
50
-	delete(service.Spec.Labels, "foo")
51
-	_, err = cli.ServiceUpdate(ctx, serviceID, service.Version, service.Spec, types.ServiceUpdateOptions{})
52
-	assert.NilError(t, err)
53
-	service = getService(t, cli, serviceID)
54
-	assert.Check(t, is.DeepEqual(service.Spec.Labels, map[string]string{}))
55
-
56
-	// now make sure we can add again
57
-	service.Spec.Labels["foo"] = "bar"
58
-	_, err = cli.ServiceUpdate(ctx, serviceID, service.Version, service.Spec, types.ServiceUpdateOptions{})
59
-	assert.NilError(t, err)
60
-	service = getService(t, cli, serviceID)
61
-	assert.Check(t, is.DeepEqual(service.Spec.Labels, map[string]string{"foo": "bar"}))
62
-
63
-	err = cli.ServiceRemove(context.Background(), serviceID)
64
-	assert.NilError(t, err)
65
-}
66
-
67
-func TestServiceUpdateSecrets(t *testing.T) {
68
-	skip.If(t, testEnv.DaemonInfo.OSType != "linux")
69
-	defer setupTest(t)()
70
-	d := swarm.NewSwarm(t, testEnv)
71
-	defer d.Stop(t)
72
-	cli := d.NewClientT(t)
73
-	defer cli.Close()
74
-
75
-	ctx := context.Background()
76
-	secretName := "TestSecret_" + t.Name()
77
-	secretTarget := "targetName"
78
-	resp, err := cli.SecretCreate(ctx, swarmtypes.SecretSpec{
79
-		Annotations: swarmtypes.Annotations{
80
-			Name: secretName,
81
-		},
82
-		Data: []byte("TESTINGDATA"),
83
-	})
84
-	assert.NilError(t, err)
85
-	assert.Check(t, resp.ID != "")
86
-
87
-	serviceName := "TestService_" + t.Name()
88
-	serviceID := swarm.CreateService(t, d, swarm.ServiceWithName(serviceName))
89
-	service := getService(t, cli, serviceID)
90
-
91
-	// add secret
92
-	service.Spec.TaskTemplate.ContainerSpec.Secrets = append(service.Spec.TaskTemplate.ContainerSpec.Secrets,
93
-		&swarmtypes.SecretReference{
94
-			File: &swarmtypes.SecretReferenceFileTarget{
95
-				Name: secretTarget,
96
-			},
97
-			SecretID:   resp.ID,
98
-			SecretName: secretName,
99
-		},
100
-	)
101
-	_, err = cli.ServiceUpdate(ctx, serviceID, service.Version, service.Spec, types.ServiceUpdateOptions{})
102
-	assert.NilError(t, err)
103
-
104
-	service = getService(t, cli, serviceID)
105
-	secrets := service.Spec.TaskTemplate.ContainerSpec.Secrets
106
-	assert.Assert(t, is.Equal(1, len(secrets)))
107
-
108
-	secret := *secrets[0]
109
-	assert.Check(t, is.Equal(secretName, secret.SecretName))
110
-	assert.Check(t, nil != secret.File)
111
-	assert.Check(t, is.Equal(secretTarget, secret.File.Name))
112
-
113
-	// remove
114
-	service.Spec.TaskTemplate.ContainerSpec.Secrets = []*swarmtypes.SecretReference{}
115
-	_, err = cli.ServiceUpdate(ctx, serviceID, service.Version, service.Spec, types.ServiceUpdateOptions{})
116
-	assert.NilError(t, err)
117
-	service = getService(t, cli, serviceID)
118
-	assert.Check(t, is.Equal(0, len(service.Spec.TaskTemplate.ContainerSpec.Secrets)))
119
-
120
-	err = cli.ServiceRemove(context.Background(), serviceID)
121
-	assert.NilError(t, err)
122
-}
123
-
124
-func TestServiceUpdateConfigs(t *testing.T) {
125
-	skip.If(t, testEnv.DaemonInfo.OSType != "linux")
126
-	defer setupTest(t)()
127
-	d := swarm.NewSwarm(t, testEnv)
128
-	defer d.Stop(t)
129
-	cli := d.NewClientT(t)
130
-	defer cli.Close()
131
-
132
-	ctx := context.Background()
133
-	configName := "TestConfig_" + t.Name()
134
-	configTarget := "targetName"
135
-	resp, err := cli.ConfigCreate(ctx, swarmtypes.ConfigSpec{
136
-		Annotations: swarmtypes.Annotations{
137
-			Name: configName,
138
-		},
139
-		Data: []byte("TESTINGDATA"),
140
-	})
141
-	assert.NilError(t, err)
142
-	assert.Check(t, resp.ID != "")
143
-
144
-	serviceName := "TestService_" + t.Name()
145
-	serviceID := swarm.CreateService(t, d, swarm.ServiceWithName(serviceName))
146
-	service := getService(t, cli, serviceID)
147
-
148
-	// add config
149
-	service.Spec.TaskTemplate.ContainerSpec.Configs = append(service.Spec.TaskTemplate.ContainerSpec.Configs,
150
-		&swarmtypes.ConfigReference{
151
-			File: &swarmtypes.ConfigReferenceFileTarget{
152
-				Name: configTarget,
153
-			},
154
-			ConfigID:   resp.ID,
155
-			ConfigName: configName,
156
-		},
157
-	)
158
-	_, err = cli.ServiceUpdate(ctx, serviceID, service.Version, service.Spec, types.ServiceUpdateOptions{})
159
-	assert.NilError(t, err)
160
-
161
-	service = getService(t, cli, serviceID)
162
-	configs := service.Spec.TaskTemplate.ContainerSpec.Configs
163
-	assert.Assert(t, is.Equal(1, len(configs)))
164
-
165
-	config := *configs[0]
166
-	assert.Check(t, is.Equal(configName, config.ConfigName))
167
-	assert.Check(t, nil != config.File)
168
-	assert.Check(t, is.Equal(configTarget, config.File.Name))
169
-
170
-	// remove
171
-	service.Spec.TaskTemplate.ContainerSpec.Configs = []*swarmtypes.ConfigReference{}
172
-	_, err = cli.ServiceUpdate(ctx, serviceID, service.Version, service.Spec, types.ServiceUpdateOptions{})
173
-	assert.NilError(t, err)
174
-	service = getService(t, cli, serviceID)
175
-	assert.Check(t, is.Equal(0, len(service.Spec.TaskTemplate.ContainerSpec.Configs)))
176
-
177
-	err = cli.ServiceRemove(context.Background(), serviceID)
178
-	assert.NilError(t, err)
179
-}
180
-
181
-func getService(t *testing.T, cli client.ServiceAPIClient, serviceID string) swarmtypes.Service {
182
-	t.Helper()
183
-	service, _, err := cli.ServiceInspectWithRaw(context.Background(), serviceID, types.ServiceInspectOptions{})
184
-	assert.NilError(t, err)
185
-	return service
186
-}