choria-mcorpc-support 2.26.0 → 2.26.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4edceb07e1b046286da6d475f5bea4391a6851b8e49e82af7373a151b476755a
4
- data.tar.gz: 37e7c6e320f2742a9dd2722ad2531dd710745880ad09926f15d554ebe3fefb88
3
+ metadata.gz: b2a92d73331d1dfabcfc35d7b12450ec5ad3026289fd0d9afd6d744b17cfed22
4
+ data.tar.gz: fbb5b974bed1c123d7ac730b5836cc033b15ad8e6ec79d6a20634a91bc304b3e
5
5
  SHA512:
6
- metadata.gz: 11c2d30b7266823e70ed2d865d453c4f43ce5f0dc326bd7a963774240ccda4151d863f22ae327ec2f5e073df92cdf50af1b888c7a799e1967000ce497ff00bfc
7
- data.tar.gz: 5ca64410539e9f6b984c084b20e13f1d049e23e2677c533fa2a1b0c7c7966c2df340d6918a35a8b45013785a32ef66cc777c5237adfb382213232c2c1c20c02e
6
+ metadata.gz: 85c8e1bafacbc2ca481332dc4879acecdef151cb0cdb8c1eb8f14173298b288b4d4a2d9c7f2eed08719868b80ef5a23c4e50e903b07c9e776cd604c00b548c1a
7
+ data.tar.gz: dc8cd959eb42bf830eea2e938ba06552280bde4f4b8c47bfd75f61053d53e9616ed1a7ac1458d586eb5d5ac88b2d03a4d29dc1bb2dcd59839c938513d65e7af0
@@ -2,7 +2,7 @@ metadata :name => "aaa_signer",
2
2
  :description => "Request Signer for Choria AAA Service",
3
3
  :author => "R.I.Pienaar <rip@devco.net>",
4
4
  :license => "Apache-2.0",
5
- :version => "0.24.0",
5
+ :version => "0.27.0",
6
6
  :url => "https://github.com/choria-io/aaasvc",
7
7
  :provider => "golang",
8
8
  :service => true,
@@ -21,6 +21,15 @@ action "sign", :description => "Signs a RPC Request on behalf of a user" do
21
21
  :optional => false
22
22
 
23
23
 
24
+ input :signature,
25
+ :prompt => "Request Signature",
26
+ :description => "A signature produced using the ed25519 seed of the request, hex encoded",
27
+ :type => :string,
28
+ :validation => '.',
29
+ :maxlength => 1024,
30
+ :optional => false
31
+
32
+
24
33
  input :token,
25
34
  :prompt => "JWT Token",
26
35
  :description => "The JWT token authenticating the user",
@@ -5,7 +5,7 @@
5
5
  "author": "R.I.Pienaar \u003crip@devco.net\u003e",
6
6
  "timeout": 10,
7
7
  "name": "aaa_signer",
8
- "version": "0.24.0",
8
+ "version": "0.27.0",
9
9
  "url": "https://github.com/choria-io/aaasvc",
10
10
  "description": "Request Signer for Choria AAA Service",
11
11
  "provider": "golang",
@@ -30,6 +30,14 @@
30
30
  "optional": false,
31
31
  "validation": ".",
32
32
  "maxlength": 10024
33
+ },
34
+ "signature": {
35
+ "prompt": "Request Signature",
36
+ "description": "A signature produced using the ed25519 seed of the request, hex encoded",
37
+ "type": "string",
38
+ "optional": false,
39
+ "validation": ".",
40
+ "maxlength": 1024
33
41
  }
34
42
  },
