choria-mcorpc-support 2.26.3 → 2.26.5
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 +1 -5
- data/lib/mcollective/agent/aaa_signer.json +1 -1
- data/lib/mcollective/agent/choria_provision.ddl +1 -9
- data/lib/mcollective/agent/choria_provision.json +1 -1
- data/lib/mcollective/agent/choria_registry.ddl +1 -5
- data/lib/mcollective/agent/choria_registry.json +1 -1
- data/lib/mcollective/agent/choria_util.ddl +1 -5
- data/lib/mcollective/agent/choria_util.json +1 -1
- data/lib/mcollective/agent/rpcutil.ddl +1 -5
- data/lib/mcollective/agent/rpcutil.json +1 -1
- data/lib/mcollective/agent/scout.ddl +1 -5
- data/lib/mcollective/agent/scout.json +1 -1
- data/lib/mcollective/client.rb +1 -0
- data/lib/mcollective/config.rb +3 -2
- data/lib/mcollective/ddl/base.rb +2 -2
- data/lib/mcollective/ddl/discoveryddl.rb +3 -3
- data/lib/mcollective/discovery/delegate.rb +4 -0
- data/lib/mcollective/discovery/external.ddl +1 -1
- data/lib/mcollective/optionparser.rb +4 -0
- data/lib/mcollective/rpc.rb +1 -1
- data/lib/mcollective/ssl.rb +2 -0
- data/lib/mcollective/util/choria.rb +3 -1
- data/lib/mcollective/util/playbook/nodes/mcollective_nodes.rb +12 -0
- data/lib/mcollective/util/playbook/tasks/slack_task.rb +14 -8
- data/lib/mcollective/util/tasks_support.rb +3 -3
- data/lib/mcollective/util.rb +2 -1
- metadata +6 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 618794d9d7f198e7f4cc53e8367aaeddaa938fb6a6c7b2180c55fe14b767c68d
|
|
4
|
+
data.tar.gz: dbfc72f95e4ec3af2e8a7292bd7ec19ed5dd9d00d5d8b2d97f2ecafdd93e46a5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dcc0cc84a7f5c6a6a0a48ca454db2b68b658d353d0485dbfa71faa48c47d3a575d4505716bb8d53b4f735622910ae313c0caf14e2d770533bebcbc8dfc5638d8
|
|
7
|
+
data.tar.gz: 463adc38db69e4b905d8cdb46719eca031f1a4fe82c0c35ccc8098edc88725dd8aa7fe1e0d3c409d0b40c3467332ee8ed6c04c02831cd2c2a78cce686e74fc8e
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
|
2
|
-
--
|
|
3
|
-
-- SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
1
|
metadata :name => "aaa_signer",
|
|
6
2
|
:description => "Request Signer for Choria AAA Service",
|
|
7
3
|
:author => "R.I.Pienaar <rip@devco.net>",
|
|
8
4
|
:license => "Apache-2.0",
|
|
9
|
-
:version => "0.
|
|
5
|
+
:version => "0.29.4",
|
|
10
6
|
:url => "https://github.com/choria-io/aaasvc",
|
|
11
7
|
:provider => "golang",
|
|
12
8
|
:service => true,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"author": "R.I.Pienaar \u003crip@devco.net\u003e",
|
|
6
6
|
"timeout": 10,
|
|
7
7
|
"name": "aaa_signer",
|
|
8
|
-
"version": "0.
|
|
8
|
+
"version": "0.29.4",
|
|
9
9
|
"url": "https://github.com/choria-io/aaasvc",
|
|
10
10
|
"description": "Request Signer for Choria AAA Service",
|
|
11
11
|
"provider": "golang",
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
|
2
|
-
--
|
|
3
|
-
-- SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
|
6
|
-
--
|
|
7
|
-
-- SPDX-License-Identifier: Apache-2.0
|
|
8
|
-
|
|
9
1
|
metadata :name => "choria_provision",
|
|
10
2
|
:description => "Choria Provisioner",
|
|
11
3
|
:author => "R.I.Pienaar <rip@devco.net>",
|
|
12
4
|
:license => "Apache-2.0",
|
|
13
|
-
:version => "0.
|
|
5
|
+
:version => "0.29.4",
|
|
14
6
|
:url => "https://choria.io",
|
|
15
7
|
:timeout => 20
|
|
16
8
|
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
|
2
|
-
--
|
|
3
|
-
-- SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
1
|
metadata :name => "choria_registry",
|
|
6
2
|
:description => "Choria Registry Service",
|
|
7
3
|
:author => "rip@devco.net <rip@devco.net>",
|
|
8
4
|
:license => "Apache-2.0",
|
|
9
|
-
:version => "0.
|
|
5
|
+
:version => "0.29.4",
|
|
10
6
|
:url => "https://choria.io",
|
|
11
7
|
:provider => "golang",
|
|
12
8
|
:service => true,
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
|
2
|
-
--
|
|
3
|
-
-- SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
1
|
metadata :name => "choria_util",
|
|
6
2
|
:description => "Choria Utilities",
|
|
7
3
|
:author => "R.I.Pienaar <rip@devco.net>",
|
|
8
4
|
:license => "Apache-2.0",
|
|
9
|
-
:version => "0.
|
|
5
|
+
:version => "0.29.4",
|
|
10
6
|
:url => "https://choria.io",
|
|
11
7
|
:timeout => 2
|
|
12
8
|
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
|
2
|
-
--
|
|
3
|
-
-- SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
1
|
metadata :name => "rpcutil",
|
|
6
2
|
:description => "Utility actions that expose information about the state of the running Server",
|
|
7
3
|
:author => "R.I.Pienaar <rip@devco.net>",
|
|
8
4
|
:license => "Apache-2.0",
|
|
9
|
-
:version => "0.
|
|
5
|
+
:version => "0.29.4",
|
|
10
6
|
:url => "https://choria.io/",
|
|
11
7
|
:timeout => 2
|
|
12
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.29.4",
|
|
9
9
|
"url": "https://choria.io/",
|
|
10
10
|
"timeout": 2
|
|
11
11
|
},
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
-- Copyright (c) 2024, R.I. Pienaar and the Choria Project contributors
|
|
2
|
-
--
|
|
3
|
-
-- SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
1
|
metadata :name => "scout",
|
|
6
2
|
:description => "Choria Scout Agent Management API",
|
|
7
3
|
:author => "R.I.Pienaar <rip@devco.net>",
|
|
8
4
|
:license => "Apache-2.0",
|
|
9
|
-
:version => "0.
|
|
5
|
+
:version => "0.29.4",
|
|
10
6
|
:url => "https://choria.io",
|
|
11
7
|
:provider => "golang",
|
|
12
8
|
:timeout => 5
|
data/lib/mcollective/client.rb
CHANGED
|
@@ -15,6 +15,7 @@ module MCollective
|
|
|
15
15
|
@config.loadconfig(options[:config]) unless @config.configured
|
|
16
16
|
@options = options
|
|
17
17
|
@connection_timeout = options[:connection_timeout]
|
|
18
|
+
@config.federations = options[:federations] if options[:federations]
|
|
18
19
|
else
|
|
19
20
|
raise "Invalid parameter passed to Client constructor. Valid types are Hash or String"
|
|
20
21
|
end
|
data/lib/mcollective/config.rb
CHANGED
|
@@ -3,7 +3,7 @@ module MCollective
|
|
|
3
3
|
class Config
|
|
4
4
|
include Singleton
|
|
5
5
|
|
|
6
|
-
attr_accessor :mode
|
|
6
|
+
attr_accessor :mode, :federations
|
|
7
7
|
|
|
8
8
|
attr_reader :daemonize, :pluginconf, :configured, :logfile, :keeplogs, :max_log_size, :loglevel, :logfacility,
|
|
9
9
|
:identity, :connector, :securityprovider, :factsource, :registration, :registerinterval, :classesfile,
|
|
@@ -112,7 +112,7 @@ module MCollective
|
|
|
112
112
|
when "default_batch_sleep_time"
|
|
113
113
|
@default_batch_sleep_time = Float(val)
|
|
114
114
|
else
|
|
115
|
-
# server config might now be choria config which will
|
|
115
|
+
# server config might now be choria config which will diverge from mcollective
|
|
116
116
|
# in time, so we only raise this error when it looks like we aren't loading
|
|
117
117
|
# a server config else we try our best to load as much as we can
|
|
118
118
|
raise("Unknown config parameter '#{key}'") unless configfile =~ /server/
|
|
@@ -231,6 +231,7 @@ module MCollective
|
|
|
231
231
|
@connection_timeout = nil
|
|
232
232
|
@default_batch_size = 0
|
|
233
233
|
@default_batch_sleep_time = 1
|
|
234
|
+
@federations = []
|
|
234
235
|
end
|
|
235
236
|
|
|
236
237
|
def libdir
|
data/lib/mcollective/ddl/base.rb
CHANGED
|
@@ -52,11 +52,11 @@ module MCollective
|
|
|
52
52
|
unless template == "metadata-help.erb"
|
|
53
53
|
metadata_template = Util.templatepath("metadata-help.erb")
|
|
54
54
|
metadata_template = File.read(metadata_template)
|
|
55
|
-
metastring = ERB.new(metadata_template,
|
|
55
|
+
metastring = ERB.new(metadata_template, trim_mode: "%") # rubocop:disable Style/HashSyntax
|
|
56
56
|
metastring = metastring.result(binding)
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
erb = ERB.new(template,
|
|
59
|
+
erb = ERB.new(template, trim_mode: "%") # rubocop:disable Style/HashSyntax
|
|
60
60
|
erb.result(binding)
|
|
61
61
|
end
|
|
62
62
|
|
|
@@ -11,7 +11,7 @@ module MCollective
|
|
|
11
11
|
# :timeout => 2
|
|
12
12
|
#
|
|
13
13
|
# discovery do
|
|
14
|
-
# capabilities [:classes, :facts, :identity, :agents, :compound]
|
|
14
|
+
# capabilities [:classes, :facts, :identity, :agents, :compound, :federations]
|
|
15
15
|
# end
|
|
16
16
|
class DiscoveryDDL < Base
|
|
17
17
|
def discovery_interface
|
|
@@ -25,10 +25,10 @@ module MCollective
|
|
|
25
25
|
raise "Discovery plugin capabilities can't be empty" if caps.empty?
|
|
26
26
|
|
|
27
27
|
caps.each do |cap|
|
|
28
|
-
if [:classes, :facts, :identity, :agents, :compound].include?(cap)
|
|
28
|
+
if [:classes, :facts, :identity, :agents, :compound, :federations].include?(cap)
|
|
29
29
|
@entities[:discovery][:capabilities] << cap
|
|
30
30
|
else
|
|
31
|
-
raise "%s is not a valid capability, valid capabilities are :classes, :facts, :identity, :agents and :
|
|
31
|
+
raise "%s is not a valid capability, valid capabilities are :classes, :facts, :identity, :agents, :compound, and :federations" % cap
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
34
|
end
|
|
@@ -6,6 +6,8 @@ module MCollective
|
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
def self.discover(filter, timeout, limit, client)
|
|
9
|
+
@config = Config.instance
|
|
10
|
+
|
|
9
11
|
raise("Cannot find the choria binary in your path") unless Util.command_in_path?("choria")
|
|
10
12
|
|
|
11
13
|
cmd = [binary_name, "discover", "-j", "--silent"]
|
|
@@ -37,6 +39,8 @@ module MCollective
|
|
|
37
39
|
cmd << "-S" << c.first["expr"]
|
|
38
40
|
end
|
|
39
41
|
|
|
42
|
+
cmd << "--federations" << @config.federations.join(",") unless @config.federations.empty?
|
|
43
|
+
|
|
40
44
|
client.options.fetch(:discovery_options, []).each do |opt|
|
|
41
45
|
cmd << "--do" << opt
|
|
42
46
|
end
|
|
@@ -186,6 +186,10 @@ module MCollective
|
|
|
186
186
|
@parser.on("--connection-timeout TIMEOUT", Integer, "Set the timeout for establishing a connection to the middleware") do |v|
|
|
187
187
|
@options[:connection_timeout] = Integer(v)
|
|
188
188
|
end
|
|
189
|
+
|
|
190
|
+
@parser.on("--federations FEDERATIONS", String, "Target federations") do |v|
|
|
191
|
+
@options[:federations] = String(v).split(",")
|
|
192
|
+
end
|
|
189
193
|
end
|
|
190
194
|
|
|
191
195
|
private
|
data/lib/mcollective/rpc.rb
CHANGED
|
@@ -171,7 +171,7 @@ module MCollective
|
|
|
171
171
|
def self.const_missing(const_name)
|
|
172
172
|
super unless const_name == :DDL
|
|
173
173
|
|
|
174
|
-
Log.warn("MCollective::RPC::DDL is
|
|
174
|
+
Log.warn("MCollective::RPC::DDL is deprecated, please use MCollective::DDL instead")
|
|
175
175
|
MCollective::DDL
|
|
176
176
|
end
|
|
177
177
|
end
|
data/lib/mcollective/ssl.rb
CHANGED
|
@@ -97,7 +97,9 @@ module MCollective
|
|
|
97
97
|
#
|
|
98
98
|
# @return [Array<String>]
|
|
99
99
|
def federation_collectives
|
|
100
|
-
if
|
|
100
|
+
if !@config.federations.empty?
|
|
101
|
+
@config.federations
|
|
102
|
+
elsif (override_networks = env_fetch("CHORIA_FED_COLLECTIVE", nil))
|
|
101
103
|
override_networks.split(",").map(&:strip).reject(&:empty?)
|
|
102
104
|
else
|
|
103
105
|
get_option("choria.federation.collectives", "").split(",").map(&:strip).reject(&:empty?)
|
|
@@ -9,6 +9,7 @@ module MCollective
|
|
|
9
9
|
@facts = []
|
|
10
10
|
@classes = []
|
|
11
11
|
@identity = []
|
|
12
|
+
@federations = []
|
|
12
13
|
@compound = nil
|
|
13
14
|
end
|
|
14
15
|
|
|
@@ -64,6 +65,17 @@ module MCollective
|
|
|
64
65
|
# @param data [Hash] input data matching nodes.json schema
|
|
65
66
|
# @return [McollectiveNodes]
|
|
66
67
|
def from_hash(data)
|
|
68
|
+
@config = Config.instance
|
|
69
|
+
|
|
70
|
+
# Allow specifying federations at playbook execution time
|
|
71
|
+
if data["federations"]
|
|
72
|
+
if data["federations"].instance_of?(String)
|
|
73
|
+
@config.federations = [data["federations"]]
|
|
74
|
+
else
|
|
75
|
+
@config.federations = data["federations"]
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
67
79
|
@discovery_method = data.fetch("discovery_method", "mc")
|
|
68
80
|
@agents = data.fetch("agents", ["rpcutil"])
|
|
69
81
|
@facts = data.fetch("facts", [])
|
|
@@ -73,15 +73,21 @@ module MCollective
|
|
|
73
73
|
|
|
74
74
|
def run
|
|
75
75
|
https = choria.https(:target => "slack.com", :port => 443)
|
|
76
|
-
path = "/api/chat.postMessage
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
76
|
+
path = "/api/chat.postMessage"
|
|
77
|
+
headers = {
|
|
78
|
+
"Content-type" => "application/json; charset=utf-8",
|
|
79
|
+
"Authorization" => "Bearer %s" % @token
|
|
80
|
+
}
|
|
81
|
+
params = {
|
|
82
|
+
"username" => @username,
|
|
83
|
+
"channel" => @channel,
|
|
84
|
+
"icon_url" => @icon,
|
|
85
|
+
"attachments" => attachments
|
|
86
|
+
}
|
|
87
|
+
post = choria.http_post(path, headers)
|
|
88
|
+
post.body = params.to_json
|
|
83
89
|
|
|
84
|
-
resp, data = https.request(
|
|
90
|
+
resp, data = https.request(post)
|
|
85
91
|
data = JSON.parse(data || resp.body)
|
|
86
92
|
|
|
87
93
|
if resp.code == "200" && data["ok"]
|
|
@@ -218,7 +218,7 @@ module MCollective
|
|
|
218
218
|
def create_request_spooldir(requestid, task)
|
|
219
219
|
dir = request_spooldir(requestid)
|
|
220
220
|
|
|
221
|
-
FileUtils.mkdir_p(dir, :
|
|
221
|
+
FileUtils.mkdir_p(dir, mode: 0o0750) # rubocop:disable Style/HashSyntax
|
|
222
222
|
|
|
223
223
|
populate_spooldir(dir, task)
|
|
224
224
|
|
|
@@ -235,7 +235,7 @@ module MCollective
|
|
|
235
235
|
|
|
236
236
|
spool_filename = File.join(spooldir, "files", filename)
|
|
237
237
|
|
|
238
|
-
FileUtils.mkdir_p(File.dirname(spool_filename), :
|
|
238
|
+
FileUtils.mkdir_p(File.dirname(spool_filename), mode: 0o0750) # rubocop:disable Style/HashSyntax
|
|
239
239
|
FileUtils.cp(task_file_name(file), spool_filename)
|
|
240
240
|
end
|
|
241
241
|
end
|
|
@@ -718,7 +718,7 @@ module MCollective
|
|
|
718
718
|
http_get(path, "Accept" => "application/octet-stream") do |resp|
|
|
719
719
|
raise("Failed to request task content %s: %s: %s" % [path, resp.code, resp.body]) unless resp.code == "200"
|
|
720
720
|
|
|
721
|
-
FileUtils.mkdir_p(cache_dir, :
|
|
721
|
+
FileUtils.mkdir_p(cache_dir, mode: 0o0750) # rubocop:disable Style/HashSyntax
|
|
722
722
|
FileUtils.rm_rf(file_name) if File.directory?(file_name)
|
|
723
723
|
|
|
724
724
|
task_file = Tempfile.new("tasks_%s" % file["filename"])
|
data/lib/mcollective/util.rb
CHANGED
|
@@ -216,7 +216,8 @@ module MCollective
|
|
|
216
216
|
:collective => nil,
|
|
217
217
|
:discovery_method => nil,
|
|
218
218
|
:discovery_options => Config.instance.default_discovery_options,
|
|
219
|
-
:filter => empty_filter
|
|
219
|
+
:filter => empty_filter,
|
|
220
|
+
:federations => Config.instance.federations
|
|
220
221
|
}
|
|
221
222
|
end
|
|
222
223
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: choria-mcorpc-support
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.26.
|
|
4
|
+
version: 2.26.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- R.I.Pienaar
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-12-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: systemu
|
|
@@ -231,7 +231,7 @@ homepage: https://choria.io/
|
|
|
231
231
|
licenses:
|
|
232
232
|
- Apache-2.0
|
|
233
233
|
metadata: {}
|
|
234
|
-
post_install_message:
|
|
234
|
+
post_install_message:
|
|
235
235
|
rdoc_options: []
|
|
236
236
|
require_paths:
|
|
237
237
|
- lib
|
|
@@ -246,9 +246,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
246
246
|
- !ruby/object:Gem::Version
|
|
247
247
|
version: '0'
|
|
248
248
|
requirements: []
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
signing_key:
|
|
249
|
+
rubygems_version: 3.2.33
|
|
250
|
+
signing_key:
|
|
252
251
|
specification_version: 4
|
|
253
252
|
summary: Support libraries the Choria Server
|
|
254
253
|
test_files: []
|