choria-mcorpc-support 2.26.1 → 2.26.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mcollective/agent/aaa_signer.ddl +14 -1
- data/lib/mcollective/agent/aaa_signer.json +9 -1
- data/lib/mcollective/agent/choria_provision.ddl +118 -40
- data/lib/mcollective/agent/choria_provision.json +124 -46
- data/lib/mcollective/agent/choria_registry.ddl +31 -1
- data/lib/mcollective/agent/choria_registry.json +29 -1
- data/lib/mcollective/agent/choria_util.ddl +5 -1
- data/lib/mcollective/agent/choria_util.json +1 -1
- data/lib/mcollective/agent/rpcutil.ddl +16 -2
- data/lib/mcollective/agent/rpcutil.json +13 -2
- data/lib/mcollective/agent/scout.ddl +31 -4
- data/lib/mcollective/agent/scout.json +25 -4
- data/lib/mcollective/pluginpackager/forge_packager.rb +1 -1
- data/lib/mcollective/shell.rb +0 -1
- data/lib/mcollective/util/choria.rb +3 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3afcdee832e60d663bb3b6191631a315dfa017297620227c73fec431acaec163
|
4
|
+
data.tar.gz: a643991b5feb3f8f19ab71c3ff66a4cef89dd1f0c1208882ef12fcddeec037d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d85ba1e2515ef6282ac3c2d62c0612987d187f1539a30533c6c5da5389c60fd61aec7be8741934ecb3fcf717f681817e1cf606c9e8d38ec7a8699ea6a2a81dbc
|
7
|
+
data.tar.gz: cba939b5c47ead81430299df123f4e779cda4c1116e36ebef2e25bb420e21c761818a6045f8d97447b5b3fc82201edbf45ef72a2ef471b2b6f6344084f751421
|
@@ -1,8 +1,12 @@
|
|
1
|
+
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
2
|
+
--
|
3
|
+
-- SPDX-License-Identifier: Apache-2.0
|
4
|
+
|
1
5
|
metadata :name => "aaa_signer",
|
2
6
|
:description => "Request Signer for Choria AAA Service",
|
3
7
|
:author => "R.I.Pienaar <rip@devco.net>",
|
4
8
|
:license => "Apache-2.0",
|
5
|
-
:version => "0.
|
9
|
+
:version => "0.28.0",
|
6
10
|
:url => "https://github.com/choria-io/aaasvc",
|
7
11
|
:provider => "golang",
|
8
12
|
:service => true,
|
@@ -21,6 +25,15 @@ action "sign", :description => "Signs a RPC Request on behalf of a user" do
|
|
21
25
|
:optional => false
|
22
26
|
|
23
27
|
|
28
|
+
input :signature,
|
29
|
+
:prompt => "Request Signature",
|
30
|
+
:description => "A signature produced using the ed25519 seed of the request, hex encoded",
|
31
|
+
:type => :string,
|
32
|
+
:validation => '.',
|
33
|
+
:maxlength => 1024,
|
34
|
+
:optional => false
|
35
|
+
|
36
|
+
|
24
37
|
input :token,
|
25
38
|
:prompt => "JWT Token",
|
26
39
|
: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.
|
8
|
+
"version": "0.28.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": {
|
@@ -1,8 +1,16 @@
|
|
1
|
+
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
2
|
+
--
|
3
|
+
-- SPDX-License-Identifier: Apache-2.0
|
4
|
+
|
5
|
+
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
6
|
+
--
|
7
|
+
-- SPDX-License-Identifier: Apache-2.0
|
8
|
+
|
1
9
|
metadata :name => "choria_provision",
|
2
10
|
:description => "Choria Provisioner",
|
3
11
|
:author => "R.I.Pienaar <rip@devco.net>",
|
4
12
|
:license => "Apache-2.0",
|
5
|
-
:version => "0.
|
13
|
+
:version => "0.28.0",
|
6
14
|
:url => "https://choria.io",
|
7
15
|
:timeout => 20
|
8
16
|
|
@@ -55,7 +63,7 @@ action "configure", :description => "Configure the Choria Server" do
|
|
55
63
|
|
56
64
|
input :key,
|
57
65
|
:prompt => "PEM text block for the private key",
|
58
|
-
:description => "",
|
66
|
+
:description => "A RSA private key",
|
59
67
|
:type => :string,
|
60
68
|
:validation => '-----BEGIN RSA PRIVATE KEY-----',
|
61
69
|
:maxlength => 10240,
|
@@ -69,6 +77,15 @@ action "configure", :description => "Configure the Choria Server" do
|
|
69
77
|
:optional => true
|
70
78
|
|
71
79
|
|
80
|
+
input :server_jwt,
|
81
|
+
:prompt => "Server JWT",
|
82
|
+
:description => "JWT file used to identify the server to the broker for ed25519 based authentication",
|
83
|
+
:type => :string,
|
84
|
+
:validation => '.',
|
85
|
+
:maxlength => 2048,
|
86
|
+
:optional => true
|
87
|
+
|
88
|
+
|
72
89
|
input :ssldir,
|
73
90
|
:prompt => "SSL Dir",
|
74
91
|
:description => "Directory for storing the certificate in",
|
@@ -96,6 +113,46 @@ action "configure", :description => "Configure the Choria Server" do
|
|
96
113
|
|
97
114
|
end
|
98
115
|
|
116
|
+
action "gen25519", :description => "Generates a new ED25519 keypair" do
|
117
|
+
display :always
|
118
|
+
|
119
|
+
input :nonce,
|
120
|
+
:prompt => "Nonce",
|
121
|
+
:description => "Single use token to be signed by the private key being generated",
|
122
|
+
:type => :string,
|
123
|
+
:validation => '.',
|
124
|
+
:maxlength => 64,
|
125
|
+
:optional => false
|
126
|
+
|
127
|
+
|
128
|
+
input :token,
|
129
|
+
:prompt => "Token",
|
130
|
+
:description => "Authentication token to pass to the server",
|
131
|
+
:type => :string,
|
132
|
+
:validation => '.',
|
133
|
+
:maxlength => 128,
|
134
|
+
:optional => false
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
output :directory,
|
140
|
+
:description => "The directory where server.key and server.pub is written to",
|
141
|
+
:type => "string",
|
142
|
+
:display_as => "Directory"
|
143
|
+
|
144
|
+
output :public_key,
|
145
|
+
:description => "The ED255519 public key hex encoded",
|
146
|
+
:type => "string",
|
147
|
+
:display_as => "Public Key"
|
148
|
+
|
149
|
+
output :signature,
|
150
|
+
:description => "The signature of the nonce made using the new private key, hex encoded",
|
151
|
+
:type => "string",
|
152
|
+
:display_as => "Signature"
|
153
|
+
|
154
|
+
end
|
155
|
+
|
99
156
|
action "gencsr", :description => "Request a CSR from the Choria Server" do
|
100
157
|
display :always
|
101
158
|
|
@@ -159,7 +216,7 @@ action "gencsr", :description => "Request a CSR from the Choria Server" do
|
|
159
216
|
:type => :string,
|
160
217
|
:validation => '.',
|
161
218
|
:maxlength => 128,
|
162
|
-
:optional =>
|
219
|
+
:optional => false
|
163
220
|
|
164
221
|
|
165
222
|
|
@@ -181,33 +238,41 @@ action "gencsr", :description => "Request a CSR from the Choria Server" do
|
|
181
238
|
|
182
239
|
end
|
183
240
|
|
184
|
-
action "
|
241
|
+
action "jwt", :description => "Re-enable provision mode in a running Choria Server" do
|
185
242
|
display :always
|
186
243
|
|
187
|
-
input :
|
188
|
-
:prompt => "
|
189
|
-
:description => "
|
244
|
+
input :token,
|
245
|
+
:prompt => "Token",
|
246
|
+
:description => "Authentication token to pass to the server",
|
190
247
|
:type => :string,
|
191
|
-
:validation => '
|
192
|
-
:maxlength =>
|
248
|
+
:validation => '.',
|
249
|
+
:maxlength => 128,
|
193
250
|
:optional => false
|
194
251
|
|
195
252
|
|
253
|
+
|
254
|
+
|
255
|
+
output :ecdh_public,
|
256
|
+
:description => "The ECDH public key for calculating shared secrets",
|
257
|
+
:type => "string",
|
258
|
+
:display_as => "ECDH Public Key"
|
259
|
+
|
260
|
+
output :jwt,
|
261
|
+
:description => "The contents of the JWT token",
|
262
|
+
:type => "string",
|
263
|
+
:display_as => "JWT Token"
|
264
|
+
|
265
|
+
end
|
266
|
+
|
267
|
+
action "reprovision", :description => "Reenable provision mode in a running Choria Server" do
|
268
|
+
display :always
|
269
|
+
|
196
270
|
input :token,
|
197
271
|
:prompt => "Token",
|
198
272
|
:description => "Authentication token to pass to the server",
|
199
273
|
:type => :string,
|
200
274
|
:validation => '.',
|
201
275
|
: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
276
|
:optional => false
|
212
277
|
|
213
278
|
|
@@ -220,8 +285,15 @@ action "release_update", :description => "Performs an in-place binary update and
|
|
220
285
|
|
221
286
|
end
|
222
287
|
|
223
|
-
action "
|
224
|
-
display :
|
288
|
+
action "restart", :description => "Restart the Choria Server" do
|
289
|
+
display :failed
|
290
|
+
|
291
|
+
input :splay,
|
292
|
+
:prompt => "Splay time",
|
293
|
+
:description => "The configuration to apply to this node",
|
294
|
+
:type => :number,
|
295
|
+
:optional => true
|
296
|
+
|
225
297
|
|
226
298
|
input :token,
|
227
299
|
:prompt => "Token",
|
@@ -229,33 +301,46 @@ action "jwt", :description => "Re-enable provision mode in a running Choria Serv
|
|
229
301
|
:type => :string,
|
230
302
|
:validation => '.',
|
231
303
|
:maxlength => 128,
|
232
|
-
:optional =>
|
233
|
-
|
304
|
+
:optional => false
|
234
305
|
|
235
306
|
|
236
307
|
|
237
|
-
output :ecdh_public,
|
238
|
-
:description => "The ECDH public key for calculating shared secrets",
|
239
|
-
:type => "string",
|
240
|
-
:display_as => "ECDH Public Key"
|
241
308
|
|
242
|
-
output :
|
243
|
-
:description => "
|
309
|
+
output :message,
|
310
|
+
:description => "Status message from the Provisioner",
|
244
311
|
:type => "string",
|
245
|
-
:display_as => "
|
312
|
+
:display_as => "Message"
|
246
313
|
|
247
314
|
end
|
248
315
|
|
249
|
-
action "
|
316
|
+
action "release_update", :description => "Performs an in-place binary update and restarts Choria" do
|
250
317
|
display :always
|
251
318
|
|
319
|
+
input :repository,
|
320
|
+
:prompt => "Repository URL",
|
321
|
+
:description => "HTTP(S) server hosting the update repository",
|
322
|
+
:type => :string,
|
323
|
+
:validation => '^http(s*)://',
|
324
|
+
:maxlength => 512,
|
325
|
+
:optional => false
|
326
|
+
|
327
|
+
|
252
328
|
input :token,
|
253
329
|
:prompt => "Token",
|
254
330
|
:description => "Authentication token to pass to the server",
|
255
331
|
:type => :string,
|
256
332
|
:validation => '.',
|
257
333
|
:maxlength => 128,
|
258
|
-
:optional =>
|
334
|
+
:optional => false
|
335
|
+
|
336
|
+
|
337
|
+
input :version,
|
338
|
+
:prompt => "Version to update to",
|
339
|
+
:description => "Package version to update to",
|
340
|
+
:type => :string,
|
341
|
+
:validation => '.+',
|
342
|
+
:maxlength => 32,
|
343
|
+
:optional => false
|
259
344
|
|
260
345
|
|
261
346
|
|
@@ -267,23 +352,16 @@ action "reprovision", :description => "Reenable provision mode in a running Chor
|
|
267
352
|
|
268
353
|
end
|
269
354
|
|
270
|
-
action "
|
355
|
+
action "shutdown", :description => "Shut the Choria Server down cleanly" do
|
271
356
|
display :failed
|
272
357
|
|
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
358
|
input :token,
|
281
359
|
:prompt => "Token",
|
282
360
|
:description => "Authentication token to pass to the server",
|
283
361
|
:type => :string,
|
284
362
|
:validation => '.',
|
285
363
|
:maxlength => 128,
|
286
|
-
:optional =>
|
364
|
+
:optional => false
|
287
365
|
|
288
366
|
|
289
367
|
|
@@ -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.
|
8
|
+
"version": "0.28.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":
|
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": "
|
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":
|
257
|
+
"optional": false,
|
204
258
|
"validation": ".",
|
205
259
|
"maxlength": 128
|
206
|
-
}
|
207
|
-
|
208
|
-
|
209
|
-
|
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
|
-
"
|
217
|
-
"
|
218
|
-
"
|
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":
|
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": "
|
301
|
+
"description": "Reenable provision mode in a running Choria Server"
|
236
302
|
},
|
237
303
|
{
|
238
|
-
"action": "
|
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":
|
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
|
-
"
|
252
|
-
"description": "
|
253
|
-
"display_as": "
|
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": "
|
265
|
-
"description": "
|
331
|
+
"display": "failed",
|
332
|
+
"description": "Restart the Choria Server"
|
266
333
|
},
|
267
334
|
{
|
268
|
-
"action": "
|
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":
|
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": "
|
374
|
+
"description": "Performs an in-place binary update and restarts Choria"
|
290
375
|
},
|
291
376
|
{
|
292
|
-
"action": "
|
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":
|
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": "
|
398
|
+
"description": "Shut the Choria Server down cleanly"
|
321
399
|
}
|
322
400
|
]
|
323
401
|
}
|
@@ -1,14 +1,44 @@
|
|
1
|
+
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
2
|
+
--
|
3
|
+
-- SPDX-License-Identifier: Apache-2.0
|
4
|
+
|
1
5
|
metadata :name => "choria_registry",
|
2
6
|
:description => "Choria Registry Service",
|
3
7
|
:author => "rip@devco.net <rip@devco.net>",
|
4
8
|
:license => "Apache-2.0",
|
5
|
-
:version => "0.
|
9
|
+
:version => "0.28.0",
|
6
10
|
:url => "https://choria.io",
|
7
11
|
:provider => "golang",
|
8
12
|
:service => true,
|
9
13
|
:timeout => 2
|
10
14
|
|
11
15
|
|
16
|
+
action "names", :description => "List of all known DDLs for a specific plugin type" do
|
17
|
+
display :failed
|
18
|
+
|
19
|
+
input :plugin_type,
|
20
|
+
:prompt => "Plugin Type",
|
21
|
+
:description => "The type of plugin",
|
22
|
+
:type => :list,
|
23
|
+
:default => "agent",
|
24
|
+
:list => ["agent"],
|
25
|
+
:optional => false
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
output :names,
|
31
|
+
:description => "The names of all known DDL files",
|
32
|
+
:type => "array",
|
33
|
+
:display_as => "Names"
|
34
|
+
|
35
|
+
output :plugin_type,
|
36
|
+
:description => "The type of plugin",
|
37
|
+
:type => "string",
|
38
|
+
:display_as => "Type"
|
39
|
+
|
40
|
+
end
|
41
|
+
|
12
42
|
action "ddl", :description => "Retrieve the DDL for a specific plugin" do
|
13
43
|
display :always
|
14
44
|
|
@@ -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.
|
8
|
+
"version": "0.28.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": {
|
@@ -1,8 +1,12 @@
|
|
1
|
+
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
2
|
+
--
|
3
|
+
-- SPDX-License-Identifier: Apache-2.0
|
4
|
+
|
1
5
|
metadata :name => "choria_util",
|
2
6
|
:description => "Choria Utilities",
|
3
7
|
:author => "R.I.Pienaar <rip@devco.net>",
|
4
8
|
:license => "Apache-2.0",
|
5
|
-
:version => "0.
|
9
|
+
:version => "0.28.0",
|
6
10
|
:url => "https://choria.io",
|
7
11
|
:timeout => 2
|
8
12
|
|
@@ -1,8 +1,12 @@
|
|
1
|
+
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
2
|
+
--
|
3
|
+
-- SPDX-License-Identifier: Apache-2.0
|
4
|
+
|
1
5
|
metadata :name => "rpcutil",
|
2
6
|
:description => "Utility actions that expose information about the state of the running Server",
|
3
7
|
:author => "R.I.Pienaar <rip@devco.net>",
|
4
8
|
:license => "Apache-2.0",
|
5
|
-
:version => "0.
|
9
|
+
:version => "0.28.0",
|
6
10
|
:url => "https://choria.io/",
|
7
11
|
:timeout => 2
|
8
12
|
|
@@ -54,6 +58,11 @@ action "daemon_stats", :description => "Get statistics from the running daemon"
|
|
54
58
|
:type => "string",
|
55
59
|
:display_as => "Config File"
|
56
60
|
|
61
|
+
output :events,
|
62
|
+
:description => "The number of lifecycle events that was published",
|
63
|
+
:type => "integer",
|
64
|
+
:display_as => "Events"
|
65
|
+
|
57
66
|
output :filtered,
|
58
67
|
:description => "Count of message that didn't pass filter checks",
|
59
68
|
:type => "integer",
|
@@ -262,6 +271,11 @@ action "inventory", :description => "System Inventory" do
|
|
262
271
|
:type => "string",
|
263
272
|
:display_as => "Main Collective"
|
264
273
|
|
274
|
+
output :upgradable,
|
275
|
+
:description => "Indicates if the server supports upgrades",
|
276
|
+
:type => "boolean",
|
277
|
+
:display_as => "Upgradable"
|
278
|
+
|
265
279
|
output :version,
|
266
280
|
:description => "Choria Server Version",
|
267
281
|
:type => "string",
|
@@ -276,7 +290,7 @@ action "ping", :description => "Responds to requests for PING with PONG" do
|
|
276
290
|
|
277
291
|
output :pong,
|
278
292
|
:description => "The local Unix timestamp",
|
279
|
-
:type => "
|
293
|
+
:type => "number",
|
280
294
|
:display_as => "Timestamp"
|
281
295
|
|
282
296
|
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.
|
8
|
+
"version": "0.28.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": "
|
333
|
+
"type": "number"
|
323
334
|
}
|
324
335
|
},
|
325
336
|
"display": "always",
|
@@ -1,8 +1,12 @@
|
|
1
|
+
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
2
|
+
--
|
3
|
+
-- SPDX-License-Identifier: Apache-2.0
|
4
|
+
|
1
5
|
metadata :name => "scout",
|
2
6
|
:description => "Choria Scout Agent Management API",
|
3
7
|
:author => "R.I.Pienaar <rip@devco.net>",
|
4
8
|
:license => "Apache-2.0",
|
5
|
-
:version => "0.
|
9
|
+
:version => "0.28.0",
|
6
10
|
:url => "https://choria.io",
|
7
11
|
:provider => "golang",
|
8
12
|
:timeout => 5
|
@@ -87,7 +91,7 @@ action "goss_validate", :description => "Performs a Goss validation using a spec
|
|
87
91
|
:type => :string,
|
88
92
|
:validation => '.+',
|
89
93
|
:maxlength => 256,
|
90
|
-
:optional =>
|
94
|
+
:optional => true
|
91
95
|
|
92
96
|
|
93
97
|
input :vars,
|
@@ -99,6 +103,24 @@ action "goss_validate", :description => "Performs a Goss validation using a spec
|
|
99
103
|
:optional => true
|
100
104
|
|
101
105
|
|
106
|
+
input :yaml_rules,
|
107
|
+
:prompt => "Gossfile contents",
|
108
|
+
:description => "Contents of the Gossfile to validate",
|
109
|
+
:type => :string,
|
110
|
+
:validation => '.',
|
111
|
+
:maxlength => 5120,
|
112
|
+
:optional => true
|
113
|
+
|
114
|
+
|
115
|
+
input :yaml_vars,
|
116
|
+
:prompt => "Variables YAML",
|
117
|
+
:description => "YAML data to use as variables",
|
118
|
+
:type => :string,
|
119
|
+
:validation => '.+',
|
120
|
+
:maxlength => 5120,
|
121
|
+
:optional => true
|
122
|
+
|
123
|
+
|
102
124
|
|
103
125
|
|
104
126
|
output :failures,
|
@@ -116,9 +138,14 @@ action "goss_validate", :description => "Performs a Goss validation using a spec
|
|
116
138
|
:type => "integer",
|
117
139
|
:display_as => "Runtime"
|
118
140
|
|
141
|
+
output :skipped,
|
142
|
+
:description => "Indicates how many tests were skipped",
|
143
|
+
:type => "integer",
|
144
|
+
:display_as => "Skipped"
|
145
|
+
|
119
146
|
output :success,
|
120
|
-
:description => "Indicates
|
121
|
-
:type => "
|
147
|
+
:description => "Indicates how many tests passed",
|
148
|
+
:type => "integer",
|
122
149
|
:display_as => "Success"
|
123
150
|
|
124
151
|
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.
|
8
|
+
"version": "0.28.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":
|
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
|
165
|
+
"description": "Indicates how many tests passed",
|
150
166
|
"display_as": "Success",
|
151
|
-
"type": "
|
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",
|
@@ -191,7 +191,7 @@ module MCollective
|
|
191
191
|
end
|
192
192
|
|
193
193
|
def render_template(infile, outfile)
|
194
|
-
erb = ERB.new(File.read(infile), 0, "-")
|
194
|
+
erb = ERB.new(File.read(infile), :safe_level => 0, :trim_mode => "-")
|
195
195
|
File.open(outfile, "w") do |f|
|
196
196
|
f.puts erb.result(binding)
|
197
197
|
end
|
data/lib/mcollective/shell.rb
CHANGED
@@ -127,12 +127,13 @@ module MCollective
|
|
127
127
|
|
128
128
|
# Determines the domain to do SRV lookups in
|
129
129
|
#
|
130
|
-
# This is settable using
|
130
|
+
# This is settable using the environment variable
|
131
|
+
# CHORIA_SRV_DOMAIN or choria.srv_domain and defaults
|
131
132
|
# to the domain as reported by facter
|
132
133
|
#
|
133
134
|
# @return [String]
|
134
135
|
def srv_domain
|
135
|
-
get_option("choria.srv_domain", nil) || facter_domain
|
136
|
+
env_fetch("CHORIA_SRV_DOMAIN", nil) || get_option("choria.srv_domain", nil) || facter_domain
|
136
137
|
end
|
137
138
|
|
138
139
|
# Determines the SRV records to look up
|
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.
|
4
|
+
version: 2.26.3
|
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:
|
11
|
+
date: 2024-02-03 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.
|
250
|
+
rubygems_version: 2.7.6.2
|
251
251
|
signing_key:
|
252
252
|
specification_version: 4
|
253
253
|
summary: Support libraries the Choria Server
|