choria-mcorpc-support 2.26.0 → 2.26.2

Sign up to get free protection for your applications and to get access to all the features.
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