right_agent 2.4.5 → 2.4.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8180837ab6a7f6c7ad3368c26feafb8718dcca20
4
+ data.tar.gz: 7a32eab4484c4d5bb46c150813caa1a9ecd46f56
5
+ SHA512:
6
+ metadata.gz: 1ec91b652cdd3da73329e0618bd27f75d98fa6d0ddc5fa31e6a4680a8ac663c36019bd65a595d636b24005d24b3de2a2ad9640875776d66ac8ca8d822329b3b8
7
+ data.tar.gz: 28919cf8fc17ca7b23d0c96d05911b7fac92c3b9d14bfb35d616762cbee026e6f64d7a6261cf322ec7833261ae70ec3cb5238bdc791b9d0250c810a1e65f98df
@@ -676,10 +676,12 @@ 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)
679
680
  when "Request"
680
681
  options = {:from => event[:from], :token => event[:uuid], :reply_to => event[:reply_to], :tries => event[:tries]}
681
682
  packet = RightScale::Request.new(event[:path], event[:data], options)
682
683
  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)
683
685
  end
684
686
  packet
685
687
  end
@@ -168,6 +168,7 @@ 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
171
172
  #
172
173
  # === Block
173
174
  # Optional block used to process response asynchronously with the following parameter:
@@ -175,9 +176,10 @@ module RightScale
175
176
  #
176
177
  # === Return
177
178
  # true:: Always return true
178
- def queue_request(kind, type, payload, target, token, expires_at, &callback)
179
+ def queue_request(kind, type, payload, target, token, expires_at, skewed_by, &callback)
179
180
  request = {:kind => kind, :type => type, :payload => payload, :target => target,
180
- :token => token, :expires_at => expires_at, :callback => callback}
181
+ :token => token, :expires_at => expires_at, :skewed_by => skewed_by,
182
+ :callback => callback}
181
183
  Log.info("[offline] Queuing request: #{request.inspect}")
182
184
  vote_to_restart if (@restart_vote_count += 1) >= MAX_QUEUED_REQUESTS
183
185
  if @state == :initializing
@@ -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
- :tags, :tries
288
+ :skewed_by, :tags, :tries
289
289
 
290
290
  DEFAULT_OPTIONS = {:selector => :any}
291
291
 
@@ -306,6 +306,7 @@ 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
309
310
  # :tags(Array(Symbol)):: List of tags to be used for selecting target for this request
310
311
  # :tries(Array):: List of tokens for previous attempts to send this request
311
312
  # version(Array):: Protocol version of the original creator of the packet followed by the
@@ -324,6 +325,7 @@ module RightScale
324
325
  @target = opts[:target]
325
326
  @persistent = opts[:persistent]
326
327
  @expires_at = opts[:expires_at] || 0
328
+ @skewed_by = opts[:skewed_by] || 0
327
329
  @tags = opts[:tags] || []
328
330
  @tries = opts[:tries] || []
329
331
  @version = version
@@ -348,16 +350,17 @@ module RightScale
348
350
  def self.create(o)
349
351
  i = o['data']
350
352
  expires_at = if i.has_key?('created_at')
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
353
+ created_at = i['created_at'].to_i
354
+ created_at > 0 ? created_at + (15 * 60) : 0
355
+ else
356
+ i['expires_at']
357
+ end
356
358
  new(i['type'], i['payload'], { :from => self.compatible(i['from']), :scope => i['scope'],
357
359
  :token => i['token'], :reply_to => self.compatible(i['reply_to']),
358
360
  :selector => i['selector'], :target => self.compatible(i['target']),
359
361
  :persistent => i['persistent'], :tags => i['tags'],
360
- :expires_at => expires_at, :tries => i['tries'] },
362
+ :expires_at => expires_at, :skewed_by => i['skewed_by'],
363
+ :tries => i['tries'] },
361
364
  i['version'] || [DEFAULT_VERSION, DEFAULT_VERSION], o['size'])
362
365
  end
363
366
 