35
43
  "output": {
@@ -2,7 +2,7 @@ metadata :name => "choria_provision",
2
2
  :description => "Choria Provisioner",
3
3
  :author => "R.I.Pienaar <rip@devco.net>",
4
4
  :license => "Apache-2.0",
5
- :version => "0.24.0",
5
+ :version => "0.27.0",
6
6
  :url => "https://choria.io",
7
7
  :timeout => 20
8
8
 
@@ -55,7 +55,7 @@ action "configure", :description => "Configure the Choria Server" do
55
55
 
56
56
  input :key,
57
57
  :prompt => "PEM text block for the private key",
58
- :description => "",
58
+ :description => "A RSA private key",
59
59
  :type => :string,
60
60
  :validation => '-----BEGIN RSA PRIVATE KEY-----',
61
61
  :maxlength => 10240,
@@ -69,6 +69,15 @@ action "configure", :description => "Configure the Choria Server" do
69
69
  :optional => true
70
70
 
71
71
 
72
+ input :server_jwt,
73
+ :prompt => "Server JWT",
74
+ :description => "JWT file used to identify the server to the broker for ed25519 based authentication",
75
+ :type => :string,
76
+ :validation => '.',
77
+ :maxlength => 2048,
78
+ :optional => true
79
+
80
+
72
81
  input :ssldir,
73
82
  :prompt => "SSL Dir",
74
83
  :description => "Directory for storing the certificate in",
@@ -96,6 +105,46 @@ action "configure", :description => "Configure the Choria Server" do
96
105
 
97
106
  end
98
107
 
108
+ action "gen25519", :description => "Generates a new ED25519 keypair" do
109
+ display :always
110
+
111
+ input :nonce,
112
+ :prompt => "Nonce",
113
+ :description => "Single use token to be signed by the private key being generated",
114
+ :type => :string,
115
+ :validation => '.',
116
+ :maxlength => 64,
117
+ :optional => false
118
+
119
+
120
+ input :token,
121
+ :prompt => "Token",
122
+ :description => "Authentication token to pass to the server",
123
+ :type => :string,
124
+ :validation => '.',
125
+ :maxlength => 128,
126
+ :optional => false
127
+
128
+
129
+
130
+
131
+ output :directory,
132
+ :description => "The directory where server.key and server.pub is written to",
133
+ :type => "string",
134
+ :display_as => "Directory"
135
+
136
+ output :public_key,
137
+ :description => "The ED255519 public key hex encoded",
138
+ :type => "string",
139
+ :display_as => "Public Key"
140
+
141
+ output :signature,
142
+ :description => "The signature of the nonce made using the new private key, hex encoded",
143
+ :type => "string",
144
+ :display_as => "Signature"
145
+
146
+ end
147
+
99
148
  action "gencsr", :description => "Request a CSR from the Choria Server" do
100
149
  display :always
101
150
 
@@ -159,7 +208,7 @@ action "gencsr", :description => "Request a CSR from the Choria Server" do
159
208
  :type => :string,
160
209
  :validation => '.',
161
210
  :maxlength => 128,
162
- :optional => true
211
+ :optional => false
163
212
 
164
213
 
165
214
 
@@ -181,33 +230,41 @@ action "gencsr", :description => "Request a CSR from the Choria Server" do
181
230
 
182
231
  end
183
232
 
184
- action "release_update", :description => "Performs an in-place binary update and restarts Choria" do
233
+ action "jwt", :description => "Re-enable provision mode in a running Choria Server" do
185
234
  display :always
186
235
 
187
- input :repository,
188
- :prompt => "Repository URL",
189
- :description => "HTTP(S) server hosting the update repository",
236
+ input :token,
237
+ :prompt => "Token",
238
+ :description => "Authentication token to pass to the server",
190
239
  :type => :string,
191
- :validation => '^http(s*)://',
192
- :maxlength => 512,
240
+ :validation => '.',
241
+ :maxlength => 128,
193
242
  :optional => false
194
243
 
195
244
 
245
+
246
+
247
+ output :ecdh_public,
248
+ :description => "The ECDH public key for calculating shared secrets",
249
+ :type => "string",
250
+ :display_as => "ECDH Public Key"
251
+
252
+ output :jwt,
253
+ :description => "The contents of the JWT token",
254
+ :type => "string",
255
+ :display_as => "JWT Token"
256
+
257
+ end
258
+
259
+ action "reprovision", :description => "Reenable provision mode in a running Choria Server" do
260
+ display :always
261
+
196
262
  input :token,
197
263
  :prompt => "Token",
198
264
  :description => "Authentication token to pass to the server",
199
265
  :type => :string,
200
266
  :validation => '.',
201
267
  :maxlength => 128,
202
- :optional => true
203
-
204
-
205
- input :version,
206
- :prompt => "Version to update to",
207
- :description => "Package version to update to",
208
- :type => :string,
209
- :validation => '.+',
210
- :maxlength => 32,
211
268
  :optional => false
212
269
 
213
270
 
@@ -220,8 +277,15 @@ action "release_update", :description => "Performs an in-place binary update and
220
277
 
221
278
  end
222
279
 
223
- action "jwt", :description => "Re-enable provision mode in a running Choria Server" do
224
- display :always
280
+ action "restart", :description => "Restart the Choria Server" do
281
+ display :failed
282
+
283
+ input :splay,
284
+ :prompt => "Splay time",
285
+ :description => "The configuration to apply to this node",
286
+ :type => :number,
287
+ :optional => true
288
+
225
289
 
226
290
  input :token,
227
291
  :prompt => "Token",
@@ -229,33 +293,46 @@ action "jwt", :description => "Re-enable provision mode in a running Choria Serv
229
293
  :type => :string,
230
294
  :validation => '.',
231
295
  :maxlength => 128,
232
- :optional => true
233
-
296
+ :optional => false
234
297
 
235
298
 
236
299
 
237
- output :ecdh_public,
238
- :description => "The ECDH public key for calculating shared secrets",
239
- :type => "string",
240
- :display_as => "ECDH Public Key"
241
300
 
242
- output :jwt,
243
- :description => "The contents of the JWT token",
301
+ output :message,
302
+ :description => "Status message from the Provisioner",
244
303
  :type => "string",
245
- :display_as => "JWT Token"
304
+ :display_as => "Message"
246
305
 
247
306
  end
248
307
 
249
- action "reprovision", :description => "Reenable provision mode in a running Choria Server" do
308
+ action "release_update", :description => "Performs an in-place binary update and restarts Choria" do
250
309
  display :always
251
310
 
311
+ input :repository,
312
+ :prompt => "Repository URL",
313
+ :description => "HTTP(S) server hosting the update repository",
314
+ :type => :string,
315
+ :validation => '^http(s*)://',
316
+ :maxlength => 512,
317
+ :optional => false
318
+
319
+
252
320
  input :token,
253
321
  :prompt => "Token",
254
322
  :description => "Authentication token to pass to the server",
255
323
  :type => :string,
256
324
  :validation => '.',
257
325
  :maxlength => 128,
258
- :optional => true
326
+ :optional => false
327
+
328
+
329
+ input :version,
330
+ :prompt => "Version to update to",
331
+ :description => "Package version to update to",
332
+ :type => :string,
333
+ :validation => '.+',
334
+ :maxlength => 32,
335
+ :optional => false
259
336
 
260
337
 
261
338
 
@@ -267,23 +344,16 @@ action "reprovision", :description => "Reenable provision mode in a running Chor
267
344
 
268
345
  end
269
346
 
270
- action "restart", :description => "Restart the Choria Server" do
347
+ action "shutdown", :description => "Shut the Choria Server down cleanly" do
271
348
  display :failed
272
349
 
273
- input :splay,
274
- :prompt => "Splay time",
275
- :description => "The configuration to apply to this node",
276
- :type => :number,
277
- :optional => true
278
-
279
-
280
350
  input :token,
281
351
  :prompt => "Token",
282
352
  :description => "Authentication token to pass to the server",
283
353
  :type => :string,
284
354
  :validation => '.',
285
355
  :maxlength => 128,
286
- :optional => true
356
+ :optional => false
287
357
 
288
358
 
289
359
 
@@ -5,7 +5,7 @@
5
5
  "description": "Choria Provisioner",
6
6
  "author": "R.I.Pienaar <rip@devco.net>",
7
7
  "license": "Apache-2.0",
8
- "version": "0.24.0",
8
+ "version": "0.27.0",
9
9
  "url": "https://choria.io",
10
10
  "timeout": 20
11
11
  },
