right_agent 2.4.6 → 2.5.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.
- data/lib/right_agent/agent.rb +0 -2
- data/lib/right_agent/clients/router_client.rb +9 -0
- data/lib/right_agent/offline_handler.rb +2 -4
- data/lib/right_agent/packets.rb +13 -18
- data/lib/right_agent/sender.rb +3 -3
- data/right_agent.gemspec +3 -3
- data/spec/offline_handler_spec.rb +8 -10
- data/spec/sender_spec.rb +4 -4
- data/spec/spec_helper.rb +2 -2
- metadata +72 -37
- checksums.yaml +0 -7
data/lib/right_agent/agent.rb
CHANGED
@@ -676,12 +676,10 @@ module RightScale
|
|
676
676
|
when "Push"
|
677
677
|
packet = RightScale::Push.new(event[:path], event[:data], {:from => event[:from], :token => event[:uuid]})
|
678
678
|
packet.expires_at = event[:expires_at].to_i if event.has_key?(:expires_at)
|
679
|
-
packet.skewed_by = event[:skewed_by].to_i if event.has_key?(:skewed_by)
|
680
679
|
when "Request"
|
681
680
|
options = {:from => event[:from], :token => event[:uuid], :reply_to => event[:reply_to], :tries => event[:tries]}
|
682
681
|
packet = RightScale::Request.new(event[:path], event[:data], options)
|
683
682
|
packet.expires_at = event[:expires_at].to_i if event.has_key?(:expires_at)
|
684
|
-
packet.skewed_by = event[:skewed_by].to_i if event.has_key?(:skewed_by)
|
685
683
|
end
|
686
684
|
packet
|
687
685
|
end
|
@@ -462,10 +462,19 @@ module RightScale
|
|
462
462
|
@attempted_connect_at = Time.now
|
463
463
|
@close_code = @close_reason = nil
|
464
464
|
|
465
|
+
# Initialize use of proxy if defined
|
466
|
+
if (v = BalancedHttpClient::PROXY_ENVIRONMENT_VARIABLES.detect { |v| ENV.has_key?(v) })
|
467
|
+
proxy_uri = ENV[v].match(/^[[:alpha:]]+:\/\//) ? URI.parse(ENV[v]) : URI.parse("http://" + ENV[v])
|
468
|
+
@proxy = { :origin => proxy_uri.to_s }
|
469
|
+
end
|
470
|
+
|
465
471
|
options = {
|
466
472
|
# Limit to .auth_header here (rather than .headers) to keep WebSockets happy
|
467
473
|
:headers => {"X-API-Version" => API_VERSION}.merge(@auth_client.auth_header),
|
468
474
|
:ping => @options[:listen_timeout] }
|
475
|
+
|
476
|
+
options[:proxy] = @proxy if @proxy
|
477
|
+
|
469
478
|
url = URI.parse(@auth_client.router_url)
|
470
479
|
url.scheme = url.scheme == "https" ? "wss" : "ws"
|
471
480
|
url.path = url.path + "/connect"
|
@@ -168,7 +168,6 @@ module RightScale
|
|
168
168
|
# token(String):: Token uniquely identifying request
|
169
169
|
# expires_at(Integer):: Time in seconds in Unix-epoch when this request expires and
|
170
170
|
# is to be ignored by the receiver; value 0 means never expire
|
171
|
-
# skewed_by(Integer):: Amount of skew already applied to expires_at in seconds
|
172
171
|
#
|
173
172
|
# === Block
|
174
173
|
# Optional block used to process response asynchronously with the following parameter:
|
@@ -176,10 +175,9 @@ module RightScale
|
|
176
175
|
#
|
177
176
|
# === Return
|
178
177
|
# true:: Always return true
|
179
|
-
def queue_request(kind, type, payload, target, token, expires_at,
|
178
|
+
def queue_request(kind, type, payload, target, token, expires_at, &callback)
|
180
179
|
request = {:kind => kind, :type => type, :payload => payload, :target => target,
|
181
|
-
:token => token, :expires_at => expires_at, :
|
182
|
-
:callback => callback}
|
180
|
+
:token => token, :expires_at => expires_at, :callback => callback}
|
183
181
|
Log.info("[offline] Queuing request: #{request.inspect}")
|
184
182
|
vote_to_restart if (@restart_vote_count += 1) >= MAX_QUEUED_REQUESTS
|
185
183
|
if @state == :initializing
|
data/lib/right_agent/packets.rb
CHANGED
@@ -285,7 +285,7 @@ module RightScale
|
|
285
285
|
class Request < Packet
|
286
286
|
|
287
287
|
attr_accessor :from, :scope, :payload, :type, :token, :reply_to, :selector, :target, :persistent, :expires_at,
|
288
|
-
:
|
288
|
+
:tags, :tries
|
289
289
|
|
290
290
|
DEFAULT_OPTIONS = {:selector => :any}
|
291
291
|
|
@@ -306,7 +306,6 @@ module RightScale
|
|
306
306
|
# by the AMQP broker
|
307
307
|
# :expires_at(Integer|nil):: Time in seconds in Unix-epoch when this request expires and
|
308
308
|
# is to be ignored by the receiver; value 0 means never expire; defaults to 0
|
309
|
-
# :skewed_by(Integer|nil):: Amount of skew already applied to expires_at in seconds
|
310
309
|
# :tags(Array(Symbol)):: List of tags to be used for selecting target for this request
|
311
310
|
# :tries(Array):: List of tokens for previous attempts to send this request
|
312
311
|
# version(Array):: Protocol version of the original creator of the packet followed by the
|
@@ -325,7 +324,6 @@ module RightScale
|
|
325
324
|
@target = opts[:target]
|
326
325
|
@persistent = opts[:persistent]
|
327
326
|
@expires_at = opts[:expires_at] || 0
|
328
|
-
@skewed_by = opts[:skewed_by] || 0
|
329
327
|
@tags = opts[:tags] || []
|
330
328
|
@tries = opts[:tries] || []
|
331
329
|
@version = version
|
@@ -350,17 +348,16 @@ module RightScale
|
|
350
348
|
def self.create(o)
|
351
349
|
i = o['data']
|
352
350
|
expires_at = if i.has_key?('created_at')
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
351
|
+
created_at = i['created_at'].to_i
|
352
|
+
created_at > 0 ? created_at + (15 * 60) : 0
|
353
|
+
else
|
354
|
+
i['expires_at']
|
355
|
+
end
|
358
356
|
new(i['type'], i['payload'], { :from => self.compatible(i['from']), :scope => i['scope'],
|
359
357
|
:token => i['token'], :reply_to => self.compatible(i['reply_to']),
|
360
358
|
:selector => i['selector'], :target => self.compatible(i['target']),
|
361
359
|
:persistent => i['persistent'], :tags => i['tags'],
|
362
|
-
:expires_at => expires_at, :
|
363
|
-
:tries => i['tries'] },
|
360
|
+
:expires_at => expires_at, :tries => i['tries'] },
|
364
361
|
i['version'] || [DEFAULT_VERSION, DEFAULT_VERSION], o['size'])
|
365
362
|
end
|
366
363
|
|
@@ -419,7 +416,7 @@ module RightScale
|
|
419
416
|
class Push < Packet
|
420
417
|
|
421
418
|
attr_accessor :from, :scope, :payload, :type, :token, :selector, :target, :persistent, :confirm,
|
422
|
-
:expires_at, :
|
419
|
+
:expires_at, :tags
|
423
420
|
|
424
421
|
DEFAULT_OPTIONS = {:selector => :any}
|
425
422
|
|
@@ -440,7 +437,6 @@ module RightScale
|
|
440
437
|
# to which request was published but not necessarily delivered
|
441
438
|
# :expires_at(Integer|nil):: Time in seconds in Unix-epoch when this request expires and
|
442
439
|
# is to be ignored by the receiver; value 0 means never expire; defaults to 0
|
443
|
-
# :skewed_by(Integer|nil):: Amount of skew already applied to expires_at in seconds
|
444
440
|
# :tags(Array(Symbol)):: List of tags to be used for selecting target for this request
|
445
441
|
# version(Array):: Protocol version of the original creator of the packet followed by the
|
446
442
|
# protocol version of the packet contents to be used when sending
|
@@ -458,7 +454,6 @@ module RightScale
|
|
458
454
|
@persistent = opts[:persistent]
|
459
455
|
@confirm = opts[:confirm]
|
460
456
|
@expires_at = opts[:expires_at] || 0
|
461
|
-
@skewed_by = opts[:skewed_by] || 0
|
462
457
|
@tags = opts[:tags] || []
|
463
458
|
@version = version
|
464
459
|
@size = size
|
@@ -490,11 +485,11 @@ module RightScale
|
|
490
485
|
# (Push):: New packet
|
491
486
|
def self.create(o)
|
492
487
|
i = o['data']
|
493
|
-
new(i['type'], i['payload'], { :from
|
494
|
-
:token
|
495
|
-
:target
|
496
|
-
:confirm
|
497
|
-
:
|
488
|
+
new(i['type'], i['payload'], { :from => self.compatible(i['from']), :scope => i['scope'],
|
489
|
+
:token => i['token'], :selector => i['selector'],
|
490
|
+
:target => self.compatible(i['target']), :persistent => i['persistent'],
|
491
|
+
:confirm => i['confirm'], :expires_at => i['expires_at'],
|
492
|
+
:tags => i['tags']},
|
498
493
|
i['version'] || [DEFAULT_VERSION, DEFAULT_VERSION], o['size'])
|
499
494
|
end
|
500
495
|
|
data/lib/right_agent/sender.rb
CHANGED
@@ -346,7 +346,7 @@ module RightScale
|
|
346
346
|
end
|
347
347
|
|
348
348
|
if queueing?
|
349
|
-
@offline_handler.queue_request(kind, type, payload, target, packet.token, packet.expires_at,
|
349
|
+
@offline_handler.queue_request(kind, type, payload, target, packet.token, packet.expires_at, &callback)
|
350
350
|
nil
|
351
351
|
else
|
352
352
|
packet
|
@@ -637,7 +637,7 @@ module RightScale
|
|
637
637
|
result = error_result(e.message)
|
638
638
|
rescue Exceptions::ConnectivityFailure => e
|
639
639
|
if queueing?
|
640
|
-
@offline_handler.queue_request(kind, packet.type, packet.payload, target, packet.token, packet.expires_at,
|
640
|
+
@offline_handler.queue_request(kind, packet.type, packet.payload, target, packet.token, packet.expires_at, &callback)
|
641
641
|
result = nil
|
642
642
|
else
|
643
643
|
result = retry_result(e.message)
|
@@ -696,7 +696,7 @@ module RightScale
|
|
696
696
|
rescue TemporarilyOffline => e
|
697
697
|
if queueing?
|
698
698
|
# Queue request until come back online
|
699
|
-
@offline_handler.queue_request(kind, packet.type, packet.payload, target, packet.token, packet.expires_at,
|
699
|
+
@offline_handler.queue_request(kind, packet.type, packet.payload, target, packet.token, packet.expires_at, &callback)
|
700
700
|
@pending_requests.delete(packet.token) if callback
|
701
701
|
else
|
702
702
|
# Send retry response so that requester, e.g., RetryableRequest, can retry
|
data/right_agent.gemspec
CHANGED
@@ -25,8 +25,8 @@ require 'rbconfig'
|
|
25
25
|
|
26
26
|
Gem::Specification.new do |spec|
|
27
27
|
spec.name = 'right_agent'
|
28
|
-
spec.version = '2.
|
29
|
-
spec.date = '2015-
|
28
|
+
spec.version = '2.5.0'
|
29
|
+
spec.date = '2015-02-24'
|
30
30
|
spec.authors = ['Lee Kirchhoff', 'Raphael Simon', 'Tony Spataro', 'Scott Messier']
|
31
31
|
spec.email = 'lee@rightscale.com'
|
32
32
|
spec.homepage = 'https://github.com/rightscale/right_agent'
|
@@ -41,7 +41,7 @@ Gem::Specification.new do |spec|
|
|
41
41
|
spec.add_dependency('right_support', ['>= 2.4.1', '< 3.0'])
|
42
42
|
spec.add_dependency('right_amqp', '~> 0.8')
|
43
43
|
spec.add_dependency('rest-client', '~> 1.7.0.3')
|
44
|
-
spec.add_dependency('faye-websocket', '~> 0.
|
44
|
+
spec.add_dependency('faye-websocket', '~> 0.8.0')
|
45
45
|
spec.add_dependency('eventmachine', ['>= 0.12.10', '< 2.0'])
|
46
46
|
spec.add_dependency('net-ssh', '~> 2.0')
|
47
47
|
|
@@ -196,15 +196,14 @@ describe RightScale::OfflineHandler do
|
|
196
196
|
@now = Time.now
|
197
197
|
flexmock(Time).should_receive(:now).and_return(@now)
|
198
198
|
@expires_at = @now + 25
|
199
|
-
@skewed_by = 1
|
200
199
|
@callback = lambda { |_| }
|
201
200
|
end
|
202
201
|
|
203
202
|
it "queues request at head of queue if still initializing" do
|
204
203
|
@handler.init
|
205
|
-
@handler.queue_request(@kind, @type, @payload, "target1", "token1", @expires_at,
|
204
|
+
@handler.queue_request(@kind, @type, @payload, "target1", "token1", @expires_at, &@callback).should be_true
|
206
205
|
@handler.queue.size.should == 1
|
207
|
-
@handler.queue_request(@kind, @type, @payload, "target2", "token2", @expires_at,
|
206
|
+
@handler.queue_request(@kind, @type, @payload, "target2", "token2", @expires_at, &@callback).should be_true
|
208
207
|
@handler.queue.size.should == 2
|
209
208
|
@handler.queue.first[:target] == "target2"
|
210
209
|
end
|
@@ -212,9 +211,9 @@ describe RightScale::OfflineHandler do
|
|
212
211
|
it "queues request at end of queue if no longer initializing" do
|
213
212
|
@handler.init
|
214
213
|
@handler.start
|
215
|
-
@handler.queue_request(@kind, @type, @payload, "target1", "token1", @expires_at,
|
214
|
+
@handler.queue_request(@kind, @type, @payload, "target1", "token1", @expires_at, &@callback)
|
216
215
|
@handler.queue.size.should == 1
|
217
|
-
@handler.queue_request(@kind, @type, @payload, "target2", "token2", @expires_at,
|
216
|
+
@handler.queue_request(@kind, @type, @payload, "target2", "token2", @expires_at, &@callback)
|
218
217
|
@handler.queue.size.should == 2
|
219
218
|
@handler.queue.first[:target] == "target1"
|
220
219
|
end
|
@@ -224,7 +223,7 @@ describe RightScale::OfflineHandler do
|
|
224
223
|
@handler.start
|
225
224
|
flexmock(@handler).should_receive(:vote_to_restart).once
|
226
225
|
RightScale::OfflineHandler::MAX_QUEUED_REQUESTS.times do |i|
|
227
|
-
@handler.queue_request(@kind, @type, @payload, @target, @token, @expires_at,
|
226
|
+
@handler.queue_request(@kind, @type, @payload, @target, @token, @expires_at, &@callback)
|
228
227
|
end
|
229
228
|
end
|
230
229
|
end
|
@@ -250,7 +249,6 @@ describe RightScale::OfflineHandler do
|
|
250
249
|
@now = Time.now
|
251
250
|
flexmock(Time).should_receive(:now).and_return(@now)
|
252
251
|
@expires_at = (@now + 25).to_i
|
253
|
-
@skewed_by = 1
|
254
252
|
@result = nil
|
255
253
|
@callback = lambda { |result| @result = result }
|
256
254
|
end
|
@@ -261,9 +259,9 @@ describe RightScale::OfflineHandler do
|
|
261
259
|
@handler.start
|
262
260
|
flexmock(@handler).should_receive(:start_timer)
|
263
261
|
@handler.enable
|
264
|
-
@handler.queue_request(:send_push, @type, @payload, @target, @token, 0
|
265
|
-
@handler.queue_request(:send_request, @type, @payload, @target, @token, @expires_at,
|
266
|
-
@handler.queue_request(:send_request, @type, @payload, @target, @token, @now.to_i,
|
262
|
+
@handler.queue_request(:send_push, @type, @payload, @target, @token, 0)
|
263
|
+
@handler.queue_request(:send_request, @type, @payload, @target, @token, @expires_at, &@callback)
|
264
|
+
@handler.queue_request(:send_request, @type, @payload, @target, @token, @now.to_i, &@callback)
|
267
265
|
@handler.queue.size.should == 3
|
268
266
|
flexmock(EM).should_receive(:next_tick).and_yield.twice
|
269
267
|
@sender.should_receive(:send_push).with(@type, @payload, @target, {:token => @token}).once.ordered
|
data/spec/sender_spec.rb
CHANGED
@@ -427,7 +427,7 @@ describe RightScale::Sender do
|
|
427
427
|
@sender = create_sender(:http, :offline_queueing => true)
|
428
428
|
flexmock(@sender.offline_handler).should_receive(:queueing?).and_return(true)
|
429
429
|
flexmock(@sender.offline_handler).should_receive(:queue_request).
|
430
|
-
with(kind, @type, @payload, @target, @token, (@now + @ttl).to_i,
|
430
|
+
with(kind, @type, @payload, @target, @token, (@now + @ttl).to_i, @callback).once
|
431
431
|
@sender.build_packet(kind, @type, @payload, @target, @options, &@callback).should be nil
|
432
432
|
end
|
433
433
|
end
|
@@ -779,7 +779,7 @@ describe RightScale::Sender do
|
|
779
779
|
@sender.enable_offline_mode
|
780
780
|
@client.should_receive(:request).and_raise(RightScale::Exceptions::ConnectivityFailure, "disconnected").once
|
781
781
|
flexmock(@sender.offline_handler).should_receive(:queue_request).
|
782
|
-
with(:send_push, @type, @payload, @target, @token, (@now + @ttl).to_i
|
782
|
+
with(:send_push, @type, @payload, @target, @token, (@now + @ttl).to_i).once
|
783
783
|
flexmock(@sender).should_receive(:handle_response).never
|
784
784
|
@sender.send(:http_send_once, :send_push, @target, @packet, @received_at).should be_true
|
785
785
|
end
|
@@ -792,7 +792,7 @@ describe RightScale::Sender do
|
|
792
792
|
@sender.enable_offline_mode
|
793
793
|
@client.should_receive(:request).and_raise(RightScale::Exceptions::ConnectivityFailure, "disconnected").once
|
794
794
|
flexmock(@sender.offline_handler).should_receive(:queue_request).
|
795
|
-
with(:send_request, @type, @payload, @target, @token, (@now + @ttl).to_i,
|
795
|
+
with(:send_request, @type, @payload, @target, @token, (@now + @ttl).to_i, @callback).once
|
796
796
|
flexmock(@sender).should_receive(:handle_response).never
|
797
797
|
@sender.send(:http_send_once, :send_request, @target, @packet, @received_at, &@callback).should be_true
|
798
798
|
end
|
@@ -886,7 +886,7 @@ describe RightScale::Sender do
|
|
886
886
|
@sender.initialize_offline_queue
|
887
887
|
@sender.enable_offline_mode
|
888
888
|
flexmock(@sender.offline_handler).should_receive(:queue_request).
|
889
|
-
with(:send_push, @type, @payload, @target, @token, (@now + @ttl).to_i
|
889
|
+
with(:send_push, @type, @payload, @target, @token, (@now + @ttl).to_i).once
|
890
890
|
flexmock(@sender).should_receive(:amqp_send_once).and_raise(RightScale::Sender::TemporarilyOffline).once
|
891
891
|
@sender.send(:amqp_send, :send_push, @target, @packet, @received_at).should be_true
|
892
892
|
@sender.pending_requests[@token].should be_nil
|
data/spec/spec_helper.rb
CHANGED
@@ -103,5 +103,5 @@ def version_can_handle_msgpack_result; 12 end
|
|
103
103
|
def version_cannot_handle_non_delivery_result; 12 end
|
104
104
|
def version_can_handle_non_delivery_result; 13 end
|
105
105
|
|
106
|
-
def
|
107
|
-
def
|
106
|
+
def version_cannot_handle_http; 22 end
|
107
|
+
def version_can_handle_http; 23 end
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: right_agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Lee Kirchhoff
|
@@ -11,164 +12,194 @@ authors:
|
|
11
12
|
autorequire:
|
12
13
|
bindir: bin
|
13
14
|
cert_chain: []
|
14
|
-
date: 2015-
|
15
|
+
date: 2015-02-24 00:00:00.000000000 Z
|
15
16
|
dependencies:
|
16
17
|
- !ruby/object:Gem::Dependency
|
17
18
|
name: right_support
|
18
19
|
requirement: !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
19
21
|
requirements:
|
20
|
-
- -
|
22
|
+
- - ! '>='
|
21
23
|
- !ruby/object:Gem::Version
|
22
24
|
version: 2.4.1
|
23
|
-
- -
|
25
|
+
- - <
|
24
26
|
- !ruby/object:Gem::Version
|
25
27
|
version: '3.0'
|
26
28
|
type: :runtime
|
27
29
|
prerelease: false
|
28
30
|
version_requirements: !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
29
32
|
requirements:
|
30
|
-
- -
|
33
|
+
- - ! '>='
|
31
34
|
- !ruby/object:Gem::Version
|
32
35
|
version: 2.4.1
|
33
|
-
- -
|
36
|
+
- - <
|
34
37
|
- !ruby/object:Gem::Version
|
35
38
|
version: '3.0'
|
36
39
|
- !ruby/object:Gem::Dependency
|
37
40
|
name: right_amqp
|
38
41
|
requirement: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
39
43
|
requirements:
|
40
|
-
- -
|
44
|
+
- - ~>
|
41
45
|
- !ruby/object:Gem::Version
|
42
46
|
version: '0.8'
|
43
47
|
type: :runtime
|
44
48
|
prerelease: false
|
45
49
|
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
46
51
|
requirements:
|
47
|
-
- -
|
52
|
+
- - ~>
|
48
53
|
- !ruby/object:Gem::Version
|
49
54
|
version: '0.8'
|
50
55
|
- !ruby/object:Gem::Dependency
|
51
56
|
name: rest-client
|
52
57
|
requirement: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
53
59
|
requirements:
|
54
|
-
- -
|
60
|
+
- - ~>
|
55
61
|
- !ruby/object:Gem::Version
|
56
62
|
version: 1.7.0.3
|
57
63
|
type: :runtime
|
58
64
|
prerelease: false
|
59
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
60
67
|
requirements:
|
61
|
-
- -
|
68
|
+
- - ~>
|
62
69
|
- !ruby/object:Gem::Version
|
63
70
|
version: 1.7.0.3
|
64
71
|
- !ruby/object:Gem::Dependency
|
65
72
|
name: faye-websocket
|
66
73
|
requirement: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
67
75
|
requirements:
|
68
|
-
- -
|
76
|
+
- - ~>
|
69
77
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.
|
78
|
+
version: 0.8.0
|
71
79
|
type: :runtime
|
72
80
|
prerelease: false
|
73
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
74
83
|
requirements:
|
75
|
-
- -
|
84
|
+
- - ~>
|
76
85
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0.
|
86
|
+
version: 0.8.0
|
78
87
|
- !ruby/object:Gem::Dependency
|
79
88
|
name: eventmachine
|
80
89
|
requirement: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
81
91
|
requirements:
|
82
|
-
- -
|
92
|
+
- - ! '>='
|
83
93
|
- !ruby/object:Gem::Version
|
84
94
|
version: 0.12.10
|
85
|
-
- -
|
95
|
+
- - <
|
86
96
|
- !ruby/object:Gem::Version
|
87
97
|
version: '2.0'
|
88
98
|
type: :runtime
|
89
99
|
prerelease: false
|
90
100
|
version_requirements: !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
91
102
|
requirements:
|
92
|
-
- -
|
103
|
+
- - ! '>='
|
93
104
|
- !ruby/object:Gem::Version
|
94
105
|
version: 0.12.10
|
95
|
-
- -
|
106
|
+
- - <
|
96
107
|
- !ruby/object:Gem::Version
|
97
108
|
version: '2.0'
|
98
109
|
- !ruby/object:Gem::Dependency
|
99
110
|
name: net-ssh
|
100
111
|
requirement: !ruby/object:Gem::Requirement
|
112
|
+
none: false
|
101
113
|
requirements:
|
102
|
-
- -
|
114
|
+
- - ~>
|
103
115
|
- !ruby/object:Gem::Version
|
104
116
|
version: '2.0'
|
105
117
|
type: :runtime
|
106
118
|
prerelease: false
|
107
119
|
version_requirements: !ruby/object:Gem::Requirement
|
120
|
+
none: false
|
108
121
|
requirements:
|
109
|
-
- -
|
122
|
+
- - ~>
|
110
123
|
- !ruby/object:Gem::Version
|
111
124
|
version: '2.0'
|
112
125
|
- !ruby/object:Gem::Dependency
|
113
126
|
name: ffi
|
114
127
|
requirement: !ruby/object:Gem::Requirement
|
128
|
+
none: false
|
115
129
|
requirements:
|
116
|
-
- -
|
130
|
+
- - ! '>='
|
117
131
|
- !ruby/object:Gem::Version
|
118
132
|
version: '0'
|
119
133
|
type: :runtime
|
120
134
|
prerelease: false
|
121
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
none: false
|
122
137
|
requirements:
|
123
|
-
- -
|
138
|
+
- - ! '>='
|
124
139
|
- !ruby/object:Gem::Version
|
125
140
|
version: '0'
|
126
141
|
- !ruby/object:Gem::Dependency
|
127
142
|
name: msgpack
|
128
143
|
requirement: !ruby/object:Gem::Requirement
|
144
|
+
none: false
|
129
145
|
requirements:
|
130
|
-
- -
|
146
|
+
- - ! '>='
|
131
147
|
- !ruby/object:Gem::Version
|
132
148
|
version: 0.4.4
|
133
|
-
- -
|
149
|
+
- - <
|
134
150
|
- !ruby/object:Gem::Version
|
135
151
|
version: '0.6'
|
136
152
|
type: :runtime
|
137
153
|
prerelease: false
|
138
154
|
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
none: false
|
139
156
|
requirements:
|
140
|
-
- -
|
157
|
+
- - ! '>='
|
141
158
|
- !ruby/object:Gem::Version
|
142
159
|
version: 0.4.4
|
143
|
-
- -
|
160
|
+
- - <
|
144
161
|
- !ruby/object:Gem::Version
|
145
162
|
version: '0.6'
|
146
163
|
- !ruby/object:Gem::Dependency
|
147
164
|
name: json
|
148
165
|
requirement: !ruby/object:Gem::Requirement
|
166
|
+
none: false
|
149
167
|
requirements:
|
150
|
-
- -
|
168
|
+
- - ~>
|
151
169
|
- !ruby/object:Gem::Version
|
152
170
|
version: '1.4'
|
153
171
|
type: :runtime
|
154
172
|
prerelease: false
|
155
173
|
version_requirements: !ruby/object:Gem::Requirement
|
174
|
+
none: false
|
156
175
|
requirements:
|
157
|
-
- -
|
176
|
+
- - ~>
|
158
177
|
- !ruby/object:Gem::Version
|
159
178
|
version: '1.4'
|
160
|
-
description:
|
161
|
-
|
179
|
+
description: ! 'RightAgent provides a foundation for running an agent on a server
|
180
|
+
to interface
|
181
|
+
|
162
182
|
in a secure fashion with other agents in the RightScale system using RightNet,
|
183
|
+
|
163
184
|
which operates in either HTTP or AMQP mode. When using HTTP, RightAgent
|
185
|
+
|
164
186
|
makes requests to RightApi servers and receives requests using long-polling or
|
187
|
+
|
165
188
|
WebSockets via the RightNet router. To respond to requests it posts to the
|
189
|
+
|
166
190
|
HTTP router. When using AMQP, RightAgent uses RabbitMQ as the message bus and
|
191
|
+
|
167
192
|
the RightNet router as the routing node to make requests; to receives requests
|
193
|
+
|
168
194
|
routed to it by the RightNet router, it establishes a queue on startup. The
|
195
|
+
|
169
196
|
packets are structured to invoke services in the agent represented by actors
|
197
|
+
|
170
198
|
and methods. The RightAgent may respond to these requests with a result packet
|
199
|
+
|
171
200
|
that the router then routes to the originator.
|
201
|
+
|
202
|
+
'
|
172
203
|
email: lee@rightscale.com
|
173
204
|
executables: []
|
174
205
|
extensions: []
|
@@ -362,29 +393,33 @@ files:
|
|
362
393
|
- spec/tracer_spec.rb
|
363
394
|
homepage: https://github.com/rightscale/right_agent
|
364
395
|
licenses: []
|
365
|
-
metadata: {}
|
366
396
|
post_install_message:
|
367
397
|
rdoc_options:
|
368
|
-
-
|
398
|
+
- --main
|
369
399
|
- README.rdoc
|
370
|
-
-
|
400
|
+
- --title
|
371
401
|
- RightAgent
|
372
402
|
require_paths:
|
373
403
|
- lib
|
374
404
|
required_ruby_version: !ruby/object:Gem::Requirement
|
405
|
+
none: false
|
375
406
|
requirements:
|
376
|
-
- -
|
407
|
+
- - ! '>='
|
377
408
|
- !ruby/object:Gem::Version
|
378
409
|
version: 1.8.7
|
379
410
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
411
|
+
none: false
|
380
412
|
requirements:
|
381
|
-
- -
|
413
|
+
- - ! '>='
|
382
414
|
- !ruby/object:Gem::Version
|
383
415
|
version: '0'
|
416
|
+
segments:
|
417
|
+
- 0
|
418
|
+
hash: 1759897669862666077
|
384
419
|
requirements: []
|
385
420
|
rubyforge_project:
|
386
|
-
rubygems_version:
|
421
|
+
rubygems_version: 1.8.26
|
387
422
|
signing_key:
|
388
|
-
specification_version:
|
423
|
+
specification_version: 3
|
389
424
|
summary: Agent for interfacing server with RightScale system
|
390
425
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 8180837ab6a7f6c7ad3368c26feafb8718dcca20
|
4
|
-
data.tar.gz: 7a32eab4484c4d5bb46c150813caa1a9ecd46f56
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 1ec91b652cdd3da73329e0618bd27f75d98fa6d0ddc5fa31e6a4680a8ac663c36019bd65a595d636b24005d24b3de2a2ad9640875776d66ac8ca8d822329b3b8
|
7
|
-
data.tar.gz: 28919cf8fc17ca7b23d0c96d05911b7fac92c3b9d14bfb35d616762cbee026e6f64d7a6261cf322ec7833261ae70ec3cb5238bdc791b9d0250c810a1e65f98df
|