choria-mcorpc-support 2.24.4 → 2.25.3

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: 707a3ec934abb7197a7eaaf95377c01149aa481f8320ffcfd7d07891094e6373
4
- data.tar.gz: 6bdc5f52c104d5a10a3f06e5de1194c0633f20a4458d2bbf5b10064b0f153808
3
+ metadata.gz: 6ea0c40e0fddf65e2507b695f3bfe70a21252ebc43747f03e549d2741c4eda04
4
+ data.tar.gz: 0305377ba6a38d5a213cc46ac7e5b09dc82829d6e32cab8e77f7f7da75225bb4
5
5
  SHA512:
6
- metadata.gz: 9bc9ea26a564281863c042abc4e1e652279c62833240d7281a17cdc04a9485efd54b932d578c29415bc829432a7848acece6ef6f82e8b935e65e26e5e75fc2b0
7
- data.tar.gz: 8b0b97bc19f45c868b3052c20256cff43960f4b5804ec1fda4cff2f7e65fa427dd34495727ed5adaa01c6b8bc393ef823cec3d5edd14b450938f8c73ec142f32
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 => "choria_provision",
1
+ metadata :name => "choria_provision",
2
2
  :description => "Choria Provisioner",
3
- :author => "R.I.Pienaar <rip@devco.net>",
4
- :license => "Apache-2.0",
5
- :version => "0.22.0",
6
- :url => "https://choria.io",
7
- :timeout => 20
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
- display :always
11
-
12
- input :token,
13
- :prompt => "Token",
14
- :description => "Authentication token to pass to the server",
15
- :type => :string,
16
- :validation => ".",
17
- :optional => true,
18
- :default => "",
19
- :maxlength => 128
20
-
21
- input :cn,
22
- :prompt => "Common Name",
23
- :description => "The certificate Common Name to place in the CSR",
24
- :type => :string,
25
- :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])$",
26
- :optional => true,
27
- :maxlength => 80
28
-
29
- input :C,
30
- :prompt => "Country",
31
- :description => "Country Code",
32
- :type => :string,
33
- :validation => "^[A-Z]{2}$",
34
- :optional => true,
35
- :maxlength => 2
36
-
37
- input :L,
38
- :prompt => "Locality",
39
- :description => "Locality or municipality (such as city or town name)",
40
- :type => :string,
41
- :validation => "^[\\w\\s-]+$",
42
- :optional => true,
43
- :maxlength => 50
44
-
45
- input :O,
46
- :prompt => "Organization",
47
- :description => "Organization",
48
- :type => :string,
49
- :validation => "^[\\w\\s-]+$",
50
- :optional => true,
51
- :maxlength => 50
52
-
53
- input :OU,
54
- :prompt => "Organizational Unit",
55
- :description => "Organizational Unit",
56
- :type => :string,
57
- :validation => "^[\\w\\s-]+$",
58
- :optional => true,
59
- :maxlength => 50
60
-
61
- input :ST,
62
- :prompt => "State",
63
- :description => "State",
64
- :type => :string,
65
- :validation => "^[\\w\\s-]+$",
66
- :optional => true,
67
- :maxlength => 50
68
-
69
- output :csr,
70
- :description => "PEM text block for the CSR",
71
- :display_as => "CSR"
72
-
73
- output :ssldir,
74
- :description => "SSL directory as determined by the server",
75
- :display_as => "SSL Dir"
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 "configure", :description => "Configure the Choria Server" do
79
- input :token,
80
- :prompt => "Token",
81
- :description => "Authentication token to pass to the server",
82
- :type => :string,
83
- :validation => ".",
84
- :optional => true,
85
- :default => "",
86
- :maxlength => 128
87
-
88
- input :config,
89
- :prompt => "Configuration",
90
- :description => "The configuration to apply to this node",
91
- :type => :string,
92
- :validation => "^{.+}$",
93
- :optional => false,
94
- :maxlength => 2048
95
-
96
- input :certificate,
97
- :prompt => "Certificate",
98
- :description => "PEM text block for the certificate",
99
- :type => :string,
100
- :validation => "^-----BEGIN CERTIFICATE-----",
101
- :optional => true,
102
- :maxlength => 10240
103
-
104
- input :ca,
105
- :prompt => "CA Bundle",
106
- :description => "PEM text block for the CA",
107
- :type => :string,
108
- :validation => "^-----BEGIN CERTIFICATE-----",
109
- :optional => true,
110
- :maxlength => 10240
111
-
112
- input :ssldir,
113
- :prompt => "SSL Dir",
114
- :description => "Directory for storing the certificate in",
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 "restart", :description => "Restart the Choria Server" do
126
- input :token,
127
- :prompt => "Token",
128
- :description => "Authentication token to pass to the server",
129
- :type => :string,
130
- :validation => ".",
131
- :optional => true,
132
- :default => "",
133
- :maxlength => 128
134
-
135
- input :splay,
136
- :prompt => "Splay time",
137
- :description => "The configuration to apply to this node",
138
- :type => :number,
139
- :optional => true
140
-
141
- output :message,
142
- :description => "Status message from the Provisioner",
143
- :display_as => "Message"
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
- display :always
148
-
149
- input :token,
150
- :prompt => "Token",
151
- :description => "Authentication token to pass to the server",
152
- :type => :string,
153
- :validation => ".",
154
- :optional => true,
155
- :default => "",
156
- :maxlength => 128
157
-
158
- output :message,
159
- :description => "Status message from the Provisioner",
160
- :display_as => "Message"
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 "jwt", :description => "Retrieves the Provisioning JWT token if set" do
164
- display :always
165
-
166
- input :token,
167
- :prompt => "Token",
168
- :description => "Authentication token to pass to the server",
169
- :type => :string,
170
- :validation => ".",
171
- :optional => true,
172
- :default => "",
173
- :maxlength => 128
174
-
175
- output :jwt,
176
- :description => "The contents of the JWT token",
177
- :display_as => "JWT Token",
178
- :default => ""
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.22.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": 10240
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": "Reenable provision mode in a running Choria Server"
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 => "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.22.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": "Choria Utilities",
6
6
  "author": "R.I.Pienaar <rip@devco.net>",
