mcollective-client 2.8.9 → 2.9.0
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.rb +1 -1
- data/lib/mcollective/connector/activemq.rb +30 -2
- data/lib/mcollective/connector/rabbitmq.rb +30 -3
- data/lib/mcollective/pluginpackager/debpackage_packager.rb +3 -3
- data/lib/mcollective/util.rb +55 -0
- data/spec/unit/mcollective/connector/activemq_spec.rb +2 -0
- data/spec/unit/mcollective/connector/rabbitmq_spec.rb +2 -0
- data/spec/unit/mcollective/packagers/debpackage_packager_spec.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65208c5aeb53a535cdcbf8d633f4bcb538c70f59
|
4
|
+
data.tar.gz: a7b6501a7b73dae8201d34e3d64275b5a184d369
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4473732cda0184dee2c04226516018fb28c41427d1bbd65426eb3ceea26c3337f9a7ad3799cc15d8f3eb335fab2e98f06b7ac6d9393e2aebf875ef5ad7569636
|
7
|
+
data.tar.gz: 6de6f9e59d3c284dcc3543a96843257a5230e1eace03ca21e87ea246f1540c86abe8bc7e6ebe97fb98675c5c15671bc07ca1fb61895029c7783a9f82881d9cea
|
data/lib/mcollective.rb
CHANGED
@@ -224,15 +224,43 @@ module MCollective
|
|
224
224
|
|
225
225
|
pools = Integer(get_option("activemq.pool.size"))
|
226
226
|
hosts = []
|
227
|
+
middleware_user = ''
|
228
|
+
middleware_password = ''
|
229
|
+
prompt_for_username = get_bool_option("activemq.prompt_user", "false")
|
230
|
+
prompt_for_password = get_bool_option("activemq.prompt_password", "false")
|
231
|
+
|
232
|
+
if prompt_for_username
|
233
|
+
Log.debug("No previous user exists and activemq.prompt-user is set to true")
|
234
|
+
print "Please enter user to connect to middleware: "
|
235
|
+
middleware_user = STDIN.gets.chomp
|
236
|
+
end
|
237
|
+
|
238
|
+
if prompt_for_password
|
239
|
+
Log.debug("No previous password exists and activemq.prompt-password is set to true")
|
240
|
+
middleware_password = MCollective::Util.get_hidden_input("Please enter password: ")
|
241
|
+
print "\n"
|
242
|
+
end
|
227
243
|
|
228
244
|
1.upto(pools) do |poolnum|
|
229
245
|
host = {}
|
230
246
|
|
231
247
|
host[:host] = get_option("activemq.pool.#{poolnum}.host")
|
232
248
|
host[:port] = get_option("activemq.pool.#{poolnum}.port", 61613).to_i
|
233
|
-
host[:login] = get_env_or_option("STOMP_USER", "activemq.pool.#{poolnum}.user", '')
|
234
|
-
host[:passcode] = get_env_or_option("STOMP_PASSWORD", "activemq.pool.#{poolnum}.password", '')
|
235
249
|
host[:ssl] = get_bool_option("activemq.pool.#{poolnum}.ssl", "false")
|
250
|
+
|
251
|
+
# read user from config file
|
252
|
+
host[:login] = get_env_or_option("STOMP_USER", "activemq.pool.#{poolnum}.user", middleware_user)
|
253
|
+
if prompt_for_username and host[:login] != middleware_user
|
254
|
+
Log.info("Using #{host[:login]} from config file to connect to #{host[:host]}. "+
|
255
|
+
"plugin.activemq.prompt_user should be set to false to remove the prompt.")
|
256
|
+
end
|
257
|
+
|
258
|
+
# read user from config file
|
259
|
+
host[:passcode] = get_env_or_option("STOMP_PASSWORD", "activemq.pool.#{poolnum}.password", middleware_password)
|
260
|
+
if prompt_for_password and host[:passcode] != middleware_password
|
261
|
+
Log.info("Using password from config file to connect to #{host[:host]}. "+
|
262
|
+
"plugin.activemq.prompt_password should be set to false to remove the prompt.")
|
263
|
+
end
|
236
264
|
|
237
265
|
# if ssl is enabled set :ssl to the hash of parameters
|
238
266
|
if host[:ssl]
|
@@ -118,16 +118,43 @@ module MCollective
|
|
118
118
|
|
119
119
|
pools = Integer(get_option("rabbitmq.pool.size"))
|
120
120
|
hosts = []
|
121
|
+
middleware_user = ''
|
122
|
+
middleware_password = ''
|
123
|
+
prompt_for_username = get_bool_option("rabbitmq.prompt_user", "false")
|
124
|
+
prompt_for_password = get_bool_option("rabbitmq.prompt_password", "false")
|
125
|
+
if prompt_for_username
|
126
|
+
Log.debug("No previous user exists and rabbitmq.prompt-user is set to true")
|
127
|
+
print "Please enter user to connect to middleware: "
|
128
|
+
middleware_user = STDIN.gets.chomp
|
129
|
+
end
|
121
130
|
|
131
|
+
if prompt_for_password
|
132
|
+
Log.debug("No previous password exists and rabbitmq.prompt-password is set to true")
|
133
|
+
middleware_password = MCollective::Util.get_hidden_input("Please enter password: ")
|
134
|
+
print "\n"
|
135
|
+
end
|
136
|
+
|
122
137
|
1.upto(pools) do |poolnum|
|
123
138
|
host = {}
|
124
139
|
|
125
140
|
host[:host] = get_option("rabbitmq.pool.#{poolnum}.host")
|
126
141
|
host[:port] = get_option("rabbitmq.pool.#{poolnum}.port", 61613).to_i
|
127
|
-
host[:login] = get_env_or_option("STOMP_USER", "rabbitmq.pool.#{poolnum}.user", '')
|
128
|
-
host[:passcode] = get_env_or_option("STOMP_PASSWORD", "rabbitmq.pool.#{poolnum}.password", '')
|
129
142
|
host[:ssl] = get_bool_option("rabbitmq.pool.#{poolnum}.ssl", "false")
|
130
|
-
|
143
|
+
|
144
|
+
# read user from config file
|
145
|
+
host[:login] = get_env_or_option("STOMP_USER", "rabbitmq.pool.#{poolnum}.user", middleware_user)
|
146
|
+
if prompt_for_username and host[:login] != middleware_user
|
147
|
+
Log.info("Using #{host[:login]} from config file to connect to #{host[:host]}. "+
|
148
|
+
"plugin.rabbitmq.prompt_user should be set to false to remove the prompt.")
|
149
|
+
end
|
150
|
+
|
151
|
+
# read password from config file
|
152
|
+
host[:passcode] = get_env_or_option("STOMP_PASSWORD", "rabbitmq.pool.#{poolnum}.password", middleware_password)
|
153
|
+
if prompt_for_password and host[:passcode] != middleware_password
|
154
|
+
Log.info("Using password from config file to connect to #{host[:host]}. "+
|
155
|
+
"plugin.rabbitmq.prompt_password should be set to false to remove the prompt.")
|
156
|
+
end
|
157
|
+
|
131
158
|
# if ssl is enabled set :ssl to the hash of parameters
|
132
159
|
if host[:ssl]
|
133
160
|
host[:ssl] = ssl_parameters(poolnum, get_bool_option("rabbitmq.pool.#{poolnum}.ssl.fallback", "false"))
|
@@ -91,11 +91,11 @@ module MCollective
|
|
91
91
|
dependencies = []
|
92
92
|
PluginPackager.filter_dependencies('debian', data[:dependencies]).each do |dep|
|
93
93
|
if dep[:version] && dep[:revision]
|
94
|
-
dependencies << "#{dep[:name]} (>=#{dep[:version]}-#{dep[:revision]})"
|
94
|
+
dependencies << "#{dep[:name]} (>=#{dep[:version]}-#{dep[:revision]}) | puppet-agent"
|
95
95
|
elsif dep[:version]
|
96
|
-
dependencies << "#{dep[:name]} (>=#{dep[:version]})"
|
96
|
+
dependencies << "#{dep[:name]} (>=#{dep[:version]}) | puppet-agent"
|
97
97
|
else
|
98
|
-
dependencies << dep[:name]
|
98
|
+
dependencies << "#{dep[:name]} | puppet-agent"
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
data/lib/mcollective/util.rb
CHANGED
@@ -520,5 +520,60 @@ module MCollective
|
|
520
520
|
number = (max_size/field_size).to_i
|
521
521
|
(number == 0) ? 1 : number
|
522
522
|
end
|
523
|
+
|
524
|
+
def self.get_hidden_input_on_windows()
|
525
|
+
require 'Win32API'
|
526
|
+
# Hook into getch from crtdll. Keep reading all keys till return
|
527
|
+
# or newline is hit.
|
528
|
+
# If key is backspace or delete, then delete the character and update
|
529
|
+
# the buffer.
|
530
|
+
input = ''
|
531
|
+
while char = Win32API.new("crtdll", "_getch", [ ], "I").Call do
|
532
|
+
break if char == 10 || char == 13 # return or newline
|
533
|
+
if char == 127 || char == 8 # backspace and delete
|
534
|
+
if input.length > 0
|
535
|
+
input.slice!(-1, 1)
|
536
|
+
end
|
537
|
+
else
|
538
|
+
input << char.chr
|
539
|
+
end
|
540
|
+
end
|
541
|
+
char = ''
|
542
|
+
input
|
543
|
+
end
|
544
|
+
|
545
|
+
def self.get_hidden_input_on_unix()
|
546
|
+
unless $stdin.tty?
|
547
|
+
raise 'Could not hook to stdin to hide input. If using SSH, try using -t flag while connecting to server.'
|
548
|
+
end
|
549
|
+
unless system 'stty -echo -icanon'
|
550
|
+
raise 'Could not hide input using stty command.'
|
551
|
+
end
|
552
|
+
input = $stdin.gets
|
553
|
+
ensure
|
554
|
+
unless system 'stty echo icanon'
|
555
|
+
raise 'Could not enable echoing of input. Try executing `stty echo icanon` to debug.'
|
556
|
+
end
|
557
|
+
input
|
558
|
+
end
|
559
|
+
|
560
|
+
def self.get_hidden_input(message='Please enter data: ')
|
561
|
+
unless message.nil?
|
562
|
+
print message
|
563
|
+
end
|
564
|
+
if versioncmp(ruby_version, '1.9.3') >= 0
|
565
|
+
require 'io/console'
|
566
|
+
input = $stdin.noecho(&:gets)
|
567
|
+
else
|
568
|
+
# Use hacks to get hidden input on Ruby <1.9.3
|
569
|
+
if self.windows?
|
570
|
+
input = self.get_hidden_input_on_windows()
|
571
|
+
else
|
572
|
+
input = self.get_hidden_input_on_unix()
|
573
|
+
end
|
574
|
+
end
|
575
|
+
input.chomp! if input
|
576
|
+
input
|
577
|
+
end
|
523
578
|
end
|
524
579
|
end
|
@@ -113,6 +113,8 @@ module MCollective
|
|
113
113
|
Activemq.any_instance.stubs(:get_option).with("activemq.max_hbrlck_fails", 0).returns(0)
|
114
114
|
Activemq.any_instance.stubs(:get_option).with("activemq.max_hbread_fails", 2).returns(2)
|
115
115
|
Activemq.any_instance.stubs(:get_bool_option).with("activemq.base64", 'false').returns(false)
|
116
|
+
Activemq.any_instance.stubs(:get_bool_option).with("activemq.prompt_user", 'false').returns(false)
|
117
|
+
Activemq.any_instance.stubs(:get_bool_option).with("activemq.prompt_password", 'false').returns(false)
|
116
118
|
Activemq.any_instance.stubs(:get_option).with("activemq.priority", 0).returns(0)
|
117
119
|
Activemq.any_instance.stubs(:get_option).with("activemq.pool.size").returns(2)
|
118
120
|
Activemq.any_instance.stubs(:get_option).with("activemq.pool.1.host").returns("host1")
|
@@ -114,6 +114,8 @@ module MCollective
|
|
114
114
|
Rabbitmq.any_instance.stubs(:get_option).with("rabbitmq.max_hbrlck_fails", 0).returns(0)
|
115
115
|
Rabbitmq.any_instance.stubs(:get_option).with("rabbitmq.max_hbread_fails", 2).returns(2)
|
116
116
|
Rabbitmq.any_instance.stubs(:get_bool_option).with("rabbitmq.base64", 'false').returns(false)
|
117
|
+
Rabbitmq.any_instance.stubs(:get_bool_option).with("rabbitmq.prompt_user", 'false').returns(false)
|
118
|
+
Rabbitmq.any_instance.stubs(:get_bool_option).with("rabbitmq.prompt_password", 'false').returns(false)
|
117
119
|
Rabbitmq.any_instance.stubs(:get_option).with("rabbitmq.pool.size").returns(2)
|
118
120
|
Rabbitmq.any_instance.stubs(:get_option).with("rabbitmq.pool.1.host").returns("host1")
|
119
121
|
Rabbitmq.any_instance.stubs(:get_option).with("rabbitmq.pool.1.port", 61613).returns(6163)
|
@@ -132,7 +132,7 @@ module MCollective
|
|
132
132
|
it 'should create the correct dependency string' do
|
133
133
|
PluginPackager.expects(:filter_dependencies).with('debian', data[:dependencies]).returns(data[:dependencies])
|
134
134
|
result = packager.send(:build_dependency_string, data)
|
135
|
-
result.should == 'dep1, dep2 (>=1.1), dep3 (>=1.1-2), mcollective-rspec-common (= ${binary:Version})'
|
135
|
+
result.should == 'dep1 | puppet-agent, dep2 (>=1.1) | puppet-agent, dep3 (>=1.1-2) | puppet-agent, mcollective-rspec-common (= ${binary:Version})'
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mcollective-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: systemu
|