choria-mcorpc-support 2.24.3 → 2.25.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,10 +2,10 @@
2
2
  "$schema": "https://choria.io/schemas/mcorpc/ddl/v1/agent.json",
3
3
  "metadata": {
4
4
  "name": "rpcutil",
5
- "description": "General helpful actions that expose stats and internals to SimpleRPC clients",
5
+ "description": "Utility actions that expose information about the state of the running Server",
6
6
  "author": "R.I.Pienaar <rip@devco.net>",
7
- "license": "Apache License, Version 2.0",
8
- "version": "0.19.0",
7
+ "license": "Apache-2.0",
8
+ "version": "0.24.0",
9
9
  "url": "https://choria.io/",
10
10
  "timeout": 2
11
11
  },
@@ -18,11 +18,11 @@
18
18
  "agents": {
19
19
  "description": "List of agents on the server",
20
20
  "display_as": "Agents",
21
- "default": null
21
+ "type": "array"
22
22
  }
23
23
  },
24
24
  "display": "always",
25
- "description": "Inventory of all agents on the server"
25
+ "description": "Inventory of all agents on the server including versions, licenses and more"
26
26
  },
27
27
  {
28
28
  "action": "collective_info",
@@ -32,16 +32,16 @@
32
32
  "main_collective": {
33
33
  "description": "The main Collective",
34
34
  "display_as": "Main Collective",
35
- "default": null
35
+ "type": "string"
36
36
  },
37
37
  "collectives": {
38
38
  "description": "All Collectives",
39
39
  "display_as": "All Collectives",
40
- "default": null
40
+ "type": "array"
41
41
  }
42
42
  },
43
43
  "display": "always",
44
- "description": "Info about the main and sub collectives",
44
+ "description": "Info about the main and sub collectives that the server belongs to",
45
45
  "aggregate": [
46
46
  {
47
47
  "function": "summary",
@@ -57,74 +57,74 @@
57
57
  },
58
58
  "output": {
59
59
  "threads": {
60
- "description": "List of threads active in the daemon",
60
+ "description": "List of threads active in the Choria Server",
61
61
  "display_as": "Threads",
62
- "default": null
62
+ "type": "array"
63
63
  },
64
64
  "agents": {
65
65
  "description": "List of agents loaded",
66
66
  "display_as": "Agents",
67
- "default": null
67
+ "type": "array"
68
68
  },
69
69
  "pid": {
70
- "description": "Process ID of the daemon",
70
+ "description": "Process ID of the Choria Server",
71
71
  "display_as": "PID",
72
- "default": null
72
+ "type": "integer"
73
73
  },
74
74
  "times": {
75
- "description": "Processor time consumed by the daemon",
75
+ "description": "Processor time consumed by the Choria Server",
76
76
  "display_as": "Times",
77
- "default": null
77
+ "type": "hash"
78
78
  },
79
79
  "validated": {
80
- "description": "Messages that passed security validation",
80
+ "description": "Count of messages that passed security validation",
81
81
  "display_as": "Security Validated",
82
- "default": null
82
+ "type": "integer"
83
83
  },
84
84
  "unvalidated": {
85
- "description": "Messages that failed security validation",
85
+ "description": "Count of messages that failed security validation",
86
86
  "display_as": "Failed Security",
87
- "default": null
87
+ "type": "integer"
88
88
  },
89
89
  "passed": {
90
- "description": "Passed filter checks",
90
+ "description": "Count of messages that passed filter checks",
91
91
  "display_as": "Passed Filter",
92
- "default": null
92
+ "type": "integer"
93
93
  },
94
94
  "filtered": {
95
- "description": "Didn't pass filter checks",
95
+ "description": "Count of message that didn't pass filter checks",
96
96
  "display_as": "Failed Filter",
97
- "default": null
97
+ "type": "integer"
98
98
  },
99
99
  "starttime": {
100
- "description": "Time the server started",
100
+ "description": "Time the Choria Server started in unix seconds",
101
101
  "display_as": "Start Time",
102
- "default": null
102
+ "type": "integer"
103
103
  },
104
104
  "total": {
105
- "description": "Total messages received",
105
+ "description": "Count of messages received by the Choria Server",
106
106
  "display_as": "Total Messages",
107
- "default": null
107
+ "type": "integer"
108
108
  },
109
109
  "replies": {
110
- "description": "Replies sent back to clients",
110
+ "description": "Count of replies sent back to clients",
111
111
  "display_as": "Replies",
112
- "default": null
112
+ "type": "integer"
113
113
  },
114
114
  "configfile": {
115
115
  "description": "Config file used to start the daemon",
116
116
  "display_as": "Config File",
117
- "default": null
117
+ "type": "string"
118
118
  },
119
119
  "version": {
120
- "description": "MCollective Version",
120
+ "description": "Choria Server Version",
121
121
  "display_as": "Version",
122
- "default": null
122
+ "type": "string"
123
123
  },
124
124
  "ttlexpired": {
125
- "description": "Messages that did pass TTL checks",
125
+ "description": "Count of messages that did pass TTL checks",
126
126
  "display_as": "TTL Expired",
127
- "default": null
127
+ "type": "integer"
128
128
  }
129
129
  },
130
130
  "display": "always",
@@ -151,22 +151,20 @@
151
151
  "prompt": "Configuration Item",
152
152
  "description": "The item to retrieve from the server",
153
153
  "type": "string",
154
- "default": null,
155
154
  "optional": false,
156
155
  "validation": "^.+$",
157
- "maxlength": 50
156
+ "maxlength": 120
158
157
  }