@@ -59,6 +59,7 @@
59
59
  "maxlength": 500
60
60
  },
61
61
  "key": {
62
+ "description": "A RSA private key",
62
63
  "prompt": "PEM text block for the private key",
63
64
  "type": "string",
64
65
  "default": null,
@@ -88,8 +89,16 @@
88
89
  "type": "hash",
89
90
  "default": {},
90
91
  "optional": true
92
+ },
93
+ "server_jwt": {
94
+ "description": "JWT file used to identify the server to the broker for ed25519 based authentication",
95
+ "prompt": "Server JWT",
96
+ "type": "string",
97
+ "default": "",
98
+ "optional": true,
99
+ "maxlength": 2048,
100
+ "validation": "."
91
101
  }
92
-
93
102
  },
94
103
  "output": {
95
104
  "message": {
@@ -102,6 +111,51 @@
102
111
  "display": "failed",
103
112
  "description": "Configure the Choria Server"
104
113
  },
114
+ {
115
+ "action": "gen25519",
116
+ "display": "always",
117
+ "description": "Generates a new ED25519 keypair",
118
+ "input": {
119
+ "token": {
120
+ "prompt": "Token",
121
+ "description": "Authentication token to pass to the server",
122
+ "type": "string",
123
+ "default": "",
124
+ "optional": false,
125
+ "validation": ".",
126
+ "maxlength": 128
127
+ },
128
+ "nonce": {
129
+ "prompt": "Nonce",
130
+ "description": "Single use token to be signed by the private key being generated",
131
+ "type": "string",
132
+ "default": "",
133
+ "optional": false,
134
+ "validation": ".",
135
+ "maxlength": 64
136
+ }
137
+ },
138
+ "output": {
139
+ "public_key": {
140
+ "description": "The ED255519 public key hex encoded",
141
+ "display_as": "Public Key",
142
+ "type": "string",
143
+ "default": ""
144
+ },
145
+ "directory": {
146
+ "description": "The directory where server.key and server.pub is written to",
147
+ "display_as": "Directory",
148
+ "type": "string",
149
+ "default": ""
150
+ },
151
+ "signature": {
152
+ "description": "The signature of the nonce made using the new private key, hex encoded",
153
+ "display_as": "Signature",
154
+ "type": "string",
155
+ "default": ""
156
+ }
157
+ }
158
+ },
105
159
  {
106
160
  "action": "gencsr",
107
161
  "input": {
@@ -110,7 +164,7 @@
110
164
  "description": "Authentication token to pass to the server",
111
165
  "type": "string",
112
166
  "default": "",
113
- "optional": true,
167
+ "optional": false,
114
168
  "validation": ".",
115
169
  "maxlength": 128
116
170
  },
@@ -193,34 +247,46 @@
193
247
  "description": "Request a CSR from the Choria Server"
194
248
  },
195
249
  {
196
- "action": "release_update",
250
+ "action": "jwt",
197
251
  "input": {
198
252
  "token": {
199
253
  "prompt": "Token",
200
254
  "description": "Authentication token to pass to the server",
201
255
  "type": "string",
202
256
  "default": "",
203
- "optional": true,
257
+ "optional": false,
204
258
  "validation": ".",
205
259
  "maxlength": 128
206
- },
207
- "repository": {
208
- "prompt": "Repository URL",
209
- "description": "HTTP(S) server hosting the update repository",
260
+ }
261
+ },
262
+ "output": {
263
+ "jwt": {
264
+ "description": "The contents of the JWT token",
265
+ "display_as": "JWT Token",
210
266
  "type": "string",
211
- "default": "",
212
- "optional": false,
213
- "validation": "^http(s*)://",
214
- "maxlength": 512
267
+ "default": ""
215
268
  },
216
- "version": {
217
- "prompt": "Version to update to",
218
- "description": "Package version to update to",
269
+ "ecdh_public": {
270
+ "description": "The ECDH public key for calculating shared secrets",
271
+ "display_as": "ECDH Public Key",
272
+ "type": "string",
273
+ "default": ""
274
+ }
275
+ },
276
+ "display": "always",
277
+ "description": "Re-enable provision mode in a running Choria Server"
278
+ },
279
+ {
280
+ "action": "reprovision",
281
+ "input": {
282
+ "token": {
283
+ "prompt": "Token",
284
+ "description": "Authentication token to pass to the server",
219
285
  "type": "string",
220
286
  "default": "",
221
287
  "optional": false,
222
- "validation": ".+",
223
- "maxlength": 32
288
+ "validation": ".",
289
+ "maxlength": 128
224
290
  }
225
291
  },
226
292
  "output": {
@@ -232,49 +298,68 @@
232
298
  }
233
299
  },
234
300
  "display": "always",
235
- "description": "Performs an in-place binary update and restarts Choria"
301
+ "description": "Reenable provision mode in a running Choria Server"
236
302
  },
237
303
  {
238
- "action": "jwt",
304
+ "action": "restart",
239
305
  "input": {
240
306
  "token": {
241
307
  "prompt": "Token",
242
308
  "description": "Authentication token to pass to the server",
243
309
  "type": "string",
244
310
  "default": "",
245
- "optional": true,
311
+ "optional": false,
246
312
  "validation": ".",
247
313
  "maxlength": 128
314
+ },
315
+ "splay": {
316
+ "prompt": "Splay time",
317
+ "description": "The configuration to apply to this node",
318
+ "type": "number",
319
+ "default": null,
320
+ "optional": true
248
321
  }
249
322
  },
250
323
  "output": {
251
- "jwt": {
252
- "description": "The contents of the JWT token",
253
- "display_as": "JWT Token",
254
- "type": "string",
255
- "default": ""
256
- },
257
- "ecdh_public": {
258
- "description": "The ECDH public key for calculating shared secrets",
259
- "display_as": "ECDH Public Key",
324
+ "message": {
325
+ "description": "Status message from the Provisioner",
326
+ "display_as": "Message",
260
327
  "type": "string",
261
- "default": ""
328
+ "default": null
262
329
  }
263
330
  },
264
- "display": "always",
265
- "description": "Re-enable provision mode in a running Choria Server"
331
+ "display": "failed",
332
+ "description": "Restart the Choria Server"
266
333
  },
267
334
  {
268
- "action": "reprovision",
335
+ "action": "release_update",
269
336
  "input": {
270
337
  "token": {
271
338
  "prompt": "Token",
272
339
  "description": "Authentication token to pass to the server",
273
340
  "type": "string",
274
341
  "default": "",
275
- "optional": true,
342
+ "optional": false,
276
343
  "validation": ".",
277
344
  "maxlength": 128
345
+ },
346
+ "repository": {
347
+ "prompt": "Repository URL",
348
+ "description": "HTTP(S) server hosting the update repository",
349
+ "type": "string",
350
+ "default": "",
351
+ "optional": false,
352
+ "validation": "^http(s*)://",
353
+ "maxlength": 512
354
+ },
355
+ "version": {
356
+ "prompt": "Version to update to",
357
+ "description": "Package version to update to",
358
+ "type": "string",
359
+ "default": "",
360
+ "optional": false,
361
+ "validation": ".+",
362
+ "maxlength": 32
278
363
  }
279
364
  },
280
365
  "output": {
@@ -286,26 +371,19 @@
286
371
  }
287
372
  },
288
373
  "display": "always",
289
- "description": "Reenable provision mode in a running Choria Server"
374
+ "description": "Performs an in-place binary update and restarts Choria"
290
375
  },
291
376
  {
292
- "action": "restart",
377
+ "action": "shutdown",
293
378
  "input": {
294
379
  "token": {
295
380
  "prompt": "Token",
296
381
  "description": "Authentication token to pass to the server",
297
382
  "type": "string",
298
383
  "default": "",
299
- "optional": true,
384
+ "optional": false,
300
385
  "validation": ".",
301
386
  "maxlength": 128
302
- },
303
- "splay": {
304
- "prompt": "Splay time",
305
- "description": "The configuration to apply to this node",
306
- "type": "number",
307
- "default": null,
308
- "optional": true
309
387
  }
310
388
  },
311
389
  "output": {
@@ -317,7 +395,7 @@
317
395
  }
318
396
  },
319
397
  "display": "failed",
320
- "description": "Restart the Choria Server"
398
+ "description": "Shut the Choria Server down cleanly"
321
399
  }
