right_agent 0.5.1 → 0.5.10
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/right_agent.rb +3 -13
- data/lib/right_agent/actors/agent_manager.rb +78 -4
- data/lib/right_agent/agent.rb +81 -4
- data/lib/right_agent/agent_config.rb +17 -1
- data/lib/right_agent/agent_tags_manager.rb +2 -2
- data/lib/right_agent/broker_client.rb +32 -34
- data/lib/right_agent/command/agent_manager_commands.rb +16 -0
- data/lib/right_agent/command/command_constants.rb +0 -9
- data/lib/right_agent/dispatcher.rb +6 -3
- data/lib/right_agent/ha_broker_client.rb +63 -14
- data/lib/right_agent/log.rb +1 -1
- data/lib/right_agent/minimal.rb +43 -0
- data/lib/right_agent/monkey_patches/amqp_patch.rb +91 -182
- data/lib/right_agent/packets.rb +10 -5
- data/lib/right_agent/platform.rb +8 -0
- data/lib/right_agent/platform/darwin.rb +14 -0
- data/lib/right_agent/platform/linux.rb +23 -0
- data/lib/right_agent/platform/windows.rb +31 -0
- data/lib/right_agent/scripts/agent_controller.rb +16 -8
- data/lib/right_agent/scripts/agent_deployer.rb +6 -0
- data/lib/right_agent/scripts/log_level_manager.rb +4 -5
- data/lib/right_agent/scripts/stats_manager.rb +9 -1
- data/lib/right_agent/sender.rb +623 -371
- data/lib/right_agent/stats_helper.rb +15 -1
- data/lib/right_agent/tracer.rb +1 -1
- data/right_agent.gemspec +14 -15
- data/spec/agent_config_spec.rb +9 -0
- data/spec/agent_spec.rb +154 -18
- data/spec/broker_client_spec.rb +171 -170
- data/spec/dispatcher_spec.rb +24 -8
- data/spec/ha_broker_client_spec.rb +55 -33
- data/spec/monkey_patches/amqp_patch_spec.rb +12 -0
- data/spec/packets_spec.rb +2 -0
- data/spec/sender_spec.rb +140 -69
- data/spec/stats_helper_spec.rb +5 -0
- metadata +54 -53
data/spec/stats_helper_spec.rb
CHANGED
@@ -301,6 +301,7 @@ describe RightScale::StatsHelper do
|
|
301
301
|
{"alias" => "b2", "identity" => "rs-broker-localhost-5674", "status" => "failed",
|
302
302
|
"disconnect last" => nil, "disconnects" => nil,
|
303
303
|
"failure last" => {"elapsed" => 1000}, "failures" => 3, "retries" => 2}],
|
304
|
+
"heartbeat" => nil,
|
304
305
|
"exceptions" => {}}
|
305
306
|
end
|
306
307
|
|
@@ -437,12 +438,14 @@ describe RightScale::StatsHelper do
|
|
437
438
|
" b1: rs-broker-localhost-5673 disconnected, disconnects: 2 (16 min 40 sec ago), failures: none\n" +
|
438
439
|
" b2: rs-broker-localhost-5674 failed, disconnects: none, failures: 3 (16 min 40 sec ago w/ 2 retries)\n" +
|
439
440
|
" exceptions : none\n" +
|
441
|
+
" heartbeat : none\n" +
|
440
442
|
" returns : none\n"
|
441
443
|
end
|
442
444
|
|
443
445
|
it "should display broker exceptions and returns" do
|
444
446
|
@exceptions.track("testing", Exception.new("Test error"))
|
445
447
|
@brokers["exceptions"] = @exceptions.stats
|
448
|
+
@brokers["heartbeat"] = 60
|
446
449
|
activity = RightScale::StatsHelper::ActivityStats.new
|
447
450
|
activity.update("no queue")
|
448
451
|
activity.finish(@now - 10)
|
@@ -457,6 +460,7 @@ describe RightScale::StatsHelper do
|
|
457
460
|
" exceptions : testing total: 1, most recent:\n" +
|
458
461
|
" (1) Mon Jan 12 05:46:40 Exception: Test error\n" +
|
459
462
|
" \n" +
|
463
|
+
" heartbeat : 60 sec\n" +
|
460
464
|
" returns : no queue consumers: 67%, no queue: 33%, total: 3, \n" +
|
461
465
|
" last: no queue consumers (10 sec ago), rate: 0/sec\n"
|
462
466
|
end
|
@@ -616,6 +620,7 @@ describe RightScale::StatsHelper do
|
|
616
620
|
" b1: rs-broker-localhost-5673 disconnected, disconnects: 2 (16 min 40 sec ago), failures: none\n" +
|
617
621
|
" b2: rs-broker-localhost-5674 failed, disconnects: none, failures: 3 (16 min 40 sec ago w/ 2 retries)\n" +
|
618
622
|
" exceptions : none\n" +
|
623
|
+
" heartbeat : none\n" +
|
619
624
|
" returns : none\n" +
|
620
625
|
"stuff : activity % : testing: 100%, total: 1\n" +
|
621
626
|
" activity last : testing: 10 sec ago\n" +
|
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:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 0.5.
|
9
|
+
- 10
|
10
|
+
version: 0.5.10
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Lee Kirchhoff
|
@@ -17,68 +17,57 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2011-
|
20
|
+
date: 2011-11-03 00:00:00 -07:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
24
|
-
|
25
|
-
prerelease: false
|
26
|
-
name: right_support
|
27
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
28
25
|
none: false
|
29
26
|
requirements:
|
30
|
-
- -
|
27
|
+
- - ~>
|
31
28
|
- !ruby/object:Gem::Version
|
32
|
-
hash:
|
29
|
+
hash: 15
|
33
30
|
segments:
|
31
|
+
- 1
|
34
32
|
- 0
|
35
|
-
version: "0"
|
36
|
-
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
type: :runtime
|
33
|
+
version: "1.0"
|
34
|
+
name: right_support
|
39
35
|
prerelease: false
|
40
|
-
|
41
|
-
version_requirements:
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id001
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
40
|
none: false
|
43
41
|
requirements:
|
44
42
|
- - "="
|
45
43
|
- !ruby/object:Gem::Version
|
46
|
-
hash:
|
44
|
+
hash: 1
|
47
45
|
segments:
|
48
46
|
- 0
|
49
|
-
- 6
|
50
47
|
- 7
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
type: :runtime
|
48
|
+
- 1
|
49
|
+
version: 0.7.1
|
50
|
+
name: amqp
|
55
51
|
prerelease: false
|
56
|
-
|
57
|
-
version_requirements:
|
52
|
+
type: :runtime
|
53
|
+
version_requirements: *id002
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
58
56
|
none: false
|
59
57
|
requirements:
|
60
|
-
- -
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
hash: 15
|
63
|
-
segments:
|
64
|
-
- 1
|
65
|
-
- 4
|
66
|
-
- 4
|
67
|
-
version: 1.4.4
|
68
|
-
- - <=
|
58
|
+
- - ~>
|
69
59
|
- !ruby/object:Gem::Version
|
70
|
-
hash:
|
60
|
+
hash: 7
|
71
61
|
segments:
|
72
62
|
- 1
|
73
63
|
- 4
|
74
|
-
|
75
|
-
|
76
|
-
requirement: *id003
|
77
|
-
- !ruby/object:Gem::Dependency
|
78
|
-
type: :runtime
|
64
|
+
version: "1.4"
|
65
|
+
name: json
|
79
66
|
prerelease: false
|
80
|
-
|
81
|
-
version_requirements:
|
67
|
+
type: :runtime
|
68
|
+
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
82
71
|
none: false
|
83
72
|
requirements:
|
84
73
|
- - ~>
|
@@ -89,12 +78,12 @@ dependencies:
|
|
89
78
|
- 12
|
90
79
|
- 10
|
91
80
|
version: 0.12.10
|
92
|
-
|
93
|
-
- !ruby/object:Gem::Dependency
|
94
|
-
type: :runtime
|
81
|
+
name: eventmachine
|
95
82
|
prerelease: false
|
96
|
-
|
97
|
-
version_requirements:
|
83
|
+
type: :runtime
|
84
|
+
version_requirements: *id004
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
98
87
|
none: false
|
99
88
|
requirements:
|
100
89
|
- - ~>
|
@@ -105,12 +94,12 @@ dependencies:
|
|
105
94
|
- 0
|
106
95
|
- 11
|
107
96
|
version: 1.0.11
|
108
|
-
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
type: :runtime
|
97
|
+
name: right_popen
|
111
98
|
prerelease: false
|
112
|
-
|
113
|
-
version_requirements:
|
99
|
+
type: :runtime
|
100
|
+
version_requirements: *id005
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
114
103
|
none: false
|
115
104
|
requirements:
|
116
105
|
- - "="
|
@@ -121,8 +110,19 @@ dependencies:
|
|
121
110
|
- 4
|
122
111
|
- 4
|
123
112
|
version: 0.4.4
|
124
|
-
|
125
|
-
|
113
|
+
name: msgpack
|
114
|
+
prerelease: false
|
115
|
+
type: :runtime
|
116
|
+
version_requirements: *id006
|
117
|
+
description: |
|
118
|
+
RightAgent provides a foundation for running an agent on a server to interface
|
119
|
+
in a secure fashion with other agents in the RightScale system. A RightAgent
|
120
|
+
uses RabbitMQ as the message bus and the RightScale mapper as the routing node.
|
121
|
+
Servers running a RightAgent establish a queue on startup for receiving packets
|
122
|
+
routed to it via the mapper. The packets are structured to invoke services in
|
123
|
+
the agent represented by actors and methods. The RightAgent may respond to these
|
124
|
+
requests with a result packet that the mapper then routes to the originator.
|
125
|
+
|
126
126
|
email: lee@rightscale.com
|
127
127
|
executables: []
|
128
128
|
|
@@ -178,6 +178,7 @@ files:
|
|
178
178
|
- lib/right_agent/ha_broker_client.rb
|
179
179
|
- lib/right_agent/idempotent_request.rb
|
180
180
|
- lib/right_agent/log.rb
|
181
|
+
- lib/right_agent/minimal.rb
|
181
182
|
- lib/right_agent/monkey_patches.rb
|
182
183
|
- lib/right_agent/monkey_patches/amqp_patch.rb
|
183
184
|
- lib/right_agent/monkey_patches/ruby_patch.rb
|