choria-mcorpc-support 2.24.4 → 2.25.3
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 +4 -4
- data/lib/mcollective/agent/aaa_signer.ddl +41 -0
- data/lib/mcollective/agent/aaa_signer.json +46 -0
- data/lib/mcollective/agent/choria_provision.ddl +283 -200
- data/lib/mcollective/agent/choria_provision.json +54 -3
- data/lib/mcollective/agent/choria_registry.ddl +65 -0
- data/lib/mcollective/agent/choria_registry.json +74 -0
- data/lib/mcollective/agent/choria_util.ddl +1 -1
- data/lib/mcollective/agent/choria_util.json +1 -1
- data/lib/mcollective/agent/rpcutil.ddl +1 -1
- data/lib/mcollective/agent/rpcutil.json +1 -1
- data/lib/mcollective/agent/scout.ddl +4 -4
- data/lib/mcollective/agent/scout.json +1 -1
- data/lib/mcollective/discovery/delegate.rb +6 -1
- data/lib/mcollective/rpc/client.rb +1 -0
- data/lib/mcollective/util/tasks_support.rb +12 -3
- data/lib/mcollective/validator/typecheck_validator.rb +1 -1
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ea0c40e0fddf65e2507b695f3bfe70a21252ebc43747f03e549d2741c4eda04
|
4
|
+
data.tar.gz: 0305377ba6a38d5a213cc46ac7e5b09dc82829d6e32cab8e77f7f7da75225bb4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 974f141cd420b640f96fa3aeac2c6fc4148ddb31dfd226f2f9c02c9f0ba3aa97f2094cac9dd1e87bf40eb169c9d3d4114e570f3485eac0a58f2faa54eb84b060
|
7
|
+
data.tar.gz: 073e8a67eaa6b53d8650128c550327b6b34b7003f74b7958d959515ab7ce6511f8870d5463d72b1474ffc80ece4ccb449d23b0f34da7ada182ac01ba5cb4d2fc
|
@@ -0,0 +1,41 @@
|
|
1
|
+
metadata :name => "aaa_signer",
|
2
|
+
:description => "Request Signer for Choria AAA Service",
|
3
|
+
:author => "R.I.Pienaar <rip@devco.net>",
|
4
|
+
:license => "Apache-2.0",
|
5
|
+
:version => "0.24.0",
|
6
|
+
:url => "https://github.com/choria-io/aaasvc",
|
7
|
+
:provider => "golang",
|
8
|
+
:service => true,
|
9
|
+
:timeout => 10
|
10
|
+
|
11
|
+
|
12
|
+
action "sign", :description => "Signs a RPC Request on behalf of a user" do
|
13
|
+
display :always
|
14
|
+
|
15
|
+
input :request,
|
16
|
+
:prompt => "RPC Request",
|
17
|
+
:description => "The request to sign",
|
18
|
+
:type => :string,
|
19
|
+
:validation => :shellsafe,
|
20
|
+
:maxlength => 100240,
|
21
|
+
:optional => false
|
22
|
+
|
23
|
+
|
24
|
+
input :token,
|
25
|
+
:prompt => "JWT Token",
|
26
|
+
:description => "The JWT token authenticating the user",
|
27
|
+
:type => :string,
|
28
|
+
:validation => '.',
|
29
|
+
:maxlength => 10024,
|
30
|
+
:optional => false
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
output :secure_request,
|
36
|
+
:description => "The signed Secure Request",
|
37
|
+
:type => "string",
|
38
|
+
:display_as => "Secure Request"
|
39
|
+
|
40
|
+
end
|
41
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://choria.io/schemas/mcorpc/ddl/v1/agent.json",
|
3
|
+
"metadata": {
|
4
|
+
"license": "Apache-2.0",
|
5
|
+
"author": "R.I.Pienaar \u003crip@devco.net\u003e",
|
6
|
+
"timeout": 10,
|
7
|
+
"name": "aaa_signer",
|
8
|
+
"version": "0.24.0",
|
9
|
+
"url": "https://github.com/choria-io/aaasvc",
|
10
|
+
"description": "Request Signer for Choria AAA Service",
|
11
|
+
"provider": "golang",
|
12
|
+
"service": true
|
13
|
+
},
|
14
|
+
"actions": [
|
15
|
+
{
|
16
|
+
"action": "sign",
|
17
|
+
"input": {
|
18
|
+
"request": {
|
19
|
+
"prompt": "RPC Request",
|
20
|
+
"description": "The request to sign",
|
21
|
+
"type": "string",
|
22
|
+
"optional": false,
|
23
|
+
"validation": "shellsafe",
|
24
|
+
"maxlength": 100240
|
25
|
+
},
|
26
|
+
"token": {
|
27
|
+
"prompt": "JWT Token",
|
28
|
+
"description": "The JWT token authenticating the user",
|
29
|
+
"type": "string",
|
30
|
+
"optional": false,
|
31
|
+
"validation": ".",
|
32
|
+
"maxlength": 10024
|
33
|
+
}
|
34
|
+
},
|
35
|
+
"output": {
|
36
|
+
"secure_request": {
|
37
|
+
"description": "The signed Secure Request",
|
38
|
+
"display_as": "Secure Request",
|
39
|
+
"type": "string"
|
40
|
+
}
|
41
|
+
},
|
42
|
+
"display": "always",
|
43
|
+
"description": "Signs a RPC Request on behalf of a user"
|
44
|
+
}
|
45
|
+
]
|
46
|
+
}
|
@@ -1,214 +1,297 @@
|
|
1
|
-
metadata :name
|
1
|
+
metadata :name => "choria_provision",
|
2
2
|
:description => "Choria Provisioner",
|
3
|
-
:author
|
4
|
-
:license
|
5
|
-
:version
|
6
|
-
:url
|
7
|
-
:timeout
|
3
|
+
:author => "R.I.Pienaar <rip@devco.net>",
|
4
|
+
:license => "Apache-2.0",
|
5
|
+
:version => "0.24.0",
|
6
|
+
:url => "https://choria.io",
|
7
|
+
:timeout => 20
|
8
|
+
|
9
|
+
|
10
|
+
action "configure", :description => "Configure the Choria Server" do
|
11
|
+
display :failed
|
12
|
+
|
13
|
+
input :action_policies,
|
14
|
+
:prompt => "Action Policy Documents",
|
15
|
+
:description => "Map of Action Policy documents indexed by file name",
|
16
|
+
:type => :hash,
|
17
|
+
:optional => true
|
18
|
+
|
19
|
+
|
20
|
+
input :ca,
|
21
|
+
:prompt => "CA Bundle",
|
22
|
+
:description => "PEM text block for the CA",
|
23
|
+
:type => :string,
|
24
|
+
:validation => '^-----BEGIN CERTIFICATE-----',
|
25
|
+
:maxlength => 20480,
|
26
|
+
:optional => true
|
27
|
+
|
28
|
+
|
29
|
+
input :certificate,
|
30
|
+
:prompt => "Certificate",
|
31
|
+
:description => "PEM text block for the certificate",
|
32
|
+
:type => :string,
|
33
|
+
:validation => '^-----BEGIN CERTIFICATE-----',
|
34
|
+
:maxlength => 10240,
|
35
|
+
:optional => true
|
36
|
+
|
37
|
+
|
38
|
+
input :config,
|
39
|
+
:prompt => "Configuration",
|
40
|
+
:description => "The configuration to apply to this node",
|
41
|
+
:type => :string,
|
42
|
+
:validation => '^{.+}$',
|
43
|
+
:maxlength => 2048,
|
44
|
+
:optional => false
|
45
|
+
|
46
|
+
|
47
|
+
input :ecdh_public,
|
48
|
+
:prompt => "ECDH Public Key",
|
49
|
+
:description => "Required when sending a private key",
|
50
|
+
:type => :string,
|
51
|
+
:validation => '.',
|
52
|
+
:maxlength => 64,
|
53
|
+
:optional => true
|
54
|
+
|
55
|
+
|
56
|
+
input :key,
|
57
|
+
:prompt => "PEM text block for the private key",
|
58
|
+
:description => "",
|
59
|
+
:type => :string,
|
60
|
+
:validation => '-----BEGIN RSA PRIVATE KEY-----',
|
61
|
+
:maxlength => 10240,
|
62
|
+
:optional => true
|
63
|
+
|
64
|
+
|
65
|
+
input :opa_policies,
|
66
|
+
:prompt => "Open Policy Agent Policy Documents",
|
67
|
+
:description => "Map of Open Policy Agent Policy documents indexed by file name",
|
68
|
+
:type => :hash,
|
69
|
+
:optional => true
|
70
|
+
|
71
|
+
|
72
|
+
input :ssldir,
|
73
|
+
:prompt => "SSL Dir",
|
74
|
+
:description => "Directory for storing the certificate in",
|
75
|
+
:type => :string,
|
76
|
+
:validation => '.',
|
77
|
+
:maxlength => 500,
|
78
|
+
:optional => true
|
79
|
+
|
80
|
+
|
81
|
+
input :token,
|
82
|
+
:prompt => "Token",
|
83
|
+
:description => "Authentication token to pass to the server",
|
84
|
+
:type => :string,
|
85
|
+
:validation => '.',
|
86
|
+
:maxlength => 128,
|
87
|
+
:optional => true
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
output :message,
|
93
|
+
:description => "Status message from the Provisioner",
|
94
|
+
:type => "string",
|
95
|
+
:display_as => "Message"
|
96
|
+
|
97
|
+
end
|
8
98
|
|
9
99
|
action "gencsr", :description => "Request a CSR from the Choria Server" do
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
100
|
+
display :always
|
101
|
+
|
102
|
+
input :C,
|
103
|
+
:prompt => "Country",
|
104
|
+
:description => "Country Code",
|
105
|
+
:type => :string,
|
106
|
+
:validation => '^[A-Z]{2}$',
|
107
|
+
:maxlength => 2,
|
108
|
+
:optional => true
|
109
|
+
|
110
|
+
|
111
|
+
input :L,
|
112
|
+
:prompt => "Locality",
|
113
|
+
:description => "Locality or municipality (such as city or town name)",
|
114
|
+
:type => :string,
|
115
|
+
:validation => '^[\w\s-]+$',
|
116
|
+
:maxlength => 50,
|
117
|
+
:optional => true
|
118
|
+
|
119
|
+
|
120
|
+
input :O,
|
121
|
+
:prompt => "Organization",
|
122
|
+
:description => "Organization",
|
123
|
+
:type => :string,
|
124
|
+
:validation => '^[\w\s-]+$',
|
125
|
+
:maxlength => 50,
|
126
|
+
:optional => true
|
127
|
+
|
128
|
+
|
129
|
+
input :OU,
|
130
|
+
:prompt => "Organizational Unit",
|
131
|
+
:description => "Organizational Unit",
|
132
|
+
:type => :string,
|
133
|
+
:validation => '^[\w\s-]+$',
|
134
|
+
:maxlength => 50,
|
135
|
+
:optional => true
|
136
|
+
|
137
|
+
|
138
|
+
input :ST,
|
139
|
+
:prompt => "State",
|
140
|
+
:description => "State",
|
141
|
+
:type => :string,
|
142
|
+
:validation => '^[\w\s-]+$',
|
143
|
+
:maxlength => 50,
|
144
|
+
:optional => true
|
145
|
+
|
146
|
+
|
147
|
+
input :cn,
|
148
|
+
:prompt => "Common Name",
|
149
|
+
:description => "The certificate Common Name to place in the CSR",
|
150
|
+
:type => :string,
|
151
|
+
:validation => '^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]).)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$',
|
152
|
+
:maxlength => 80,
|
153
|
+
:optional => true
|
154
|
+
|
155
|
+
|
156
|
+
input :token,
|
157
|
+
:prompt => "Token",
|
158
|
+
:description => "Authentication token to pass to the server",
|
159
|
+
:type => :string,
|
160
|
+
:validation => '.',
|
161
|
+
:maxlength => 128,
|
162
|
+
:optional => true
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
output :csr,
|
168
|
+
:description => "PEM text block for the CSR",
|
169
|
+
:type => "string",
|
170
|
+
:display_as => "CSR"
|
171
|
+
|
172
|
+
output :public_key,
|
173
|
+
:description => "PEM text block of the public key that made the CSR",
|
174
|
+
:type => "string",
|
175
|
+
:display_as => "Public Key"
|
176
|
+
|
177
|
+
output :ssldir,
|
178
|
+
:description => "SSL directory as determined by the server",
|
179
|
+
:type => "string",
|
180
|
+
:display_as => "SSL Dir"
|
181
|
+
|
76
182
|
end
|
77
183
|
|
78
|
-
action "
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
:type => :string,
|
116
|
-
:validation => ".",
|
117
|
-
:optional => true,
|
118
|
-
:maxlength => 500
|
119
|
-
|
120
|
-
output :message,
|
121
|
-
:description => "Status message from the Provisioner",
|
122
|
-
:display_as => "Message"
|
184
|
+
action "release_update", :description => "Performs an in-place binary update and restarts Choria" do
|
185
|
+
display :always
|
186
|
+
|
187
|
+
input :repository,
|
188
|
+
:prompt => "Repository URL",
|
189
|
+
:description => "HTTP(S) server hosting the update repository",
|
190
|
+
:type => :string,
|
191
|
+
:validation => '^http(s*)://',
|
192
|
+
:maxlength => 512,
|
193
|
+
:optional => false
|
194
|
+
|
195
|
+
|
196
|
+
input :token,
|
197
|
+
:prompt => "Token",
|
198
|
+
:description => "Authentication token to pass to the server",
|
199
|
+
:type => :string,
|
200
|
+
:validation => '.',
|
201
|
+
: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
|
+
:optional => false
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
output :message,
|
217
|
+
:description => "Status message from the Provisioner",
|
218
|
+
:type => "string",
|
219
|
+
:display_as => "Message"
|
220
|
+
|
123
221
|
end
|
124
222
|
|
125
|
-
action "
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
223
|
+
action "jwt", :description => "Re-enable provision mode in a running Choria Server" do
|
224
|
+
display :always
|
225
|
+
|
226
|
+
input :token,
|
227
|
+
:prompt => "Token",
|
228
|
+
:description => "Authentication token to pass to the server",
|
229
|
+
:type => :string,
|
230
|
+
:validation => '.',
|
231
|
+
:maxlength => 128,
|
232
|
+
:optional => true
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
output :ecdh_public,
|
238
|
+
:description => "The ECDH public key for calculating shared secrets",
|
239
|
+
:type => "string",
|
240
|
+
:display_as => "ECDH Public Key"
|
241
|
+
|
242
|
+
output :jwt,
|
243
|
+
:description => "The contents of the JWT token",
|
244
|
+
:type => "string",
|
245
|
+
:display_as => "JWT Token"
|
246
|
+
|
144
247
|
end
|
145
248
|
|
146
249
|
action "reprovision", :description => "Reenable provision mode in a running Choria Server" do
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
250
|
+
display :always
|
251
|
+
|
252
|
+
input :token,
|
253
|
+
:prompt => "Token",
|
254
|
+
:description => "Authentication token to pass to the server",
|
255
|
+
:type => :string,
|
256
|
+
:validation => '.',
|
257
|
+
:maxlength => 128,
|
258
|
+
:optional => true
|
259
|
+
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
output :message,
|
264
|
+
:description => "Status message from the Provisioner",
|
265
|
+
:type => "string",
|
266
|
+
:display_as => "Message"
|
267
|
+
|
161
268
|
end
|
162
269
|
|
163
|
-
action "
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
270
|
+
action "restart", :description => "Restart the Choria Server" do
|
271
|
+
display :failed
|
272
|
+
|
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
|
+
input :token,
|
281
|
+
:prompt => "Token",
|
282
|
+
:description => "Authentication token to pass to the server",
|
283
|
+
:type => :string,
|
284
|
+
:validation => '.',
|
285
|
+
:maxlength => 128,
|
286
|
+
:optional => true
|
287
|
+
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
output :message,
|
292
|
+
:description => "Status message from the Provisioner",
|
293
|
+
:type => "string",
|
294
|
+
:display_as => "Message"
|
295
|
+
|
179
296
|
end
|
180
297
|
|
181
|
-
action "release_update", :description => "Performs an in-place binary update and restarts Choria" do
|
182
|
-
display :always
|
183
|
-
|
184
|
-
input :token,
|
185
|
-
:prompt => "Token",
|
186
|
-
:description => "Authentication token to pass to the server",
|
187
|
-
:type => :string,
|
188
|
-
:validation => ".",
|
189
|
-
:optional => true,
|
190
|
-
:default => "",
|
191
|
-
:maxlength => 128
|
192
|
-
|
193
|
-
input :repository,
|
194
|
-
:prompt => "Repository URL",
|
195
|
-
:description => "HTTP(S) server hosting the update repository",
|
196
|
-
:type => :string,
|
197
|
-
:validation => "^http(s*):\/\/",
|
198
|
-
:optional => false,
|
199
|
-
:default => "",
|
200
|
-
:maxlength => "512"
|
201
|
-
|
202
|
-
input :version,
|
203
|
-
:prompt => "Version to update to",
|
204
|
-
:description => "Package version to update to",
|
205
|
-
:type => :string,
|
206
|
-
:validation => ".+",
|
207
|
-
:optional => false,
|
208
|
-
:default => "",
|
209
|
-
:maxlength => "32"
|
210
|
-
|
211
|
-
output :message,
|
212
|
-
:description => "Status message from the Provisioner",
|
213
|
-
:display_as => "Message"
|
214
|
-
end
|
@@ -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.24.0",
|
9
9
|
"url": "https://choria.io",
|
10
10
|
"timeout": 20
|
11
11
|
},
|
@@ -47,7 +47,7 @@
|
|
47
47
|
"default": null,
|
48
48
|
"optional": true,
|
49
49
|
"validation": "^-----BEGIN CERTIFICATE-----",
|
50
|
-
"maxlength":
|
50
|
+
"maxlength": 20480
|
51
51
|
},
|
52
52
|
"ssldir": {
|
53
53
|
"prompt": "SSL Dir",
|
@@ -57,12 +57,45 @@
|
|
57
57
|
"optional": true,
|
58
58
|
"validation": ".",
|
59
59
|
"maxlength": 500
|
60
|
+
},
|
61
|
+
"key": {
|
62
|
+
"prompt": "PEM text block for the private key",
|
63
|
+
"type": "string",
|
64
|
+
"default": null,
|
65
|
+
"optional": true,
|
66
|
+
"validation": "-----BEGIN RSA PRIVATE KEY-----",
|
67
|
+
"maxlength": 10240
|
68
|
+
},
|
69
|
+
"ecdh_public": {
|
70
|
+
"prompt": "ECDH Public Key",
|
71
|
+
"description": "Required when sending a private key",
|
72
|
+
"type": "string",
|
73
|
+
"default": "",
|
74
|
+
"optional": true,
|
75
|
+
"maxlength": 64,
|
76
|
+
"validation": "."
|
77
|
+
},
|
78
|
+
"action_policies": {
|
79
|
+
"prompt": "Action Policy Documents",
|
80
|
+
"description": "Map of Action Policy documents indexed by file name",
|
81
|
+
"type": "hash",
|
82
|
+
"default": {},
|
83
|
+
"optional": true
|
84
|
+
},
|
85
|
+
"opa_policies": {
|
86
|
+
"prompt": "Open Policy Agent Policy Documents",
|
87
|
+
"description": "Map of Open Policy Agent Policy documents indexed by file name",
|
88
|
+
"type": "hash",
|
89
|
+
"default": {},
|
90
|
+
"optional": true
|
60
91
|
}
|
92
|
+
|
61
93
|
},
|
62
94
|
"output": {
|
63
95
|
"message": {
|
64
96
|
"description": "Status message from the Provisioner",
|
65
97
|
"display_as": "Message",
|
98
|
+
"type": "string",
|
66
99
|
"default": null
|
67
100
|
}
|
68
101
|
},
|
@@ -140,11 +173,19 @@
|
|
140
173
|
"csr": {
|
141
174
|
"description": "PEM text block for the CSR",
|
142
175
|
"display_as": "CSR",
|
176
|
+
"type": "string",
|
177
|
+
"default": null
|
178
|
+
},
|
179
|
+
"public_key": {
|
180
|
+
"description": "PEM text block of the public key that made the CSR",
|
181
|
+
"display_as": "Public Key",
|
182
|
+
"type": "string",
|
143
183
|
"default": null
|
144
184
|
},
|
145
185
|
"ssldir": {
|
146
186
|
"description": "SSL directory as determined by the server",
|
147
187
|
"display_as": "SSL Dir",
|
188
|
+
"type": "string",
|
148
189
|
"default": null
|
149
190
|
}
|
150
191
|
},
|
@@ -186,6 +227,7 @@
|
|
186
227
|
"message": {
|
187
228
|
"description": "Status message from the Provisioner",
|
188
229
|
"display_as": "Message",
|
230
|
+
"type": "string",
|
189
231
|
"default": null
|
190
232
|
}
|
191
233
|
},
|
@@ -209,11 +251,18 @@
|
|
209
251
|
"jwt": {
|
210
252
|
"description": "The contents of the JWT token",
|
211
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",
|
260
|
+
"type": "string",
|
212
261
|
"default": ""
|
213
262
|
}
|
214
263
|
},
|
215
264
|
"display": "always",
|
216
|
-
"description": "
|
265
|
+
"description": "Re-enable provision mode in a running Choria Server"
|
217
266
|
},
|
218
267
|
{
|
219
268
|
"action": "reprovision",
|
@@ -232,6 +281,7 @@
|
|
232
281
|
"message": {
|
233
282
|
"description": "Status message from the Provisioner",
|
234
283
|
"display_as": "Message",
|
284
|
+
"type": "string",
|
235
285
|
"default": null
|
236
286
|
}
|
237
287
|
},
|
@@ -262,6 +312,7 @@
|
|
262
312
|
"message": {
|
263
313
|
"description": "Status message from the Provisioner",
|
264
314
|
"display_as": "Message",
|
315
|
+
"type": "string",
|
265
316
|
"default": null
|
266
317
|
}
|
267
318
|
},
|
@@ -0,0 +1,65 @@
|
|
1
|
+
metadata :name => "choria_registry",
|
2
|
+
:description => "Choria Registry Service",
|
3
|
+
:author => "rip@devco.net <rip@devco.net>",
|
4
|
+
:license => "Apache-2.0",
|
5
|
+
:version => "0.24.0",
|
6
|
+
:url => "https://choria.io",
|
7
|
+
:provider => "golang",
|
8
|
+
:service => true,
|
9
|
+
:timeout => 2
|
10
|
+
|
11
|
+
|
12
|
+
action "ddl", :description => "Retrieve the DDL for a specific plugin" do
|
13
|
+
display :always
|
14
|
+
|
15
|
+
input :format,
|
16
|
+
:prompt => "Plugin Format",
|
17
|
+
:description => "The result format the plugin should be retrieved in",
|
18
|
+
:type => :list,
|
19
|
+
:default => "json",
|
20
|
+
:list => ["ddl", "json"],
|
21
|
+
:optional => true
|
22
|
+
|
23
|
+
|
24
|
+
input :name,
|
25
|
+
:prompt => "Plugin Name",
|
26
|
+
:description => "The name of the plugin",
|
27
|
+
:type => :string,
|
28
|
+
:validation => :shellsafe,
|
29
|
+
:maxlength => 64,
|
30
|
+
:optional => false
|
31
|
+
|
32
|
+
|
33
|
+
input :plugin_type,
|
34
|
+
:prompt => "Plugin Type",
|
35
|
+
:description => "The type of plugin",
|
36
|
+
:type => :list,
|
37
|
+
:default => "agent",
|
38
|
+
:list => ["agent"],
|
39
|
+
:optional => false
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
output :ddl,
|
45
|
+
:description => "The plugin DDL in the requested format",
|
46
|
+
:type => "string",
|
47
|
+
:display_as => "DDL"
|
48
|
+
|
49
|
+
output :name,
|
50
|
+
:description => "The name of the plugin",
|
51
|
+
:type => "string",
|
52
|
+
:display_as => "Name"
|
53
|
+
|
54
|
+
output :plugin_type,
|
55
|
+
:description => "The type of plugin",
|
56
|
+
:type => "string",
|
57
|
+
:display_as => "Type"
|
58
|
+
|
59
|
+
output :version,
|
60
|
+
:description => "The version of the plugin",
|
61
|
+
:type => "string",
|
62
|
+
:display_as => "Version"
|
63
|
+
|
64
|
+
end
|
65
|
+
|
@@ -0,0 +1,74 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://choria.io/schemas/mcorpc/ddl/v1/agent.json",
|
3
|
+
"metadata": {
|
4
|
+
"license": "Apache-2.0",
|
5
|
+
"author": "rip@devco.net \u003crip@devco.net\u003e",
|
6
|
+
"timeout": 2,
|
7
|
+
"name": "choria_registry",
|
8
|
+
"version": "0.24.0",
|
9
|
+
"url": "https://choria.io",
|
10
|
+
"description": "Choria Registry Service",
|
11
|
+
"provider": "golang",
|
12
|
+
"service": true
|
13
|
+
},
|
14
|
+
"actions": [
|
15
|
+
{
|
16
|
+
"action": "ddl",
|
17
|
+
"input": {
|
18
|
+
"format": {
|
19
|
+
"prompt": "Plugin Format",
|
20
|
+
"description": "The result format the plugin should be retrieved in",
|
21
|
+
"type": "list",
|
22
|
+
"default": "json",
|
23
|
+
"optional": true,
|
24
|
+
"list": [
|
25
|
+
"ddl",
|
26
|
+
"json"
|
27
|
+
]
|
28
|
+
},
|
29
|
+
"name": {
|
30
|
+
"prompt": "Plugin Name",
|
31
|
+
"description": "The name of the plugin",
|
32
|
+
"type": "string",
|
33
|
+
"optional": false,
|
34
|
+
"validation": "shellsafe",
|
35
|
+
"maxlength": 64
|
36
|
+
},
|
37
|
+
"plugin_type": {
|
38
|
+
"prompt": "Plugin Type",
|
39
|
+
"description": "The type of plugin",
|
40
|
+
"type": "list",
|
41
|
+
"default": "agent",
|
42
|
+
"optional": false,
|
43
|
+
"list": [
|
44
|
+
"agent"
|
45
|
+
]
|
46
|
+
}
|
47
|
+
},
|
48
|
+
"output": {
|
49
|
+
"ddl": {
|
50
|
+
"description": "The plugin DDL in the requested format",
|
51
|
+
"display_as": "DDL",
|
52
|
+
"type": "string"
|
53
|
+
},
|
54
|
+
"name": {
|
55
|
+
"description": "The name of the plugin",
|
56
|
+
"display_as": "Name",
|
57
|
+
"type": "string"
|
58
|
+
},
|
59
|
+
"plugin_type": {
|
60
|
+
"description": "The type of plugin",
|
61
|
+
"display_as": "Type",
|
62
|
+
"type": "string"
|
63
|
+
},
|
64
|
+
"version": {
|
65
|
+
"description": "The version of the plugin",
|
66
|
+
"display_as": "Version",
|
67
|
+
"type": "string"
|
68
|
+
}
|
69
|
+
},
|
70
|
+
"display": "always",
|
71
|
+
"description": "Retrieve the DDL for a specific plugin"
|
72
|
+
}
|
73
|
+
]
|
74
|
+
}
|
@@ -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.
|
5
|
+
:version => "0.24.0",
|
6
6
|
:url => "https://choria.io/",
|
7
7
|
:timeout => 2
|
8
8
|
|
@@ -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.24.0",
|
9
9
|
"url": "https://choria.io/",
|
10
10
|
"timeout": 2
|
11
11
|
},
|
@@ -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.
|
5
|
+
:version => "0.24.0",
|
6
6
|
:url => "https://choria.io",
|
7
7
|
:provider => "golang",
|
8
8
|
:timeout => 5
|
@@ -132,9 +132,9 @@ action "goss_validate", :description => "Performs a Goss validation using a spec
|
|
132
132
|
:display_as => "Tests"
|
133
133
|
|
134
134
|
summarize do
|
135
|
-
aggregate summary(:tests, :format => "%s
|
136
|
-
aggregate summary(:failures, :format => "%s Failed
|
137
|
-
aggregate summary(:success, :format => "%s Passed
|
135
|
+
aggregate summary(:tests, :format => "%s Tests on %d node(s)")
|
136
|
+
aggregate summary(:failures, :format => "%s Failed test on %d node(s)")
|
137
|
+
aggregate summary(:success, :format => "%s Passed tests on %d node(s)")
|
138
138
|
end
|
139
139
|
end
|
140
140
|
|
@@ -10,6 +10,9 @@ module MCollective
|
|
10
10
|
|
11
11
|
cmd = [binary_name, "discover", "-j", "--silent"]
|
12
12
|
|
13
|
+
config = client.options.fetch(:config)
|
14
|
+
cmd << "--config" << config if config
|
15
|
+
|
13
16
|
cmd << "-T" << filter["collective"] if filter["collective"]
|
14
17
|
|
15
18
|
filter.fetch("identity", []).each do |i|
|
@@ -53,10 +56,12 @@ module MCollective
|
|
53
56
|
|
54
57
|
begin
|
55
58
|
Timeout.timeout(timeout + 0.5) do
|
56
|
-
|
59
|
+
out = stdout.read
|
57
60
|
status = wait_thr.value
|
58
61
|
|
59
62
|
raise("Choria discovery failed: %s" % stderr.read) unless status.exitstatus == 0
|
63
|
+
|
64
|
+
nodes.concat(JSON.parse(out))
|
60
65
|
end
|
61
66
|
rescue Timeout::Error
|
62
67
|
Log.warn("Timeout waiting for Choria to perform discovery")
|
@@ -65,7 +65,7 @@ module MCollective
|
|
65
65
|
# AIO path to binaries like wrappers etc
|
66
66
|
def aio_bin_path
|
67
67
|
if Util.windows?
|
68
|
-
'C:\Program Files\Puppet Labs\Puppet\bin'
|
68
|
+
'C:\Program Files\Puppet Labs\Puppet\puppet\bin'
|
69
69
|
else
|
70
70
|
"/opt/puppetlabs/puppet/bin"
|
71
71
|
end
|
@@ -88,6 +88,13 @@ module MCollective
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
+
# Is this an AIO install?
|
92
|
+
#
|
93
|
+
# @return [Boolean]
|
94
|
+
def aio?
|
95
|
+
File.directory?(aio_bin_path)
|
96
|
+
end
|
97
|
+
|
91
98
|
# Path to the task wrapper executable
|
92
99
|
#
|
93
100
|
# @return [String]
|
@@ -179,6 +186,8 @@ module MCollective
|
|
179
186
|
"_choria_task_caller" => task_caller
|
180
187
|
}
|
181
188
|
|
189
|
+
environment["PATH"] = "#{aio_bin_path}#{File::PATH_SEPARATOR}#{ENV['PATH']}" if aio?
|
190
|
+
|
182
191
|
return environment unless task["input"]
|
183
192
|
return environment unless ["both", "environment"].include?(task_input_method(task))
|
184
193
|
|
@@ -250,7 +259,7 @@ module MCollective
|
|
250
259
|
# act on these tasks either by asking for their status or perhaps killing
|
251
260
|
# them?
|
252
261
|
#
|
253
|
-
# @param command [
|
262
|
+
# @param command [String] command to run
|
254
263
|
# @param environment [Hash] environment to run with
|
255
264
|
# @param stdin [String] stdin to send to the command
|
256
265
|
# @param spooldir [String] path to the spool for this specific request
|
@@ -291,7 +300,7 @@ module MCollective
|
|
291
300
|
Process.exec(environment, command, options)
|
292
301
|
end
|
293
302
|
else
|
294
|
-
pid = Process.spawn(environment, command, options)
|
303
|
+
pid = Process.spawn(environment, [command, command], options)
|
295
304
|
end
|
296
305
|
|
297
306
|
sleep 0.1 until File.exist?(wrapper_stdout)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: choria-mcorpc-support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.25.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: 2021-
|
11
|
+
date: 2021-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: systemu
|
@@ -37,6 +37,9 @@ dependencies:
|
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0.6'
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 0.7.0
|
40
43
|
type: :runtime
|
41
44
|
prerelease: false
|
42
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -44,6 +47,9 @@ dependencies:
|
|
44
47
|
- - "~>"
|
45
48
|
- !ruby/object:Gem::Version
|
46
49
|
version: '0.6'
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 0.7.0
|
47
53
|
description: Libraries enabling Ruby support for the Choria Orchestration Server
|
48
54
|
email: rip@devco.net
|
49
55
|
executables:
|
@@ -54,11 +60,15 @@ files:
|
|
54
60
|
- bin/mco
|
55
61
|
- lib/mcollective.rb
|
56
62
|
- lib/mcollective/agent.rb
|
63
|
+
- lib/mcollective/agent/aaa_signer.ddl
|
64
|
+
- lib/mcollective/agent/aaa_signer.json
|
57
65
|
- lib/mcollective/agent/bolt_tasks.ddl
|
58
66
|
- lib/mcollective/agent/bolt_tasks.json
|
59
67
|
- lib/mcollective/agent/bolt_tasks.rb
|
60
68
|
- lib/mcollective/agent/choria_provision.ddl
|
61
69
|
- lib/mcollective/agent/choria_provision.json
|
70
|
+
- lib/mcollective/agent/choria_registry.ddl
|
71
|
+
- lib/mcollective/agent/choria_registry.json
|
62
72
|
- lib/mcollective/agent/choria_util.ddl
|
63
73
|
- lib/mcollective/agent/choria_util.json
|
64
74
|
- lib/mcollective/agent/rpcutil.ddl
|