159
158
  },
160
159
  "output": {
161
160
  "item": {
162
161
  "description": "The config property being retrieved",
163
162
  "display_as": "Property",
164
- "default": null
163
+ "type": "string"
165
164
  },
166
165
  "value": {
167
166
  "description": "The value that is in use",
168
- "display_as": "Value",
169
- "default": null
167
+ "display_as": "Value"
170
168
  }
171
169
  },
172
170
  "display": "always",
@@ -187,7 +185,6 @@
187
185
  "prompt": "Data Source",
188
186
  "description": "The data plugin to retrieve information from",
189
187
  "type": "string",
190
- "default": null,
191
188
  "optional": false,
192
189
  "validation": "^\\w+$",
193
190
  "maxlength": 50
@@ -202,8 +199,7 @@
202
199
  "maxlength": 200
203
200
  }
204
201
  },
205
- "output": {
206
- },
202
+ "output": {},
207
203
  "display": "always",
208
204
  "description": "Get data from a data plugin"
209
205
  },
@@ -224,7 +220,7 @@
224
220
  "fact": {
225
221
  "description": "The name of the fact being returned",
226
222
  "display_as": "Fact",
227
- "default": null
223
+ "type": "string"
228
224
  },
229
225
  "value": {
230
226
  "description": "The value of the fact",
@@ -247,7 +243,7 @@
247
243
  "action": "get_facts",
248
244
  "input": {
249
245
  "facts": {
250
- "prompt": "Comma-separated list of facts",
246
+ "prompt": "Comma-separated list of facts to retrieve",
251
247
  "description": "Facts to retrieve",
252
248
  "type": "string",
253
249
  "default": null,
@@ -260,7 +256,7 @@
260
256
  "values": {
261
257
  "description": "List of values of the facts",
262
258
  "display_as": "Values",
263
- "default": null
259
+ "type": "hash"
264
260
  }
265
261
  },
266
262
  "display": "always",
@@ -274,41 +270,42 @@
274
270
  "agents": {
275
271
  "description": "List of agent names",
276
272
  "display_as": "Agents",
277
- "default": null
273
+ "type": "array"
278
274
  },
279
275
  "facts": {
280
276
  "description": "List of facts and values",
281
277
  "display_as": "Facts",
282
- "default": null
278
+ "type": "hash"
283
279
  },
284
280
  "classes": {
285
281
  "description": "List of classes on the system",
286
282
  "display_as": "Classes",
287
- "default": null
283
+ "type": "array"
288
284
  },
289
285
  "version": {
290
- "description": "MCollective Version",
286
+ "description": "Choria Server Version",
291
287
  "display_as": "Version",
292
- "default": null
288
+ "type": "string"
293
289
  },
294
290
  "main_collective": {
295
291
  "description": "The main Collective",
296
292
  "display_as": "Main Collective",
297
- "default": null
293
+ "type": "string"
298
294
  },
299
295
  "collectives": {
300
296
  "description": "All Collectives",
301
297
  "display_as": "All Collectives",
302
- "default": null
298
+ "type": "array"
303
299
  },
304
300
  "data_plugins": {
305
301
  "description": "List of data plugin names",
306
302
  "display_as": "Data Plugins",
307
- "default": null
303
+ "type": "array"
308
304
  },
309
305
  "machines": {
310
306
  "description": "Autonomous Agents",
311
- "display_as": "Machines"
307
+ "display_as": "Machines",
308
+ "type": "hash"
312
309
  }
313
310
  },
314
311
  "display": "always",
@@ -320,9 +317,9 @@
320
317
  },