322
400
  ]
323
401
  }
@@ -2,13 +2,39 @@ metadata :name => "choria_registry",
2
2
  :description => "Choria Registry Service",
3
3
  :author => "rip@devco.net <rip@devco.net>",
4
4
  :license => "Apache-2.0",
5
- :version => "0.24.0",
5
+ :version => "0.27.0",
6
6
  :url => "https://choria.io",
7
7
  :provider => "golang",
8
8
  :service => true,
9
9
  :timeout => 2
10
10
 
11
11
 
12
+ action "names", :description => "List of all known DDLs for a specific plugin type" do
13
+ display :failed
14
+
15
+ input :plugin_type,
16
+ :prompt => "Plugin Type",
17
+ :description => "The type of plugin",
18
+ :type => :list,
19
+ :default => "agent",
20
+ :list => ["agent"],
21
+ :optional => false
22
+
23
+
24
+
25
+
26
+ output :names,
27
+ :description => "The names of all known DDL files",
28
+ :type => "array",
29
+ :display_as => "Names"
30
+
31
+ output :plugin_type,
32
+ :description => "The type of plugin",
33
+ :type => "string",
34
+ :display_as => "Type"
35
+
36
+ end
37
+
12
38
  action "ddl", :description => "Retrieve the DDL for a specific plugin" do