7
7
  "license": "Apache-2.0",
8
- "version": "0.22.0",
8
+ "version": "0.24.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.22.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.22.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.22.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 Test Cases on %d node(s)")
136
- aggregate summary(:failures, :format => "%s Failed Cases on %d node(s)")
137
- aggregate summary(:success, :format => "%s Passed Cases on %d node(s)")
135
+ aggregate summary(:tests, :format => "%s Tests on %d node(s)")
136
+ aggregate summary(:failures, :format => "%s Failed test on %d node(s)")
137
+ aggregate summary(:success, :format => "%s Passed tests on %d node(s)")
138
138
  end
139
139
  end
140
140
 
@@ -5,7 +5,7 @@
5
5
  "author": "R.I.Pienaar <rip@devco.net>",
6
6
  "timeout": 5,
7
7
  "name": "scout",
8
- "version": "0.22.0",
8
+ "version": "0.24.0",
9
9
  "url": "https://choria.io",
10
10
  "description": "Choria Scout Agent Management API",
11
11
  "provider": "golang"
@@ -10,6 +10,9 @@ module MCollective
10
10
 
11
11
  cmd = [binary_name, "discover", "-j", "--silent"]
12
12
 
13
+ config = client.options.fetch(:config)
14
+ cmd << "--config" << config if config
15
+
13
16
  cmd << "-T" << filter["collective"] if filter["collective"]
14
17
 
15
18
  filter.fetch("identity", []).each do |i|
@@ -53,10 +56,12 @@ module MCollective
53
56
 
54
57
  begin
55
58
  Timeout.timeout(timeout + 0.5) do
56
- nodes.concat(JSON.parse(stdout.read))
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")
@@ -847,6 +847,7 @@ module MCollective
847
847
  message.requestid = @stats.requestid
848
848
 
849
849
  message.discovered_hosts = hosts.clone.compact
850
+ message.type = :direct_request
850
851
 
851
852
  @client.req(message) do |resp|
852
853
  respcount += 1
@@ -65,7 +65,7 @@ module MCollective
65
65
  # AIO path to binaries like wrappers etc
66
66
  def aio_bin_path
67
67
  if Util.windows?
68
- 'C:\Program Files\Puppet Labs\Puppet\bin'
68
+ 'C:\Program Files\Puppet Labs\Puppet\puppet\bin'
69
69
  else
70
70
  "/opt/puppetlabs/puppet/bin"
71
71
  end
@@ -88,6 +88,13 @@ module MCollective
88
88
  end
89
89
  end
90
90
 
91
+ # Is this an AIO install?
92
+ #
93
+ # @return [Boolean]
94
+ def aio?
95
+ File.directory?(aio_bin_path)
96
+ end
97
+
91
98
  # Path to the task wrapper executable
92
99
  #
93
100
  # @return [String]
@@ -179,6 +186,8 @@ module MCollective
179
186
  "_choria_task_caller" => task_caller
180
187
  }
181
188
 
189
+ environment["PATH"] = "#{aio_bin_path}#{File::PATH_SEPARATOR}#{ENV['PATH']}" if aio?
190
+
182
191
  return environment unless task["input"]
183
192
  return environment unless ["both", "environment"].include?(task_input_method(task))
184
193
 
@@ -250,7 +259,7 @@ module MCollective
250
259
  # act on these tasks either by asking for their status or perhaps killing
251
260
  # them?
252
261
  #
253
- # @param command [Array<String>] command to run
262
+ # @param command [String] command to run
254
263
  # @param environment [Hash] environment to run with
255
264
  # @param stdin [String] stdin to send to the command
256
265
  # @param spooldir [String] path to the spool for this specific request
@@ -291,7 +300,7 @@ module MCollective
291
300
  Process.exec(environment, command, options)
292
301
  end
293
302
  else
294
- pid = Process.spawn(environment, command, options)
303
+ pid = Process.spawn(environment, [command, command], options)
295
304
  end
296
305
 
297
306
  sleep 0.1 until File.exist?(wrapper_stdout)
@@ -12,7 +12,7 @@ module MCollective
12
12
  when :integer
13
13
  validator.is_a?(Integer)
14
14
  when :float
15
- validator.is_a?(Float)
15
+ validator.is_a?(Float) || validator.is_a?(Integer)
16
16
  when :number
17
17
  validator.is_a?(Numeric)
18
18
  when :string
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: choria-mcorpc-support
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.24.4
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-06-19 00:00:00.000000000 Z
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