right_agent 2.4.5 → 2.4.6

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.
@@ -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: []