13
39
  display :always
14
40
 
@@ -5,13 +5,41 @@
5
5
  "author": "rip@devco.net \u003crip@devco.net\u003e",
6
6
  "timeout": 2,
7
7
  "name": "choria_registry",
8
- "version": "0.24.0",
8
+ "version": "0.27.0",
9
9
  "url": "https://choria.io",
10
10
  "description": "Choria Registry Service",
11
11
  "provider": "golang",
12
12
  "service": true
13
13
  },
14
14
  "actions": [
15
+ {
16
+ "action": "names",
17
+ "description": "List of all known DDLs for a specific plugin type",
18
+ "input": {
19
+ "plugin_type": {
20
+ "prompt": "Plugin Type",
21
+ "description": "The type of plugin",
22
+ "type": "list",
23
+ "default": "agent",
24
+ "optional": false,
25
+ "list": [
26
+ "agent"
27
+ ]
28
+ }
29
+ },
30
+ "output": {
31
+ "names": {
32
+ "description": "The names of all known DDL files",
33
+ "type": "array",
34
+ "display_as": "Names"
35
+ },
36
+ "plugin_type": {
37
+ "description": "The type of plugin",
38
+ "display_as": "Type",
39
+ "type": "string"
40
+ }
41
+ }
42
+ },
15
43
  {
16
44
  "action": "ddl",
17
45
  "input": {
@@ -2,7 +2,7 @@ metadata :name => "choria_util",
2
2
  :description => "Choria Utilities",
3
3
  :author => "R.I.Pienaar <rip@devco.net>",
4
4
  :license => "Apache-2.0",
5
- :version => "0.24.0",
5
+ :version => "0.27.0",
6
6
  :url => "https://choria.io",
7
7
  :timeout => 2
8
8
 
@@ -5,7 +5,7 @@
5
5
  "description": "Choria Utilities",
6
6
  "author": "R.I.Pienaar <rip@devco.net>",
7
7
  "license": "Apache-2.0",
8
- "version": "0.24.0",
8
+ "version": "0.27.0",
9
9
  "url": "https://choria.io",
10
10
  "timeout": 2
11
11
  },
@@ -2,7 +2,7 @@ metadata :name => "rpcutil",
2
2
  :description => "Utility actions that expose information about the state of the running Server",
3
3
  :author => "R.I.Pienaar <rip@devco.net>",
4
4
  :license => "Apache-2.0",
5
- :version => "0.24.0",
5
+ :version => "0.27.0",
6
6
  :url => "https://choria.io/",
7
7
  :timeout => 2
8
8
 
@@ -54,6 +54,11 @@ action "daemon_stats", :description => "Get statistics from the running daemon"
54
54
  :type => "string",
55
55
  :display_as => "Config File"
56
56
 
57
+ output :events,
58
+ :description => "The number of lifecycle events that was published",
59
+ :type => "integer",
60
+ :display_as => "Events"
61
+
57
62
  output :filtered,
58
63
  :description => "Count of message that didn't pass filter checks",
59
64
  :type => "integer",
@@ -262,6 +267,11 @@ action "inventory", :description => "System Inventory" do
262
267
  :type => "string",
263
268
  :display_as => "Main Collective"
264
269
 
270
+ output :upgradable,
271
+ :description => "Indicates if the server supports upgrades",
272
+ :type => "boolean",
273
+ :display_as => "Upgradable"
274
+
265
275
  output :version,
266
276
  :description => "Choria Server Version",
267
277
  :type => "string",
@@ -276,7 +286,7 @@ action "ping", :description => "Responds to requests for PING with PONG" do
276
286
 
277
287
  output :pong,
278
288
  :description => "The local Unix timestamp",
279
- :type => "string",
289
+ :type => "number",
280
290
  :display_as => "Timestamp"
281
291
 
282
292
  end
@@ -5,7 +5,7 @@
5
5
  "description": "Utility actions that expose information about the state of the running Server",
6
6
  "author": "R.I.Pienaar <rip@devco.net>",
7
7
  "license": "Apache-2.0",
8
- "version": "0.24.0",
8
+ "version": "0.27.0",
9
9
  "url": "https://choria.io/",
10
10
  "timeout": 2
11
11
  },
@@ -125,6 +125,11 @@
125
125
  "description": "Count of messages that did pass TTL checks",
126
126
  "display_as": "TTL Expired",
127
127
  "type": "integer"
128
+ },
129
+ "events": {
130
+ "description": "The number of lifecycle events that was published",
131
+ "display_as": "Events",
132
+ "type": "integer"
128
133
  }