@@ -416,7 +419,7 @@ module RightScale
416
419
  class Push < Packet
417
420
 
418
421
  attr_accessor :from, :scope, :payload, :type, :token, :selector, :target, :persistent, :confirm,
419
- :expires_at, :tags
422
+ :expires_at, :skewed_by, :tags
420
423
 
421
424
  DEFAULT_OPTIONS = {:selector => :any}
422
425
 
@@ -437,6 +440,7 @@ module RightScale
437
440
  # to which request was published but not necessarily delivered
438
441
  # :expires_at(Integer|nil):: Time in seconds in Unix-epoch when this request expires and
439
442
  # 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
440
444
  # :tags(Array(Symbol)):: List of tags to be used for selecting target for this request
441
445
  # version(Array):: Protocol version of the original creator of the packet followed by the
442
446
  # protocol version of the packet contents to be used when sending
@@ -454,6 +458,7 @@ module RightScale
454
458
  @persistent = opts[:persistent]
455
459
  @confirm = opts[:confirm]
456
460
  @expires_at = opts[:expires_at] || 0
461
+ @skewed_by = opts[:skewed_by] || 0
457
462
  @tags = opts[:tags] || []
458
463
  @version = version
459
464
  @size = size
@@ -485,11 +490,11 @@ module RightScale
485
490
  # (Push):: New packet
486
491
  def self.create(o)
487
492
  i = o['data']
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']},
493
+ new(i['type'], i['payload'], { :from => self.compatible(i['from']), :scope => i['scope'],
494
+ :token => i['token'], :selector => i['selector'],
495
+ :target => self.compatible(i['target']), :persistent => i['persistent'],
496
+ :confirm => i['confirm'], :expires_at => i['expires_at'],
497
+ :skewed_by => i['skewed_by'], :tags => i['tags'] },
493
498
  i['version'] || [DEFAULT_VERSION, DEFAULT_VERSION], o['size'])
494
499
  end
495
500
 
@@ -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, &callback)
349
+ @offline_handler.queue_request(kind, type, payload, target, packet.token, packet.expires_at, packet.skewed_by, &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, &callback)
640
+ @offline_handler.queue_request(kind, packet.type, packet.payload, target, packet.token, packet.expires_at, packet.skewed_by, &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, &callback)
699
+ @offline_handler.queue_request(kind, packet.type, packet.payload, target, packet.token, packet.expires_at, packet.skewed_by, &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
@@ -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.4.5'
29
- spec.date = '2015-01-28'
28
+ spec.version = '2.4.6'
29
+ spec.date = '2015-09-16'
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'
@@ -196,14 +196,15 @@ 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
199
200
  @callback = lambda { |_| }
200
201
  end
201
202
 
202
203
  it "queues request at head of queue if still initializing" do
203
204
  @handler.init
204
- @handler.queue_request(@kind, @type, @payload, "target1", "token1", @expires_at, &@callback).should be_true
205
+ @handler.queue_request(@kind, @type, @payload, "target1", "token1", @expires_at, @skewed_by, &@callback).should be_true
205
206
  @handler.queue.size.should == 1
206
- @handler.queue_request(@kind, @type, @payload, "target2", "token2", @expires_at, &@callback).should be_true
207
+ @handler.queue_request(@kind, @type, @payload, "target2", "token2", @expires_at, @skewed_by, &@callback).should be_true
207
208
  @handler.queue.size.should == 2
208
209
  @handler.queue.first[:target] == "target2"
209
210
  end
@@ -211,9 +212,9 @@ describe RightScale::OfflineHandler do
211
212
  it "queues request at end of queue if no longer initializing" do
212
213
  @handler.init
213
214
  @handler.start
214
- @handler.queue_request(@kind, @type, @payload, "target1", "token1", @expires_at, &@callback)
215
+ @handler.queue_request(@kind, @type, @payload, "target1", "token1", @expires_at, @skewed_by, &@callback)
215
216
  @handler.queue.size.should == 1
216
- @handler.queue_request(@kind, @type, @payload, "target2", "token2", @expires_at, &@callback)
217
+ @handler.queue_request(@kind, @type, @payload, "target2", "token2", @expires_at, @skewed_by, &@callback)
217
218
  @handler.queue.size.should == 2
218
219
  @handler.queue.first[:target] == "target1"
219
220
  end
@@ -223,7 +224,7 @@ describe RightScale::OfflineHandler do
223
224
  @handler.start
224
225
  flexmock(@handler).should_receive(:vote_to_restart).once
225
226
  RightScale::OfflineHandler::MAX_QUEUED_REQUESTS.times do |i|
226
- @handler.queue_request(@kind, @type, @payload, @target, @token, @expires_at, &@callback)
227
+ @handler.queue_request(@kind, @type, @payload, @target, @token, @expires_at, @skewed_by, &@callback)
227
228
  end
228
229
  end
229
230
  end
@@ -249,6 +250,7 @@ describe RightScale::OfflineHandler do
249
250
  @now = Time.now
250
251
  flexmock(Time).should_receive(:now).and_return(@now)
251
252
  @expires_at = (@now + 25).to_i
253
+ @skewed_by = 1
252
254
  @result = nil
253
255
  @callback = lambda { |result| @result = result }
254
256
  end
@@ -259,9 +261,9 @@ describe RightScale::OfflineHandler do
259
261
  @handler.start
260
262
  flexmock(@handler).should_receive(:start_timer)
261
263
  @handler.enable
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)
264
+ @handler.queue_request(:send_push, @type, @payload, @target, @token, 0, 0)
265
+ @handler.queue_request(:send_request, @type, @payload, @target, @token, @expires_at, @skewed_by, &@callback)
266
+ @handler.queue_request(:send_request, @type, @payload, @target, @token, @now.to_i, @skewed_by, &@callback)
265
267
  @handler.queue.size.should == 3
