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 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