right_agent 0.10.9 → 0.10.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -222,7 +222,13 @@ module RightScale
222
222
  end
223
223
  end
224
224
  elsif status == :failed
225
- Log.error("Agent failed to connect to any brokers")
225
+ Log.error("Agent failed to connect to any brokers during startup")
226
+ EM.stop
227
+ elsif status == :timeout
228
+ Log.error("Agent failed to connect to any brokers after #{@options[:connect_timeout]} seconds during startup")
229
+ EM.stop
230
+ else
231
+ Log.error("Agent broker connect attempt failed unexpectedly with status #{status} during startup")
226
232
  EM.stop
227
233
  end
228
234
  end
@@ -465,14 +471,14 @@ module RightScale
465
471
  #
466
472
  # === Return
467
473
  # true:: Always return true
468
- def terminate(&blk)
474
+ def terminate(&block)
469
475
  begin
470
476
  if @terminating
471
477
  Log.info("[stop] Terminating immediately")
472
478
  @termination_timer.cancel if @termination_timer
473
479
  @termination_timer = nil
474
- blk.call if blk
475
- EM.stop
480
+ block.call if block
481
+ EM.stop if EM.reactor_running?
476
482
  else
477
483
  @terminating = true
478
484
  @check_status_timer.cancel if @check_status_timer
@@ -489,8 +495,7 @@ module RightScale
489
495
  request_count, request_age = @sender.terminate
490
496
  Log.info("[stop] The following #{request_count} requests initiated as recently as #{request_age} " +
491
497
  "seconds ago are being dropped:\n " + @sender.dump_requests.join("\n ")) if request_age
492
- @broker.close { blk.call; EM.stop }
493
- EM.stop unless blk
498
+ @broker.close { block.call if block; EM.stop if EM.reactor_running? }
494
499
  end
495
500
 
496
501
  wait_time = [timeout - (request_age || timeout), timeout - (dispatch_age || timeout), 0].max
@@ -508,16 +513,19 @@ module RightScale
508
513
  finish.call
509
514
  rescue Exception => e
510
515
  Log.error("Failed while finishing termination", e, :trace)
511
- EM.stop
516
+ EM.stop if EM.reactor_running?
512
517
  end
513
518
  end
514
519
  end
520
+ else
521
+ block.call if block
522
+ EM.stop if EM.reactor_running?
515
523
  end
516
524
  end
517
525
  end
518
526
  rescue Exception => e
519
527
  Log.error("Failed to terminate gracefully", e, :trace)
520
- EM.stop
528
+ EM.stop if EM.reactor_running?
521
529
  end
522
530
  true
523
531
  end
@@ -729,7 +737,7 @@ module RightScale
729
737
  EM.next_tick do
730
738
  begin
731
739
  terminate do
732
- EM.stop
740
+ EM.stop if EM.reactor_running?
733
741
  old.call if old.is_a? Proc
734
742
  end
735
743
  rescue Exception => e
@@ -24,8 +24,8 @@ require 'rubygems'
24
24
 
25
25
  Gem::Specification.new do |spec|
26
26
  spec.name = 'right_agent'
27
- spec.version = '0.10.9'
28
- spec.date = '2012-06-18'
27
+ spec.version = '0.10.10'
28
+ spec.date = '2012-06-25'
29
29
  spec.authors = ['Lee Kirchhoff', 'Raphael Simon', 'Tony Spataro']
30
30
  spec.email = 'lee@rightscale.com'
31
31
  spec.homepage = 'https://github.com/rightscale/right_agent'
@@ -37,7 +37,7 @@ Gem::Specification.new do |spec|
37
37
  spec.required_ruby_version = '>= 1.8.7'
38
38
  spec.require_path = 'lib'
39
39
 
40
- spec.add_dependency('right_support', '~> 1.3')
40
+ spec.add_dependency('right_support', ['>= 1.3', '< 3.0'])
41
41
  spec.add_dependency('right_amqp', '~> 0.3')
42
42
  spec.add_dependency('json', ['~> 1.4'])
43
43
  spec.add_dependency('eventmachine', '~> 0.12.10')
@@ -684,7 +684,7 @@ describe RightScale::Agent do
684
684
  @sender.should_receive(:terminate).and_return([1, 10]).twice
685
685
  @sender.should_receive(:dump_requests).and_return(["request"]).once
686
686
  @dispatcher.should_receive(:dispatch_age).and_return(10).once
687
- @broker.should_receive(:close).once
687
+ @broker.should_receive(:close).and_yield.once
688
688
  flexmock(EM::Timer).should_receive(:new).with(20, Proc).and_return(@timer).and_yield.once
689
689
  run_in_em(stop_event_loop = false) do
690
690
  @agent = RightScale::Agent.new(:user => "me", :identity => @identity)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: right_agent
3
3
  version: !ruby/object:Gem::Version
4
- hash: 37
4
+ hash: 35
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 10
9
- - 9
10
- version: 0.10.9
9
+ - 10
10
+ version: 0.10.10
11
11
  platform: ruby
12
12
  authors:
13
13
  - Lee Kirchhoff
@@ -17,20 +17,27 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2012-06-18 00:00:00 -07:00
20
+ date: 2012-06-25 00:00:00 -07:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
24
24
  version_requirements: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ~>
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  hash: 9
30
30
  segments:
31
31
  - 1
32
32
  - 3
33
33
  version: "1.3"
34
+ - - <
35
+ - !ruby/object:Gem::Version
36
+ hash: 7
37
+ segments:
38
+ - 3
39
+ - 0
40
+ version: "3.0"
34
41
  requirement: *id001
35
42
  name: right_support
36
43
  prerelease: false