129
134
  },
130
135
  "display": "always",
@@ -306,6 +311,12 @@
306
311
  "description": "Autonomous Agents",
307
312
  "display_as": "Machines",
308
313
  "type": "hash"
314
+ },
315
+ "upgradable": {
316
+ "description": "Indicates if the server supports upgrades",
317
+ "display_as": "Upgradable",
318
+ "type": "boolean",
319
+ "default": false
309
320
  }
310
321
  },
311
322
  "display": "always",
@@ -319,7 +330,7 @@
319
330
  "pong": {
320
331
  "description": "The local Unix timestamp",
321
332
  "display_as": "Timestamp",
322
- "type": "string"
333
+ "type": "number"
323
334
  }
324
335
  },
325
336
  "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.24.0",
5
+ :version => "0.27.0",
6
6
  :url => "https://choria.io",
7
7
  :provider => "golang",
8
8
  :timeout => 5
@@ -87,7 +87,7 @@ action "goss_validate", :description => "Performs a Goss validation using a spec
87
87
  :type => :string,
88
88
  :validation => '.+',
89
89
  :maxlength => 256,
90
- :optional => false
90
+ :optional => true
91
91
 
92
92
 
93
93
  input :vars,
@@ -99,6 +99,24 @@ action "goss_validate", :description => "Performs a Goss validation using a spec
99
99
  :optional => true