321
318
  "output": {
322
319
  "pong": {
323
- "description": "The local timestamp",
320
+ "description": "The local Unix timestamp",
324
321
  "display_as": "Timestamp",
325
- "default": null
322
+ "type": "string"
326
323
  }
327
324
  },
328
325
  "display": "always",
@@ -2,7 +2,7 @@ metadata :name => "scout",
2
2
  :description => "Choria Scout Agent Management API",
3
3
  :author => "R.I.Pienaar <rip@devco.net>",
4
4
  :license => "Apache-2.0",
5
- :version => "0.0.1",
5
+ :version => "0.24.0",
6
6
  :url => "https://choria.io",
7
7
  :provider => "golang",
8
8
  :timeout => 5
@@ -132,9 +132,9 @@ action "goss_validate", :description => "Performs a Goss validation using a spec
132
132
  :display_as => "Tests"
133
133
 
134
134
  summarize do
135
- aggregate summary(:tests, :format => "%s Test Cases on %d node(s)")
136
- aggregate summary(:failures, :format => "%s Failed Cases on %d node(s)")
137
- aggregate summary(:success, :format => "%s Passed Cases on %d node(s)")
135
+ aggregate summary(:tests, :format => "%s Tests on %d node(s)")
136
+ aggregate summary(:failures, :format => "%s Failed test on %d node(s)")
137
+ aggregate summary(:success, :format => "%s Passed tests on %d node(s)")
138
138
  end
139
139
  end
140
140
 
@@ -5,7 +5,7 @@
5
5
  "author": "R.I.Pienaar <rip@devco.net>",
6
6
  "timeout": 5,
7
7
  "name": "scout",
8
- "version": "0.0.1",
8
+ "version": "0.24.0",
9
9
  "url": "https://choria.io",
10
10
  "description": "Choria Scout Agent Management API",
11
11
  "provider": "golang"
@@ -10,6 +10,9 @@ module MCollective
10
10
 
11
11
  cmd = [binary_name, "discover", "-j", "--silent"]
12
12
 
13
+ config = client.options.fetch(:config)
14
+ cmd << "--config" << config if config
15
+
13
16
  cmd << "-T" << filter["collective"] if filter["collective"]
14
17
 
15
18
  filter.fetch("identity", []).each do |i|
@@ -53,17 +56,18 @@ module MCollective
53
56
 
54
57
  begin
55
58
  Timeout.timeout(timeout + 0.5) do
59
+ out = stdout.read
56
60
  status = wait_thr.value
57
61
 
58
62
  raise("Choria discovery failed: %s" % stderr.read) unless status.exitstatus == 0
63
+
64
+ nodes.concat(JSON.parse(out))
59
65
  end