266
268
  flexmock(EM).should_receive(:next_tick).and_yield.twice
267
269
  @sender.should_receive(:send_push).with(@type, @payload, @target, {:token => @token}).once.ordered
@@ -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, @callback).once
430
+ with(kind, @type, @payload, @target, @token, (@now + @ttl).to_i, 0, @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).once
782
+ with(:send_push, @type, @payload, @target, @token, (@now + @ttl).to_i, 0).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, @callback).once
795
+ with(:send_request, @type, @payload, @target, @token, (@now + @ttl).to_i, 0, @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).once
889
+ with(:send_push, @type, @payload, @target, @token, (@now + @ttl).to_i, 0).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
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: right_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.5
5
- prerelease:
4
+ version: 2.4.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Lee Kirchhoff
@@ -12,194 +11,164 @@ authors:
12
11
  autorequire:
13
12
  bindir: bin
14
13
  cert_chain: []
15
- date: 2015-01-28 00:00:00.000000000 Z
14
+ date: 2015-09-16 00:00:00.000000000 Z
16
15
  dependencies:
17
16
  - !ruby/object:Gem::Dependency
18
17
  name: right_support
19
18
  requirement: !ruby/object:Gem::Requirement
20
- none: false
21
19
  requirements:
22
- - - ! '>='
20
+ - - ">="
23
21
  - !ruby/object:Gem::Version
24
22
  version: 2.4.1
25
- - - <
23
+ - - "<"
26
24
  - !ruby/object:Gem::Version
27
25
  version: '3.0'
28
26
  type: :runtime
29
27
  prerelease: false
30
28
  version_requirements: !ruby/object:Gem::Requirement
31
- none: false
32
29
  requirements:
33
- - - ! '>='
30
+ - - ">="
34
31
  - !ruby/object:Gem::Version
35
32
  version: 2.4.1
36
- - - <
33
+ - - "<"
37
34
  - !ruby/object:Gem::Version
38
35
  version: '3.0'
39
36
  - !ruby/object:Gem::Dependency
40
37
  name: right_amqp
41
38
  requirement: !ruby/object:Gem::Requirement