100
100
 
101
101
 
102
+ input :yaml_rules,
103
+ :prompt => "Gossfile contents",
104
+ :description => "Contents of the Gossfile to validate",
105
+ :type => :string,
106
+ :validation => '.',
107
+ :maxlength => 5120,
108
+ :optional => true
109
+
110
+
111
+ input :yaml_vars,
112
+ :prompt => "Variables YAML",
113
+ :description => "YAML data to use as variables",
114
+ :type => :string,
115
+ :validation => '.+',
116
+ :maxlength => 5120,
117
+ :optional => true
118
+
119
+
102
120
 
103
121
 
104
122
  output :failures,
@@ -116,9 +134,14 @@ action "goss_validate", :description => "Performs a Goss validation using a spec
116
134
  :type => "integer",
117
135
  :display_as => "Runtime"
118
136
 
137
+ output :skipped,
138
+ :description => "Indicates how many tests were skipped",
139
+ :type => "integer",
140
+ :display_as => "Skipped"
141
+
119
142
  output :success,
120
- :description => "Indicates if the test passed",
121
- :type => "string",
143
+ :description => "Indicates how many tests passed",
144
+ :type => "integer",
122
145
  :display_as => "Success"
123
146
 
124
147
  output :summary,
@@ -5,7 +5,7 @@
5
5
  "author": "R.I.Pienaar <rip@devco.net>",
6
6
  "timeout": 5,
7
7
  "name": "scout",
8
- "version": "0.24.0",
8
+ "version": "0.27.0",
9
9
  "url": "https://choria.io",
10
10
  "description": "Choria Scout Agent Management API",
11
11
  "provider": "golang"
@@ -112,13 +112,21 @@
112
112
  }
113
113
  ],