60
66
  rescue Timeout::Error
61
67
  Log.warn("Timeout waiting for Choria to perform discovery")
62
68
  Process.kill("KILL", wait_thr[:pid])
63
69
  raise("Choria failed to complete discovery within %d timeout" % timeout)
64
70
  end
65
-
66
- nodes.concat(JSON.parse(stdout.read))
67
71
  end
68
72
 
69
73
  nodes
@@ -65,7 +65,7 @@ module MCollective
65
65
  # AIO path to binaries like wrappers etc
66
66
  def aio_bin_path
67
67
  if Util.windows?
68
- 'C:\Program Files\Puppet Labs\Puppet\bin'
68
+ 'C:\Program Files\Puppet Labs\Puppet\puppet\bin'
69
69
  else
70
70
  "/opt/puppetlabs/puppet/bin"
71
71
  end
@@ -88,6 +88,13 @@ module MCollective
88
88
  end
89
89
  end
90
90
 
91
+ # Is this an AIO install?
92
+ #
93
+ # @return [Boolean]
94
+ def aio?
95
+ File.directory?(aio_bin_path)
96
+ end
97
+
91
98
  # Path to the task wrapper executable
92
99
  #
93
100
  # @return [String]
@@ -179,6 +186,8 @@ module MCollective
179
186
  "_choria_task_caller" => task_caller
180
187
  }
181
188
 
189
+ environment["PATH"] = "#{aio_bin_path}#{File::PATH_SEPARATOR}#{ENV['PATH']}" if aio?
190
+
182
191
  return environment unless task["input"]
183
192
  return environment unless ["both", "environment"].include?(task_input_method(task))
184
193
 
@@ -250,7 +259,7 @@ module MCollective
250
259
  # act on these tasks either by asking for their status or perhaps killing
251
260
  # them?
252
261
  #
253
- # @param command [Array<String>] command to run
262
+ # @param command [String] command to run
254
263
  # @param environment [Hash] environment to run with
255
264
  # @param stdin [String] stdin to send to the command
256
265
  # @param spooldir [String] path to the spool for this specific request
@@ -291,7 +300,7 @@ module MCollective
291
300
  Process.exec(environment, command, options)
292
301
  end
293
302
  else
294
- pid = Process.spawn(environment, command, options)
303
+ pid = Process.spawn(environment, [command, command], options)
295
304
  end
296
305
 
297
306
  sleep 0.1 until File.exist?(wrapper_stdout)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: choria-mcorpc-support
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.24.3
4
+ version: 2.25.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - R.I.Pienaar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-23 00:00:00.000000000 Z
11
+ date: 2021-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: systemu
@@ -37,6 +37,9 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0.6'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: 0.7.0
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -44,6 +47,9 @@ dependencies:
44
47
  - - "~>"
45
48
  - !ruby/object:Gem::Version
46
49
  version: '0.6'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: 0.7.0
47
53
  description: Libraries enabling Ruby support for the Choria Orchestration Server
48
54
  email: rip@devco.net
49
55
  executables:
@@ -54,9 +60,15 @@ files:
54
60
  - bin/mco
55
61
  - lib/mcollective.rb
56
62
  - lib/mcollective/agent.rb
63
+ - lib/mcollective/agent/aaa_signer.ddl
64
+ - lib/mcollective/agent/aaa_signer.json
57
65
  - lib/mcollective/agent/bolt_tasks.ddl
58
66
  - lib/mcollective/agent/bolt_tasks.json
59
67
  - lib/mcollective/agent/bolt_tasks.rb
68
+ - lib/mcollective/agent/choria_provision.ddl
69
+ - lib/mcollective/agent/choria_provision.json
70
+ - lib/mcollective/agent/choria_registry.ddl
71
+ - lib/mcollective/agent/choria_registry.json
60
72
  - lib/mcollective/agent/choria_util.ddl
61
73
  - lib/mcollective/agent/choria_util.json
62
74
  - lib/mcollective/agent/rpcutil.ddl