mcollective-client 2.11.0 → 2.11.1
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.
- data/lib/mcollective.rb +1 -1
- data/lib/mcollective/data/result.rb +2 -1
- data/lib/mcollective/discovery.rb +1 -1
- data/lib/mcollective/facts/base.rb +2 -1
- data/lib/mcollective/rpc/client.rb +1 -1
- data/lib/mcollective/shell.rb +2 -2
- data/lib/mcollective/ssl.rb +2 -2
- data/lib/mcollective/validator/typecheck_validator.rb +1 -1
- data/spec/unit/mcollective/ddl_spec.rb +1 -1
- data/spec/unit/mcollective/ssl_spec.rb +3 -1
- metadata +2 -2
data/lib/mcollective.rb
CHANGED
@@ -23,7 +23,8 @@ module MCollective
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def []=(key, val)
|
26
|
-
|
26
|
+
# checks using the string representation of the class name to avoid deprecations on Bignum and Fixnum
|
27
|
+
raise "Can only store String, Integer, Float or Boolean data but got #{val.class} for key #{key}" unless ["String", "Integer", "Bignum", "Fixnum", "Float", "TrueClass", "FalseClass"].include?(val.class.to_s)
|
27
28
|
|
28
29
|
@data[key.to_sym] = val
|
29
30
|
end
|
@@ -125,7 +125,7 @@ module MCollective
|
|
125
125
|
end
|
126
126
|
|
127
127
|
def discover(filter, timeout, limit)
|
128
|
-
raise "Limit has to be an integer" unless limit.is_a?(
|
128
|
+
raise "Limit has to be an integer" unless limit.is_a?(Integer)
|
129
129
|
|
130
130
|
force_discovery_method_by_filter(filter)
|
131
131
|
|
@@ -8,6 +8,7 @@ module MCollective
|
|
8
8
|
# "bar" => "baz"}
|
9
9
|
class Base
|
10
10
|
def initialize
|
11
|
+
@mutex = Mutex.new
|
11
12
|
@facts = {}
|
12
13
|
@last_good_facts = {}
|
13
14
|
@last_facts_load = 0
|
@@ -24,7 +25,7 @@ module MCollective
|
|
24
25
|
|
25
26
|
cache_time = config.fact_cache_time || 300
|
26
27
|
|
27
|
-
|
28
|
+
@mutex.synchronize do
|
28
29
|
begin
|
29
30
|
if (Time.now.to_i - @last_facts_load > cache_time.to_i ) || force_reload?
|
30
31
|
Log.debug("Resetting facter cache, now: #{Time.now.to_i} last-known-good: #{@last_facts_load}")
|
@@ -566,7 +566,7 @@ module MCollective
|
|
566
566
|
# limit method then pass in the limit thus minimizing the amount
|
567
567
|
# of work we do in the discover phase and speeding it up significantly
|
568
568
|
filter = @filter.merge({'collective' => @collective})
|
569
|
-
if @limit_method == :first and @limit_targets.is_a?(
|
569
|
+
if @limit_method == :first and @limit_targets.is_a?(Integer)
|
570
570
|
@discovered_agents = @client.discover(filter, discovery_timeout, @limit_targets)
|
571
571
|
else
|
572
572
|
@discovered_agents = @client.discover(filter, discovery_timeout)
|
data/lib/mcollective/shell.rb
CHANGED
@@ -61,7 +61,7 @@ module MCollective
|
|
61
61
|
end
|
62
62
|
|
63
63
|
when "timeout"
|
64
|
-
raise "timeout should be a positive integer or the symbol :on_thread_exit symbol" unless val.eql?(:on_thread_exit) || ( val.is_a?(
|
64
|
+
raise "timeout should be a positive integer or the symbol :on_thread_exit symbol" unless val.eql?(:on_thread_exit) || ( val.is_a?(Integer) && val>0 )
|
65
65
|
@timeout = val
|
66
66
|
end
|
67
67
|
end
|
@@ -85,7 +85,7 @@ module MCollective
|
|
85
85
|
# guard thread reaping the pid on completion.
|
86
86
|
@status = systemu(@command, opts) do |cid|
|
87
87
|
begin
|
88
|
-
if timeout.is_a?(
|
88
|
+
if timeout.is_a?(Integer)
|
89
89
|
# wait for the specified timeout
|
90
90
|
sleep timeout
|
91
91
|
else
|
data/lib/mcollective/ssl.rb
CHANGED
@@ -142,7 +142,7 @@ module MCollective
|
|
142
142
|
|
143
143
|
# encrypts a string, returns a hash of key, iv and data
|
144
144
|
def aes_encrypt(plain_string)
|
145
|
-
cipher = OpenSSL::Cipher
|
145
|
+
cipher = OpenSSL::Cipher.new(ssl_cipher)
|
146
146
|
cipher.encrypt
|
147
147
|
|
148
148
|
key = cipher.random_key
|
@@ -156,7 +156,7 @@ module MCollective
|
|
156
156
|
|
157
157
|
# decrypts a string given key, iv and data
|
158
158
|
def aes_decrypt(key, crypt_string)
|
159
|
-
cipher = OpenSSL::Cipher
|
159
|
+
cipher = OpenSSL::Cipher.new(ssl_cipher)
|
160
160
|
|
161
161
|
cipher.decrypt
|
162
162
|
cipher.key = key
|
@@ -49,7 +49,7 @@ module MCollective
|
|
49
49
|
describe "#string_to_number" do
|
50
50
|
it "should turn valid strings into numbers" do
|
51
51
|
["1", "0", "9999"].each do |i|
|
52
|
-
DDL.string_to_number(i).
|
52
|
+
expect(DDL.string_to_number(i)).to be_a(Integer)
|
53
53
|
end
|
54
54
|
|
55
55
|
["1.1", "0.0", "9999.99"].each do |i|
|
@@ -168,9 +168,11 @@ module MCollective
|
|
168
168
|
data = @ssl.base64_decode("FkH6qLvKTn7a+uNPe8ciHA==")
|
169
169
|
|
170
170
|
# the default aes-256-cbc should fail here, the key above is 128 bit
|
171
|
-
# the exception classes changed mid-1.9.2 :(
|
171
|
+
# the exception classes changed mid-1.9.2 and again later in 2.4 :(
|
172
172
|
if OpenSSL.constants.include?("CipherError")
|
173
173
|
expect { @ssl.aes_decrypt(key, data) }.to raise_error(OpenSSL::CipherError)
|
174
|
+
elsif RUBY_VERSION =~ /^2\.4/
|
175
|
+
expect { @ssl.aes_decrypt(key, data) }.to raise_error(ArgumentError)
|
174
176
|
else
|
175
177
|
expect { @ssl.aes_decrypt(key, data) }.to raise_error(OpenSSL::Cipher::CipherError)
|
176
178
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mcollective-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.11.
|
4
|
+
version: 2.11.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-07-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: systemu
|