mcollective-client 2.2.2 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of mcollective-client might be problematic. Click here for more details.

@@ -20,7 +20,7 @@ module MCollective
20
20
  @mcversion = mcdependency[:mcversion] || mcversion
21
21
  @dependencies << {:name => "#{@mcname}-common", :version => @mcversion}
22
22
 
23
- @metadata[:name] = (name || @metadata[:name]).downcase.gsub(" ", "-")
23
+ @metadata[:name] = (name || @metadata[:name]).downcase.gsub(/\s+|_/, "-")
24
24
  identify_packages
25
25
  end
26
26
 
@@ -48,7 +48,7 @@ module MCollective
48
48
  else
49
49
  return nil
50
50
  end
51
- agent[:dependencies] << {:name => "#{@mcname}-#{@metadata[:name]}-common", :version => @metadata[:version], :iteration => @iteration}
51
+ agent[:plugindependency] = {:name => "#{@mcname}-#{@metadata[:name]}-common", :version => @metadata[:version], :iteration => @iteration}
52
52
  agent
53
53
  end
54
54
 
@@ -63,7 +63,7 @@ module MCollective
63
63
 
64
64
  client[:files] += Dir.glob(File.join(clientdir, "*")) if PluginPackager.check_dir_present clientdir
65
65
  client[:files] += Dir.glob(File.join(aggregatedir, "*")) if PluginPackager.check_dir_present aggregatedir
66
- client[:dependencies] << {:name => "#{@mcname}-#{@metadata[:name]}-common", :version => @metadata[:version], :iteration => @iteration}
66
+ client[:plugindependency] = {:name => "#{@mcname}-#{@metadata[:name]}-common", :version => @metadata[:version], :iteration => @iteration}
67
67
  client[:files].empty? ? nil : client
68
68
  end
69
69
 
@@ -19,7 +19,7 @@ module MCollective
19
19
  @mcname = mcdependency[:mcname] || "mcollective"
20
20
  @mcversion = mcdependency[:mcversion] || mcversion
21
21
  @dependencies << {:name => "#{mcname}-common", :version => @mcversion}
22
- @metadata[:name] = (name || @metadata[:name]).downcase.gsub(" ", "-")
22
+ @metadata[:name] = (name || @metadata[:name]).downcase.gsub(/\s+|_/, "-")
23
23
  identify_packages
24
24
  end
25
25
 
@@ -44,7 +44,7 @@ module MCollective
44
44
  return nil
45
45
  end
46
46
 
