Skip to content

Commit cdcbd74

Browse files
committed
add/remove service constraints
1 parent d16ba72 commit cdcbd74

7 files changed

+26
-7
lines changed

tasks/service_scale.json

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
{
32
"description": "Scale one replicated service",
43
"input_method": "stdin",

tasks/service_update.json

+8
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@
99
"image": {
1010
"description": "The new image to use for the service",
1111
"type": "String[1]"
12+
},
13+
"constraint_add": {
14+
"description": "Add or update a service constraint (selector==value, selector!=value)",
15+
"type": "Optional[Array]"
16+
},
17+
"constraint_rm": {
18+
"description": "Remove a service constraint if exists.",
19+
"type": "Optional[Array]"
1220
}
1321
}
1422
}

tasks/service_update.rb

+18-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,23 @@
55
require 'open3'
66
require 'puppet'
77

8-
def service_update(image, service)
8+
def service_update(image, service, constraint_add, constraint_rm)
99
cmd_string = 'docker service update'
1010
cmd_string += " --image #{image}" unless image.nil?
11+
12+
13+
if constraint_add.is_a? Array
14+
constraint_add.each do |param|
15+
cmd_string += " --constraint-add #{param}"
16+
end
17+
end
18+
19+
if constraint_rm.is_a? Array
20+
constraint_rm.each do |param|
21+
cmd_string += " --constraint-rm #{param}"
22+
end
23+
end
24+
1125
cmd_string += " #{service}" unless service.nil?
1226

1327
stdout, stderr, status = Open3.capture3(cmd_string)
@@ -18,9 +32,11 @@ def service_update(image, service)
1832
params = JSON.parse(STDIN.read)
1933
image = params['image']
2034
service = params['service']
35+
constraint_add = params['constraint_add']
36+
constraint_rm = params['constraint_rm']
2137

2238
begin
23-
result = service_update(image, service)
39+
result = service_update(image, service, constraint_add, constraint_rm)
2440
puts result
2541
exit 0
2642
rescue Puppet::Error => e

tasks/swarm_init.json

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
{
32
"description": "Initializes a swarm",
43
"input_method": "stdin",

tasks/swarm_join.json

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
{
32
"description": "Join a swarm",
43
"input_method": "stdin",

tasks/swarm_leave.json

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
{
32
"description": "Leave a swarm",
43
"input_method": "stdin",

tasks/swarm_token.json

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
{
32
"description": "Gets the swarm token from the master",
43
"input_method": "stdin",

0 commit comments

Comments
 (0)