File tree Expand file tree Collapse file tree 8 files changed +188
-0
lines changed Expand file tree Collapse file tree 8 files changed +188
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ {
3
+ "description" : " List nodes in the swarm" ,
4
+ "input_method" : " stdin" ,
5
+ "parameters" : {
6
+ "filter" : {
7
+ "description" : " Filter output based on conditions provided" ,
8
+ "type" : " Optional[String[1]]"
9
+ },
10
+ "quiet" : {
11
+ "description" : " Only display IDs" ,
12
+ "type" : " Optional[Boolean]"
13
+ }
14
+ }
15
+ }
Original file line number Diff line number Diff line change
1
+ #!/opt/puppetlabs/puppet/bin/ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'json'
5
+ require 'open3'
6
+ require 'puppet'
7
+
8
+ def node_ls ( filter , quiet )
9
+ cmd_string = 'docker node ls'
10
+ cmd_string += " --filter=#{ filter } " unless filter . nil?
11
+ cmd_string += ' --quiet' unless quiet . nil?
12
+
13
+ stdout , stderr , status = Open3 . capture3 ( cmd_string )
14
+ raise Puppet ::Error , "stderr: '#{ stderr } '" if status != 0
15
+ stdout . strip
16
+ end
17
+
18
+ params = JSON . parse ( STDIN . read )
19
+ filter = params [ 'filter' ]
20
+ quiet = params [ 'quiet' ]
21
+
22
+ begin
23
+ result = node_ls ( filter , quiet )
24
+ puts result
25
+ exit 0
26
+ rescue Puppet ::Error => e
27
+ puts ( status : 'failure' , error : e . message )
28
+ exit 1
29
+ end
Original file line number Diff line number Diff line change
1
+
2
+ {
3
+ "description" : " Update a node" ,
4
+ "input_method" : " stdin" ,
5
+ "parameters" : {
6
+ "force" : {
7
+ "description" : " Force remove a node from the swarm" ,
8
+ "type" : " Optional[Boolean]"
9
+ },
10
+ "node" : {
11
+ "description" : " Hostname or ID of the node in the swarm" ,
12
+ "type" : " String[1]"
13
+ }
14
+ }
15
+ }
Original file line number Diff line number Diff line change
1
+ #!/opt/puppetlabs/puppet/bin/ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'json'
5
+ require 'open3'
6
+ require 'puppet'
7
+
8
+ def node_rm ( force , node )
9
+ cmd_string = 'docker node rm'
10
+ cmd_string += ' --force' unless force . nil?
11
+ cmd_string += " #{ node } " unless node . nil?
12
+
13
+ stdout , stderr , status = Open3 . capture3 ( cmd_string )
14
+ raise Puppet ::Error , "stderr: '#{ stderr } '" if status != 0
15
+ stdout . strip
16
+ end
17
+
18
+ params = JSON . parse ( STDIN . read )
19
+ force = params [ 'force' ]
20
+ node = params [ 'node' ]
21
+
22
+ begin
23
+ result = node_rm ( force , node )
24
+ puts result
25
+ exit 0
26
+ rescue Puppet ::Error => e
27
+ puts ( status : 'failure' , error : e . message )
28
+ exit 1
29
+ end
Original file line number Diff line number Diff line change
1
+
2
+ {
3
+ "description" : " Update a node" ,
4
+ "input_method" : " stdin" ,
5
+ "parameters" : {
6
+ "availability" : {
7
+ "description" : " Availability of the node" ,
8
+ "type" : " Optional[Enum['active', 'pause', 'drain']]"
9
+ },
10
+ "role" : {
11
+ "description" : " Role of the node" ,
12
+ "type" : " Optional[Enum['manager', 'worker']]"
13
+ },
14
+ "node" : {
15
+ "description" : " Hostname or ID of the node in the swarm" ,
16
+ "type" : " String[1]"
17
+ }
18
+ }
19
+ }
Original file line number Diff line number Diff line change
1
+ #!/opt/puppetlabs/puppet/bin/ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'json'
5
+ require 'open3'
6
+ require 'puppet'
7
+
8
+ def node_update ( availability , role , node )
9
+ cmd_string = 'docker node update'
10
+ cmd_string += " --availability #{ availability } " unless availability . nil?
11
+ cmd_string += " --role #{ role } " unless role . nil?
12
+ cmd_string += " #{ node } " unless node . nil?
13
+
14
+ stdout , stderr , status = Open3 . capture3 ( cmd_string )
15
+ raise Puppet ::Error , "stderr: '#{ stderr } '" if status != 0
16
+ stdout . strip
17
+ end
18
+
19
+ params = JSON . parse ( STDIN . read )
20
+ availability = params [ 'availability' ]
21
+ role = params [ 'role' ]
22
+ node = params [ 'node' ]
23
+
24
+ begin
25
+ result = node_update ( availability , role , node )
26
+ puts result
27
+ exit 0
28
+ rescue Puppet ::Error => e
29
+ puts ( status : 'failure' , error : e . message )
30
+ exit 1
31
+ end
Original file line number Diff line number Diff line change
1
+
2
+ {
3
+ "description" : " Scale one replicated service" ,
4
+ "input_method" : " stdin" ,
5
+ "parameters" : {
6
+ "service" : {
7
+ "description" : " Name or ID of the service" ,
8
+ "type" : " String[1]"
9
+ },
10
+ "scale" : {
11
+ "description" : " Number of replicas" ,
12
+ "type" : " Integer"
13
+ },
14
+ "detatch" : {
15
+ "description" : " Exit immediately instead of waiting for the service to converge" ,
16
+ "type" : " Optional[Boolean]"
17
+ }
18
+ }
19
+ }
Original file line number Diff line number Diff line change
1
+ #!/opt/puppetlabs/puppet/bin/ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'json'
5
+ require 'open3'
6
+ require 'puppet'
7
+
8
+ def service_scale ( service , scale , detach )
9
+ cmd_string = 'docker service scale'
10
+ cmd_string += " #{ service } " unless service . nil?
11
+ cmd_string += "=#{ scale } " unless scale . nil?
12
+ cmd_string += ' -d' unless detach . nil?
13
+
14
+ stdout , stderr , status = Open3 . capture3 ( cmd_string )
15
+ raise Puppet ::Error , "stderr: '#{ stderr } '" if status != 0
16
+ stdout . strip
17
+ end
18
+
19
+ params = JSON . parse ( STDIN . read )
20
+ service = params [ 'service' ]
21
+ scale = params [ 'scale' ]
22
+ detach = params [ 'detach' ]
23
+
24
+ begin
25
+ result = service_scale ( service , scale , detach )
26
+ puts result
27
+ exit 0
28
+ rescue Puppet ::Error => e
29
+ puts ( status : 'failure' , error : e . message )
30
+ exit 1
31
+ end
You can’t perform that action at this time.
0 commit comments