42
- none: false
43
39
  requirements:
44
- - - ~>
40
+ - - "~>"
45
41
  - !ruby/object:Gem::Version
46
42
  version: '0.8'
47
43
  type: :runtime
48
44
  prerelease: false
49
45
  version_requirements: !ruby/object:Gem::Requirement
50
- none: false
51
46
  requirements:
52
- - - ~>
47
+ - - "~>"
53
48
  - !ruby/object:Gem::Version
54
49
  version: '0.8'
55
50
  - !ruby/object:Gem::Dependency
56
51
  name: rest-client
57
52
  requirement: !ruby/object:Gem::Requirement
58
- none: false
59
53
  requirements:
60
- - - ~>
54
+ - - "~>"
61
55
  - !ruby/object:Gem::Version
62
56
  version: 1.7.0.3
63
57
  type: :runtime
64
58
  prerelease: false
65
59
  version_requirements: !ruby/object:Gem::Requirement
66
- none: false
67
60
  requirements:
68
- - - ~>
61
+ - - "~>"
69
62
  - !ruby/object:Gem::Version
70
63
  version: 1.7.0.3
71
64
  - !ruby/object:Gem::Dependency
72
65
  name: faye-websocket
73
66
  requirement: !ruby/object:Gem::Requirement
74
- none: false
75
67
  requirements:
76
- - - ~>
68
+ - - "~>"
77
69
  - !ruby/object:Gem::Version
78
70
  version: 0.7.0
79
71
  type: :runtime
80
72
  prerelease: false
81
73
  version_requirements: !ruby/object:Gem::Requirement
82
- none: false
83
74
  requirements:
84
- - - ~>
75
+ - - "~>"
85
76
  - !ruby/object:Gem::Version
86
77
  version: 0.7.0
87
78
  - !ruby/object:Gem::Dependency
88
79
  name: eventmachine
89
80
  requirement: !ruby/object:Gem::Requirement
90
- none: false
91
81
  requirements:
92
- - - ! '>='
82
+ - - ">="
93
83
  - !ruby/object:Gem::Version
94
84
  version: 0.12.10
95
- - - <
85
+ - - "<"
96
86
  - !ruby/object:Gem::Version
97
87
  version: '2.0'
98
88
  type: :runtime
99
89
  prerelease: false
100
90
  version_requirements: !ruby/object:Gem::Requirement
101
- none: false
102
91
  requirements:
103
- - - ! '>='
92
+ - - ">="
104
93
  - !ruby/object:Gem::Version
105
94
  version: 0.12.10
106
- - - <
95
+ - - "<"
107
96
  - !ruby/object:Gem::Version
108
97
  version: '2.0'
109
98
  - !ruby/object:Gem::Dependency
110
99
  name: net-ssh
111
100
  requirement: !ruby/object:Gem::Requirement
112
- none: false
113
101
  requirements:
114
- - - ~>
102
+ - - "~>"
115
103
  - !ruby/object:Gem::Version
116
104
  version: '2.0'
117
105
  type: :runtime
118
106
  prerelease: false
119
107
  version_requirements: !ruby/object:Gem::Requirement
120
- none: false
121
108
  requirements:
122
- - - ~>
109
+ - - "~>"
123
110
  - !ruby/object:Gem::Version
124
111
  version: '2.0'
125
112
  - !ruby/object:Gem::Dependency
126
113
  name: ffi
127
114
  requirement: !ruby/object:Gem::Requirement
128
- none: false
129
115
  requirements:
130
- - - ! '>='
116
+ - - ">="
131
117
  - !ruby/object:Gem::Version
132
118
  version: '0'
133
119
  type: :runtime
134
120
  prerelease: false
135
121
  version_requirements: !ruby/object:Gem::Requirement
136
- none: false
137
122
  requirements:
138
- - - ! '>='
123
+ - - ">="
139
124
  - !ruby/object:Gem::Version
140
125
  version: '0'
141
126
  - !ruby/object:Gem::Dependency