114
114
  "input": {
115
+ "yaml_rules": {
116
+ "prompt": "Gossfile contents",
117
+ "description": "Contents of the Gossfile to validate",
118
+ "type": "string",
119
+ "maxlength": 5120,
120
+ "validation": ".",
121
+ "optional": true
122
+ },
115
123
  "file": {
116
124
  "prompt": "Goss File",
117
125
  "description": "Path to the Goss validation specification",
118
126
  "type": "string",
119
127
  "maxlength": 256,
120
128
  "validation": ".+",
121
- "optional": false
129
+ "optional": true
122
130
  },
123
131
  "vars": {
124
132
  "prompt": "Vars File",
@@ -127,6 +135,14 @@
127
135
  "maxlength": 256,
128
136
  "validation": ".+",
129
137
  "optional": true
138
+ },
139
+ "yaml_vars": {
140
+ "prompt": "Variables YAML",
141
+ "description": "YAML data to use as variables",
142
+ "type": "string",
143
+ "maxlength": 5120,
144
+ "validation": ".+",
145
+ "optional": true
130
146
  }
131
147
  },
132
148
  "output": {
@@ -146,9 +162,14 @@
146
162
  "type": "integer"
147
163
  },
148
164
  "success": {
149
- "description": "Indicates if the test passed",
165
+ "description": "Indicates how many tests passed",
150
166
  "display_as": "Success",
151
- "type": "string"
167
+ "type": "integer"
168
+ },
169
+ "skipped": {
170
+ "description": "Indicates how many tests were skipped",
171
+ "display_as": "Skipped",
172
+ "type": "integer"
152
173
  },
153
174
  "summary": {
154
175
  "description": "A human friendly test result",
@@ -213,7 +213,9 @@ Examples:
213
213
  Util.colorize(:bold, bolt_tasks.ddl.meta[:timeout])
214
214
  ])
215
215
 
216
- request_and_report(:run_and_wait, request)
216
+ success = request_and_report(:run_and_wait, request)
217
+
218
+ exit(success ? 0 : 1)
217
219
  end
218
220
  ensure
219
221
  reset_client!
@@ -273,11 +275,15 @@ Examples:
273
275
  else
274
276
  say("Requesting task status for request %s, showing failures only pass --verbose for all output" % Util.colorize(:bold, taskid)) unless options[:verbose]
275
277
 
276
- request_and_report(:task_status, {:task_id => taskid}, taskid)
278
+ success = request_and_report(:task_status, {:task_id => taskid}, taskid)
279
+
280
+ exit(success ? 0 : 1)
277
281
  end
278
282
  end
279
283
 
280
284
  def request_and_report(action, arguments, taskid=nil) # rubocop:disable Metrics/MethodLength
285
+ res = true
286
+
281
287
  task_not_known_nodes = 0
282
288
  wrapper_failure = 0
283
289
  completed_nodes = 0
@@ -302,16 +308,24 @@ Examples:
302
308
  status = reply[:data]
303
309
 
304
310
  if reply[:statuscode] == 3
311
+ res = false
305
312
  fail_nodes += 1
306
313
  task_not_known_nodes += 1
307
314
  elsif [-1, 0].include?(status[:exitcode])
308
315
  status[:completed] ? completed_nodes += 1 : running_nodes += 1
309
316
  runtime += status[:runtime]
310
- reply[:statuscode] == 0 ? success_nodes += 1 : fail_nodes += 1
317
+ if reply[:statuscode] == 0
318
+ success_nodes += 1
319
+ else
320
+ res = false
321
+ fail_nodes += 1
322
+ end
311
323
  elsif reply[:statuscode] == 5
324
+ res = false
312
325
  wrapper_failure += 1
313
326
  fail_nodes += 1
314
327
  else
328
+ res = false
315
329
  fail_nodes += 1
316
330
  end
317
331
 
@@ -351,6 +365,8 @@ Examples:
351
365
  runtime,
352
366
  bolt_tasks.stats
353
367
  )
368
+
369
+ res
354
370
  ensure
355
371
  reset_client!
356
372
  end
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.26.0
4
+ version: 2.26.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: 2022-02-23 00:00:00.000000000 Z
11
+ date: 2023-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: systemu
@@ -247,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  version: '0'
248
248
  requirements: []
249
249
  rubyforge_project:
250
- rubygems_version: 2.7.6.2
250
+ rubygems_version: 2.7.6.3
251
251
  signing_key:
252
252
  specification_version: 4
253
253
  summary: Support libraries the Choria Server