47
- plugindata[:dependencies] << {:name => "#{@mcname}-#{@metadata[:name]}-common",
47
+ plugindata[:plugindependency] = {:name => "#{@mcname}-#{@metadata[:name]}-common",
48
48
  :version => @metadata[:version],
49
49
  :iteration => @iteration} if @packagedata[:common]
50
50
  plugindata
@@ -39,12 +39,16 @@ module MCollective
39
39
  end
40
40
 
41
41
  @initial_options = initial_options
42
+
43
+ @config = initial_options[:config]
44
+ @client = MCollective::Client.new(@config)
45
+ @client.options = initial_options
46
+
42
47
  @stats = Stats.new
43
48
  @agent = agent
44
49
  @timeout = initial_options[:timeout] || 5
45
50
  @verbose = initial_options[:verbose]
46
51
  @filter = initial_options[:filter] || Util.empty_filter
47
- @config = initial_options[:config]
48
52
  @discovered_agents = nil
49
53
  @progress = initial_options[:progress_bar]
50
54
  @limit_targets = initial_options[:mcollective_limit_targets]
@@ -63,10 +67,7 @@ module MCollective
63
67
 
64
68
  agent_filter agent
65
69
 
66
- @client = MCollective::Client.new(@config)
67
- @client.options = initial_options
68
-
69
- @discovery_timeout = discovery_timeout
70
+ @discovery_timeout = @initial_options.fetch(:disctimeout, nil)
70
71
 
71
72
  @collective = @client.collective
72
73
  @ttl = initial_options[:ttl] || Config.instance.ttl
@@ -88,7 +89,7 @@ module MCollective
88
89
  # DDLs are required, failure to find a DDL is fatal
89
90
  @ddl = DDL.new(agent)
90
91
  @stats.ddl = @ddl
91
- @timeout = @ddl.meta[:timeout] + @discovery_timeout if @timeout == 5
92
+ @timeout = @ddl.meta[:timeout] + discovery_timeout if @timeout == 5
92
93
 
93
94
  # allows stderr and stdout to be overridden for testing
94
95
  # but also for web apps that might not want a bunch of stuff
@@ -321,10 +322,38 @@ module MCollective
321
322
  end
322
323
 
323
324
  def discovery_timeout
324
- return @initial_options[:disctimeout] if @initial_options[:disctimeout]
325
+ return @discovery_timeout if @discovery_timeout
325
326
  return @client.discoverer.ddl.meta[:timeout]
326
327
  end
327
328
 
329
+ def discovery_timeout=(timeout)
330
+ @discovery_timeout = Float(timeout)
331
+
332
+ # we calculate the overall timeout from the DDL of the agent and
333
+ # the supplied discovery timeout unless someone specifically
334
+ # specifies a timeout to the constructor
335
+ #
336
+ # But if we also then specifically set a discovery_timeout on the
337
+ # agent that has to override the supplied timeout so we then
338
+ # calculate a correct timeout based on DDL timeout and the
339
+ # supplied discovery timeout
340
+ @timeout = @ddl.meta[:timeout] + discovery_timeout
341
+ end
342
+
343
+ # Sets the discovery method. If we change the method there are a
344
+ # number of steps to take:
345
+ #
346
+ # - set the new method
347
+ # - if discovery options were provided, re-set those to initially
348
+ # provided ones else clear them as they might now apply to a
349
+ # different provider
350
+ # - update the client options so it knows there is a new discovery
351
+ # method in force
352
+ # - reset discovery data forcing a discover on the next request
353
+ #
354
+ # The remaining item is the discovery timeout, we leave that as is
355
+ # since that is the user supplied timeout either via initial options
356
+ # or via specifically setting it on the client.
328
357
  def discovery_method=(method)
329
358
  @discovery_method = method
330
359
 
@@ -335,7 +364,7 @@ module MCollective
335
364
  end
336
365
 
337
366
  @client.options = options
338
- @discovery_timeout = discovery_timeout
367
+
339
368
  reset
340
369
  end
341
370
 
@@ -520,7 +549,7 @@ module MCollective
520
549
  # Provides a normal options hash like you would get from
521
550
  # Optionparser
522
551
  def options
523
- {:disctimeout => @discovery_timeout,
552
+ {:disctimeout => discovery_timeout,
524
553
  :timeout => @timeout,
525
554
  :verbose => @verbose,
526
555
  :filter => @filter,
@@ -10,24 +10,36 @@ module MCollective
10
10
  end
11
11
 
12
12
  describe "#initialize" do
13
- it "should replace spaces in the package name with dashes" do
13
+
14
+ before do
14
15
  AgentDefinition.any_instance.expects(:common)
16
+ end
17
+
18
+ it "should replace spaces in the package name with dashes" do
15
19
  agent = AgentDefinition.new(".", "test package", nil, nil, nil, nil, [], {}, "agent")
16
20
  agent.metadata[:name].should == "test-package"
17
21
  end
18
22
 
19
23
  it "should set dependencies if present" do
20
- AgentDefinition.any_instance.expects(:common)
21
24
  agent = AgentDefinition.new(".", "test-package", nil, nil, nil, nil, [:name => "foo", :version => nil], {}, "agent")
22
25
  agent.dependencies.should == [{:name => "foo", :version => nil}, {:name => "mcollective-common", :version => nil}]
23
26
  end
24
27
 
25
28
  it "should set mc name and version" do
26
- AgentDefinition.any_instance.expects(:common)
27
29
  agent = AgentDefinition.new(".", "test-package", nil, nil, nil, nil, [], {:mcname =>"pe-mcollective-common", :mcversion =>"1.2"}, "agent")
28
30
  agent.mcname.should == "pe-mcollective-common"
29
31
  agent.mcversion.should == "1.2"
30
32
  end
33
+
34
+ it "should replace underscored with dashes in the name" do
35
+ agent = AgentDefinition.new(".", "test_package", nil, nil, nil, nil, [], {:mcname =>"pe-mcollective-common", :mcversion =>"1.2"}, "agent")
36
+ agent.metadata[:name].should == "test-package"
37
+ end
38
+
39
+ it "should replace whitespaces with a single dash in the name" do
40
+ agent = AgentDefinition.new(".", "test package", nil, nil, nil, nil, [], {:mcname =>"pe-mcollective-common", :mcversion =>"1.2"}, "agent")
41
+ agent.metadata[:name].should == "test-package"
42
+ end
31
43
  end
32
44
 
33
45
  describe "#identify_packages" do
@@ -77,8 +89,8 @@ module MCollective
77
89
  Dir.stubs(:glob).returns([])
78
90
 
79
91
  agent = AgentDefinition.new(".", nil, nil, nil, nil, nil, [], {}, "agent")
80
- agent.packagedata[:agent][:dependencies].should == [{:name => "mcollective-common", :version => nil},
81
- {:name => "mcollective-foo-common", :version =>1, :iteration => 1}]
92
+ agent.packagedata[:agent][:dependencies].should == [{:name => "mcollective-common", :version => nil}]
93
+ agent.packagedata[:agent][:plugindependency].should == {:name => "mcollective-foo-common", :version =>1, :iteration => 1}
82
94
  end
83
95
  end
84
96
 
@@ -152,8 +164,8 @@ module MCollective
152
164
  Dir.expects(:glob).with("aggregatedir/*").returns(["aggregate.rb"])
153
165
 
154
166
  client = AgentDefinition.new(".", nil, nil, nil, nil, nil, [], {}, "agent")
155
- client.packagedata[:client][:dependencies].should == [{:name => "mcollective-common", :version => nil},
156
- {:name => "mcollective-foo-common", :version => 1, :iteration => 1}]
167
+ client.packagedata[:client][:dependencies].should == [{:name => "mcollective-common", :version => nil}]
168
+ client.packagedata[:client][:plugindependency].should == {:name => "mcollective-foo-common", :version => 1, :iteration => 1}
157
169
  end
158
170
  end
159
171
  end
@@ -26,6 +26,16 @@ module MCollective
26
26
  plugin.mcname.should == "pe-mcollective"
27
27
  plugin.mcversion.should == "1"
28
28
  end
29
+
30
+ it "should replace underscores with dashes in the name" do
31
+ plugin = StandardDefinition.new(".", "test_plugin", nil, nil, nil, nil, [], {:mcname => "pe-mcollective", :mcversion => "1"}, "testplugin")
32
+ plugin.metadata[:name].should == "test-plugin"
33
+ end
34
+
35
+ it "should replace whitespaces with a single dash in the name" do
36
+ plugin = StandardDefinition.new(".", "test plugin", nil, nil, nil, nil, [], {:mcname => "pe-mcollective", :mcversion => "1"}, "testplugin")
37
+ plugin.metadata[:name].should == "test-plugin"
38
+ end
29
39
  end
30
40
 
31
41
  describe "#identify_packages" do
@@ -62,8 +72,8 @@ module MCollective
62
72
  Dir.expects(:glob).with("./testplugin/*").returns(["file.rb"])
63
73
  plugin = StandardDefinition.new(".", nil, nil, nil, nil, nil, [], {}, "testplugin")
64
74
  plugin.packagedata["testplugin"][:files].should == ["file.rb"]
65
- plugin.packagedata["testplugin"][:dependencies].should == [{:name => "mcollective-common", :version => nil},
66
- {:name => "mcollective-foo-common", :version => 1, :iteration => 1}]
75
+ plugin.packagedata["testplugin"][:dependencies].should == [{:name => "mcollective-common", :version => nil}]
76
+ plugin.packagedata["testplugin"][:plugindependency].should == {:name => "mcollective-foo-common", :version => 1, :iteration => 1}
67
77
  end
68
78
  end
69
79
 
@@ -50,6 +50,11 @@ module MCollective
50
50
  end
51
51
 
52
52
  describe "#initialize" do
53
+ it "should be deprecated" do
54
+ Log.expects(:info).with(regexp_matches(/please migrate to the/))
55
+ Stomp.new
56
+ end
57
+
53
58
  it "should set the @config variable" do
54
59
  c = Stomp.new
55
60
  c.instance_variable_get("@config").should == @config
@@ -50,6 +50,16 @@ module MCollective
50
50
 
51
51
  Client.new("foo", :options => {:config => "/nonexisting"})
52
52
  end
53
+
54
+ it "should default the discovery_timeout to nil" do
55
+ c = Client.new("rspec", :options => {:config => "/nonexisting"})
56
+ c.instance_variable_get("@discovery_timeout").should == nil
57
+ end
58
+
59
+ it "should accept a supplied discovery_timeout" do
60
+ c = Client.new("rspec", :options => {:config => "/nonexisting", :disctimeout => 10})
61
+ c.instance_variable_get("@discovery_timeout").should == 10
62
+ end
53
63
  end
54
64
 
55
65
  describe "#process_results_with_block" do
@@ -228,10 +238,16 @@ module MCollective
228
238
  @client.discovery_method = "rspec"
229
239
  end
230
240
 
231
- it "should adjust discovery timeout for the new method" do
241
+ it "should adjust timeout for the new method" do
232
242
  @client.expects(:discovery_timeout).once.returns(1)
233
243
  @client.discovery_method = "rspec"
234
- @client.instance_variable_get("@discovery_timeout").should == 1
244
+ @client.instance_variable_get("@timeout").should == 4
245
+ end
246
+
247
+ it "should preserve any user supplied discovery timeout" do
248
+ @client.discovery_timeout = 10
249
+ @client.discovery_method = "rspec"
250
+ @client.discovery_timeout.should == 10
235
251
  end
236
252
 
237
253
  it "should reset the rpc client" do
@@ -259,6 +275,21 @@ module MCollective
259
275
  end
260
276
  end
261
277
 
278
+ describe "#discovery_timeout=" do
279
+ it "should store the discovery timeout" do
280
+ @client.discovery_timeout = 10
281
+ @client.discovery_timeout.should == 10
282
+ end
283
+
284
+ it "should update the overall timeout with the new discovery timeout" do
285
+ @client.instance_variable_get("@timeout").should == 4
286
+
287
+ @client.discovery_timeout = 10
288
+
289
+ @client.instance_variable_get("@timeout").should == 12
290
+ end
291
+ end
292
+
262
293
  describe "#limit_method" do
263
294
  it "should force strings to symbols" do
264
295
  @client.limit_method = "first"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mcollective-client
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 2
9
- - 2
10
- version: 2.2.2
9
+ - 3
10
+ version: 2.2.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - R.I.Pienaar
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-01-17 00:00:00 Z
18
+ date: 2013-02-14 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: systemu