142
127
  name: msgpack
143
128
  requirement: !ruby/object:Gem::Requirement
144
- none: false
145
129
  requirements:
146
- - - ! '>='
130
+ - - ">="
147
131
  - !ruby/object:Gem::Version
148
132
  version: 0.4.4
149
- - - <
133
+ - - "<"
150
134
  - !ruby/object:Gem::Version
151
135
  version: '0.6'
152
136
  type: :runtime
153
137
  prerelease: false
154
138
  version_requirements: !ruby/object:Gem::Requirement
155
- none: false
156
139
  requirements:
157
- - - ! '>='
140
+ - - ">="
158
141
  - !ruby/object:Gem::Version
159
142
  version: 0.4.4
160
- - - <
143
+ - - "<"
161
144
  - !ruby/object:Gem::Version
162
145
  version: '0.6'
163
146
  - !ruby/object:Gem::Dependency
164
147
  name: json
165
148
  requirement: !ruby/object:Gem::Requirement
166
- none: false
167
149
  requirements:
168
- - - ~>
150
+ - - "~>"
169
151
  - !ruby/object:Gem::Version
170
152
  version: '1.4'
171
153
  type: :runtime
172
154
  prerelease: false
173
155
  version_requirements: !ruby/object:Gem::Requirement
174
- none: false
175
156
  requirements:
176
- - - ~>
157
+ - - "~>"
177
158
  - !ruby/object:Gem::Version
178
159
  version: '1.4'
179
- description: ! 'RightAgent provides a foundation for running an agent on a server
180
- to interface
181
-
160
+ description: |
161
+ RightAgent provides a foundation for running an agent on a server to interface
182
162
  in a secure fashion with other agents in the RightScale system using RightNet,
183
-
184
163
  which operates in either HTTP or AMQP mode. When using HTTP, RightAgent
185
-
186
164
  makes requests to RightApi servers and receives requests using long-polling or
187
-
188
165
  WebSockets via the RightNet router. To respond to requests it posts to the
189
-
190
166
  HTTP router. When using AMQP, RightAgent uses RabbitMQ as the message bus and
191
-
192
167
  the RightNet router as the routing node to make requests; to receives requests
193
-
194
168
  routed to it by the RightNet router, it establishes a queue on startup. The
195
-
196
169
  packets are structured to invoke services in the agent represented by actors
197
-
198
170
  and methods. The RightAgent may respond to these requests with a result packet
199
-
200
171
  that the router then routes to the originator.
201
-
202
- '
203
172
  email: lee@rightscale.com
204
173
  executables: []
205
174
  extensions: []
@@ -393,33 +362,29 @@ files:
393
362
  - spec/tracer_spec.rb
394
363
  homepage: https://github.com/rightscale/right_agent
395
364
  licenses: []
365
+ metadata: {}
396
366
  post_install_message:
397
367
  rdoc_options:
398
- - --main
368
+ - "--main"
399
369
  - README.rdoc
400
- - --title
370
+ - "--title"
401
371
  - RightAgent
402
372
  require_paths:
403
373
  - lib
404
374
  required_ruby_version: !ruby/object:Gem::Requirement
405
- none: false
406
375
  requirements:
407
- - - ! '>='
376
+ - - ">="
408
377
  - !ruby/object:Gem::Version
409
378
  version: 1.8.7
410
379
  required_rubygems_version: !ruby/object:Gem::Requirement
411
- none: false
412
380
  requirements:
413
- - - ! '>='
381
+ - - ">="
414
382
  - !ruby/object:Gem::Version
415
383
  version: '0'
416
- segments:
417
- - 0
418
- hash: -1955218884392609250
419
384
  requirements: []
420
385
  rubyforge_project:
421
- rubygems_version: 1.8.26
386
+ rubygems_version: 2.2.3
422
387
  signing_key:
423
- specification_version: 3
388
+ specification_version: 4
424
389
  summary: Agent for interfacing server with RightScale system
425
390
  test_files: []