right_agent 0.6.3 → 0.6.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -180,10 +180,142 @@ module RightScale
180
180
 
181
181
  # Provides utilities for managing volumes (disks).
182
182
  class VolumeManager
183
+
184
+ class ParserError < Exception; end
185
+ class VolumeError < Exception; end
186
+
183
187
  def initialize
184
- raise "not yet implemented"
188
+
185
189
  end
186
- end
190
+
191
+ # Gets a list of currently visible volumes in the form:
192
+ # [{:device, :label, :uuid, :type, :filesystem}]
193
+ #
194
+ # === Parameters
195
+ # conditions(Hash):: hash of conditions to match, or nil (default)
196
+ #
197
+ # === Return
198
+ # result(Array):: array of volume hashes, or an empty array
199
+ #
200
+ # === Raise
201
+ # VolumeError:: on failure to execute `blkid` to obtain raw output
202
+ # ParserError:: on failure to parse volume list
203
+ def volumes(conditions = nil)
204
+ exit_code, blkid_resp = blocking_popen('blkid')
205
+ raise VolumeError.new("Failed to list volumes exit code = #{exit_code}\nblkid\n#{blkid_resp}") unless exit_code == 0
206
+ return parse_volumes(blkid_resp, conditions)
207
+ end
208
+
209
+ # Parses raw output from `blkid` into a hash of volumes
210
+ #
211
+ # The hash will contain the device name with a key of :device, and each key value pair
212
+ # for the device. In order to keep parity with the Windows VolumeManager.parse_volumes
213
+ # method, the :type key will be duplicated as :filesystem
214
+ #
215
+ # Example of raw output from `blkid`
216
+ #
217
+ # /dev/xvdh1: SEC_TYPE="msdos" LABEL="METADATA" UUID="681B-8C5D" TYPE="vfat"
218
+ # /dev/xvdb1: LABEL="SWAP-xvdb1" UUID="d51fcca0-6b10-4934-a572-f3898dfd8840" TYPE="swap"
219
+ # /dev/xvda1: UUID="f4746f9c-0557-4406-9267-5e918e87ca2e" TYPE="ext3"
220
+ # /dev/xvda2: UUID="14d88b9e-9fe6-4974-a8d6-180acdae4016" TYPE="ext3"
221
+ #
222
+ # === Parameters
223
+ # output_text(String):: raw output from `blkid`
224
+ # conditions(Hash):: hash of conditions to match, or nil (default)
225
+ #
226
+ # === Return
227
+ # result(Array):: array of volume hashes, or an empty array
228
+ #
229
+ # === Raise
230
+ # ParserError:: on failure to parse volume list
231
+ def parse_volumes(output_text, conditions = nil)
232
+ results = []
233
+ output_text.each do |line|
234
+ volume = {}
235
+ line_regex = /^([\/a-z0-9]+):(.*)/
236
+ volmatch = line_regex.match(line)
237
+ raise ParserError.new("Failed to parse volume info from #{line.inspect} using #{line_regex.inspect}") unless volmatch
238
+ volume[:device] = volmatch[1]
239
+ volmatch[2].split(' ').each do |pair|
240
+ pair_regex = /([a-zA-Z_\-]+)=(.*)/
241
+ match = pair_regex.match(pair)
242
+ raise ParserError.new("Failed to parse volume info from #{pair} using #{pair_regex.inspect}") unless match
243
+ volume[:"#{match[1].downcase}"] = match[2].gsub('"', '')
244
+ # Make this as much like the windows output as possible
245
+ if match[1] == "TYPE"
246
+ volume[:filesystem] = match[2].gsub('"', '')
247
+ end
248
+ end
249
+ if conditions
250
+ matched = true
251
+ conditions.each do |key,value|
252
+
253
+ unless volume[key] == value
254
+ matched = false
255
+ break
256
+ end
257
+ end
258
+ results << volume if matched
259
+ else
260
+ results << volume
261
+ end
262
+ end
263
+ results
264
+ end
265
+
266
+ # Mounts a volume (returned by VolumeManager.volumes) to the mountpoint specified.
267
+ #
268
+ # === Parameters
269
+ # volume(Hash):: the volume hash returned by VolumeManager.volumes
270
+ # mountpoint(String):: the exact path where the device will be mounted ex: /mnt
271
+ #
272
+ # === Return
273
+ # always true
274
+ #
275
+ # === Raise
276
+ # ArgumentError:: on invalid parameters
277
+ # VolumeError:: on a failure to mount the device
278
+ def mount_volume(volume, mountpoint)
279
+ raise ArgumentError.new("Invalid volume = #{volume.inspect}") unless volume.is_a?(Hash) && volume[:device]
280
+ exit_code, mount_list_output = blocking_popen('mount')
281
+ raise VolumeError.new("Failed interrogation of current mounts; Exit Status: #{exit_code}\nError: #{mount_list_output}") unless exit_code == 0
282
+
283
+ device_match = /^#{volume[:device]} on (.+?)\s/.match(mount_list_output)
284
+ mountpoint_from_device_match = device_match ? device_match[1] : mountpoint
285
+ unless (mountpoint_from_device_match && mountpoint_from_device_match == mountpoint)
286
+ raise VolumeError.new("Attempted to mount volume \"#{volume[:device]}\" at \"#{mountpoint}\" but it was already mounted at #{mountpoint_from_device_match}")
287
+ end
288
+
289
+ mountpoint_match = /^(.+?) on #{mountpoint}/.match(mount_list_output)
290
+ device_from_mountpoint_match = mountpoint_match ? mountpoint_match[1] : volume[:device]
291
+ unless (device_from_mountpoint_match && device_from_mountpoint_match == volume[:device])
292
+ raise VolumeError.new("Attempted to mount volume \"#{volume[:device]}\" at \"#{mountpoint}\" but \"#{device_from_mountpoint_match}\" was already mounted there.")
293
+ end
294
+
295
+ # The volume is already mounted at the correct mountpoint
296
+ return true if /^#{volume[:device]} on #{mountpoint}/.match(mount_list_output)
297
+
298
+ # TODO: Maybe validate that the mountpoint is valid *nix path?
299
+ exit_code, mount_output = blocking_popen("mount -t #{volume[:filesystem].strip} #{volume[:device]} #{mountpoint}")
300
+ raise VolumeError.new("Failed to mount volume to \"#{mountpoint}\" with device \"#{volume[:device]}\"; Exit Status: #{exit_code}\nError: #{mount_output}") unless exit_code == 0
301
+ return true
302
+ end
303
+
304
+ # Runs the specified command synchronously using IO.popen
305
+ #
306
+ # === Parameters
307
+ # command(String):: system command to be executed
308
+ #
309
+ # === Return
310
+ # result(Array):: tuple of [exit_code, output_text]
311
+ def blocking_popen(command)
312
+ output_text = ""
313
+ IO.popen(command) do |io|
314
+ output_text = io.read
315
+ end
316
+ return $?.exitstatus, output_text
317
+ end
318
+ end # VolumeManager
187
319
 
188
320
  class Shell
189
321
 
@@ -202,8 +202,12 @@ module RightScale
202
202
  # true:: Always return true
203
203
  def start
204
204
  if @state == :initializing
205
- @state = :running
206
- flush unless @mode == :offline
205
+ if @mode == :offline
206
+ @state = :running
207
+ else
208
+ @state = :flushing
209
+ flush
210
+ end
207
211
  @mode = :online if @mode == :initializing
208
212
  end
209
213
  true
@@ -243,7 +247,7 @@ module RightScale
243
247
  Log.info("[offline] Disconnect from broker detected, entering offline mode")
244
248
  Log.info("[offline] Messages will be queued in memory until connection to broker is re-established")
245
249
  @offline_stats.update
246
- @queue ||= [] # ensure queue is valid without losing any messages when going offline
250
+ @queue ||= [] # Ensure queue is valid without losing any messages when going offline
247
251
  @mode = :offline
248
252
  start_timer
249
253
  end
data/right_agent.gemspec CHANGED
@@ -24,7 +24,7 @@ require 'rubygems'
24
24
 
25
25
  Gem::Specification.new do |spec|
26
26
  spec.name = 'right_agent'
27
- spec.version = '0.6.3'
27
+ spec.version = '0.6.6'
28
28
  spec.authors = ['Lee Kirchhoff', 'Raphael Simon', 'Tony Spataro']
29
29
  spec.email = 'lee@rightscale.com'
30
30
  spec.homepage = 'https://github.com/rightscale/right_agent'
@@ -37,7 +37,7 @@ Gem::Specification.new do |spec|
37
37
  spec.require_path = 'lib'
38
38
 
39
39
  spec.add_dependency('right_support', '~> 1.0')
40
- spec.add_dependency('amqp', '0.7.5')
40
+ spec.add_dependency('amqp', '0.6.7')
41
41
  spec.add_dependency('json', ['~> 1.4'])
42
42
  spec.add_dependency('eventmachine', '~> 0.12.10')
43
43
  spec.add_dependency('right_popen', '~> 1.0.11')
@@ -50,7 +50,7 @@ describe RightScale::BrokerClient do
50
50
  @amqp = flexmock(AMQP)
51
51
  @amqp.should_receive(:connect).and_return(@connection).by_default
52
52
  @channel.should_receive(:prefetch).never.by_default
53
- flexmock(AMQP::Channel).should_receive(:new).with(@connection).and_return(@channel).by_default
53
+ flexmock(MQ).should_receive(:new).with(@connection).and_return(@channel).by_default
54
54
  @island = flexmock("island", :id => 2, :broker_hosts => "local_host").by_default
55
55
  end
56
56
 
@@ -120,7 +120,7 @@ describe RightScale::BrokerClient do
120
120
  @connection.should_receive(:close).once
121
121
  @log.should_receive(:info).once
122
122
  @log.should_receive(:error).with(/Failed connecting/, Exception, :trace).once
123
- flexmock(AMQP::Channel).should_receive(:new).with(@connection).and_raise(Exception)
123
+ flexmock(MQ).should_receive(:new).with(@connection).and_raise(Exception)
124
124
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
125
125
  broker.summary.should == {:alias => "b0", :identity => @identity, :status => :failed,
126
126
  :disconnects => 0, :failures => 1, :retries => 0}
@@ -153,14 +153,14 @@ describe RightScale::BrokerClient do
153
153
  @channel.should_receive(:queue).and_return(@queue).by_default
154
154
  @channel.should_receive(:direct).and_return(@direct).by_default
155
155
  @channel.should_receive(:fanout).and_return(@fanout).by_default
156
- flexmock(AMQP::Channel).should_receive(:new).with(@connection).and_return(@channel).by_default
156
+ flexmock(MQ).should_receive(:new).with(@connection).and_return(@channel).by_default
157
157
  end
158
158
 
159
159
  it "should subscribe queue to exchange" do
160
160
  @queue.should_receive(:bind).and_return(@bind).once
161
161
  @bind.should_receive(:subscribe).once
162
162
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
163
- broker.__send__(:update_status, :connected)
163
+ broker.__send__(:update_status, :ready)
164
164
  broker.subscribe({:name => "queue"}, {:type => :direct, :name => "exchange"}) {|_, _|}
165
165
  end
166
166
 
@@ -168,7 +168,7 @@ describe RightScale::BrokerClient do
168
168
  @queue.should_receive(:bind).and_return(@bind).twice
169
169
  @bind.should_receive(:subscribe).once
170
170
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
171
- broker.__send__(:update_status, :connected)
171
+ broker.__send__(:update_status, :ready)
172
172
  options = {:exchange2 => {:type => :fanout, :name => "exchange2", :options => {:durable => true}}}
173
173
  broker.subscribe({:name => "queue"}, {:type => :direct, :name => "exchange"}, options) {|_, _|}
174
174
  end
@@ -182,7 +182,7 @@ describe RightScale::BrokerClient do
182
182
  it "should subscribe queue to empty exchange if no exchange specified" do
183
183
  @queue.should_receive(:subscribe).once
184
184
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
185
- broker.__send__(:update_status, :connected)
185
+ broker.__send__(:update_status, :ready)
186
186
  broker.subscribe({:name => "queue"}) {|b, p| p.should == nil}
187
187
  end
188
188
 
@@ -216,7 +216,7 @@ describe RightScale::BrokerClient do
216
216
  @info.should_receive(:ack).once
217
217
  @bind.should_receive(:subscribe).and_yield(@info, @message).once
218
218
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
219
- broker.__send__(:update_status, :connected)
219
+ broker.__send__(:update_status, :ready)
220
220
  result = broker.subscribe({:name => "queue"}, {:type => :direct, :name => "exchange"},
221
221
  :ack => true, RightScale::Request => true) {|b, p| p.should == @packet}
222
222
  result.should be_true
@@ -237,7 +237,7 @@ describe RightScale::BrokerClient do
237
237
  @serializer.should_receive(:load).with(@message).and_return(@packet).once
238
238
  @bind.should_receive(:subscribe).and_yield(@message).once
239
239
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
240
- broker.__send__(:update_status, :connected)
240
+ broker.__send__(:update_status, :ready)
241
241
  broker.subscribe({:name => "queue"}, {:type => :direct, :name => "exchange"},
242
242
  RightScale::Request => nil) {|b, p| p.class.should == RightScale::Request}
243
243
  end
@@ -250,7 +250,7 @@ describe RightScale::BrokerClient do
250
250
  @serializer.should_receive(:load).with(@message).and_return(@packet).once
251
251
  @bind.should_receive(:subscribe).and_yield(@message).once
252
252
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
253
- broker.__send__(:update_status, :connected)
253
+ broker.__send__(:update_status, :ready)
254
254
  result = broker.subscribe({:name => "queue"}, {:type => :direct, :name => "exchange"},
255
255
  RightScale::Request => nil) {|b, p| raise Exception}
256
256
  result.should be_false
@@ -263,7 +263,7 @@ describe RightScale::BrokerClient do
263
263
  @log.should_receive(:debug).with(/nil message ignored/).once
264
264
  @bind.should_receive(:subscribe).and_yield(@info, "nil").once
265
265
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
266
- broker.__send__(:update_status, :connected)
266
+ broker.__send__(:update_status, :ready)
267
267
  called = 0
268
268
  broker.subscribe({:name => "queue"}, {:type => :direct, :name => "exchange"}, :ack => true) { |b, m| called += 1 }
269
269
  called.should == 0
@@ -276,7 +276,7 @@ describe RightScale::BrokerClient do
276
276
  @log.should_receive(:debug).with(/nil message ignored/).once
277
277
  @bind.should_receive(:subscribe).and_yield("nil").once
278
278
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
279
- broker.__send__(:update_status, :connected)
279
+ broker.__send__(:update_status, :ready)
280
280
  called = 0
281
281
  broker.subscribe({:name => "queue"}, {:type => :direct, :name => "exchange"}) { |b, m| called += 1 }
282
282
  called.should == 0
@@ -288,7 +288,7 @@ describe RightScale::BrokerClient do
288
288
  @log.should_receive(:info).with(/^RECV/).never
289
289
  @bind.should_receive(:subscribe).and_yield(@message).once
290
290
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
291
- broker.__send__(:update_status, :connected)
291
+ broker.__send__(:update_status, :ready)
292
292
  broker.subscribe({:name => "queue"}, {:type => :direct, :name => "exchange"}, :no_unserialize => true) do |b, m|
293
293
  b.should == "rs-broker-localhost-5672"
294
294
  m.should == @message
@@ -302,7 +302,7 @@ describe RightScale::BrokerClient do
302
302
  @exceptions.should_receive(:track).once
303
303
  @bind.should_receive(:subscribe).and_raise(Exception)
304
304
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
305
- broker.__send__(:update_status, :connected)
305
+ broker.__send__(:update_status, :ready)
306
306
  result = broker.subscribe({:name => "queue"}, {:type => :direct, :name => "exchange"}) {|b, p|}
307
307
  result.should be_false
308
308
  end
@@ -422,7 +422,7 @@ describe RightScale::BrokerClient do
422
422
  @queue = flexmock("queue", :bind => @bind, :name => "queue1")
423
423
  @channel.should_receive(:queue).and_return(@queue).by_default
424
424
  @channel.should_receive(:direct).and_return(@direct).by_default
425
- flexmock(AMQP::Channel).should_receive(:new).with(@connection).and_return(@channel).by_default
425
+ flexmock(MQ).should_receive(:new).with(@connection).and_return(@channel).by_default
426
426
  end
427
427
 
428
428
  it "should unsubscribe a queue by name" do
@@ -472,7 +472,7 @@ describe RightScale::BrokerClient do
472
472
  context "when declaring" do
473
473
 
474
474
  before(:each) do
475
- flexmock(AMQP::Channel).should_receive(:new).with(@connection).and_return(@channel).by_default
475
+ flexmock(MQ).should_receive(:new).with(@connection).and_return(@channel).by_default
476
476
  @channel.should_receive(:queues).and_return({}).by_default
477
477
  @channel.should_receive(:exchanges).and_return({}).by_default
478
478
  end
@@ -524,14 +524,14 @@ describe RightScale::BrokerClient do
524
524
  @message = flexmock("message")
525
525
  @packet = flexmock("packet", :class => RightScale::Request, :to_s => true, :version => [12, 12]).by_default
526
526
  @direct = flexmock("direct")
527
- flexmock(AMQP::Channel).should_receive(:new).with(@connection).and_return(@channel).by_default
527
+ flexmock(MQ).should_receive(:new).with(@connection).and_return(@channel).by_default
528
528
  end
529
529
 
530
530
  it "should serialize message, publish it, and return true" do
531
531
  @channel.should_receive(:direct).with("exchange", :durable => true).and_return(@direct).once
532
532
  @direct.should_receive(:publish).with(@message, :persistent => true).once
533
533
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
534
- broker.__send__(:update_status, :connected)
534
+ broker.__send__(:update_status, :ready)
535
535
  broker.publish({:type => :direct, :name => "exchange", :options => {:durable => true}},
536
536
  @packet, @message, :persistent => true).should be_true
537
537
  end
@@ -540,7 +540,7 @@ describe RightScale::BrokerClient do
540
540
  @channel.should_receive(:direct).with("exchange", {:declare => true}).and_return(@direct)
541
541
  @direct.should_receive(:publish).with(@message, {})
542
542
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
543
- broker.__send__(:update_status, :connected)
543
+ broker.__send__(:update_status, :ready)
544
544
  exchange = {:type => :direct, :name => "exchange", :options => {:declare => true}}
545
545
  flexmock(broker).should_receive(:delete_amqp_resources).with(:direct, "exchange").once
546
546
  broker.publish(exchange, @packet, @message).should be_true
@@ -560,7 +560,7 @@ describe RightScale::BrokerClient do
560
560
  @channel.should_receive(:direct).and_raise(Exception)
561
561
  @direct.should_receive(:publish).with(@message, {}).never
562
562
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
563
- broker.__send__(:update_status, :connected)
563
+ broker.__send__(:update_status, :ready)
564
564
  broker.publish({:type => :direct, :name => "exchange"}, @packet, @message).should be_false
565
565
  end
566
566
 
@@ -570,7 +570,7 @@ describe RightScale::BrokerClient do
570
570
  @channel.should_receive(:direct).with("exchange", {}).and_return(@direct).once
571
571
  @direct.should_receive(:publish).with(@message, {}).once
572
572
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
573
- broker.__send__(:update_status, :connected)
573
+ broker.__send__(:update_status, :ready)
574
574
  broker.publish({:type => :direct, :name => "exchange"}, @packet, @message).should be_true
575
575
  end
576
576
 
@@ -582,7 +582,7 @@ describe RightScale::BrokerClient do
582
582
  @channel.should_receive(:direct).with("exchange", {}).and_return(@direct).once
583
583
  @direct.should_receive(:publish).with(@message, {}).once
584
584
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
585
- broker.__send__(:update_status, :connected)
585
+ broker.__send__(:update_status, :ready)
586
586
  broker.publish({:type => :direct, :name => "exchange"}, @packet, @message).should be_true
587
587
  end
588
588
 
@@ -592,7 +592,7 @@ describe RightScale::BrokerClient do
592
592
  @channel.should_receive(:direct).with("exchange", {}).and_return(@direct).once
593
593
  @direct.should_receive(:publish).with(@message, :no_log => true).once
594
594
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
595
- broker.__send__(:update_status, :connected)
595
+ broker.__send__(:update_status, :ready)
596
596
  broker.publish({:type => :direct, :name => "exchange"}, @packet, @message, :no_log => true).should be_true
597
597
  end
598
598
 
@@ -603,7 +603,7 @@ describe RightScale::BrokerClient do
603
603
  @channel.should_receive(:direct).with("exchange", {}).and_return(@direct).once
604
604
  @direct.should_receive(:publish).with(@message, :no_log => true).once
605
605
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
606
- broker.__send__(:update_status, :connected)
606
+ broker.__send__(:update_status, :ready)
607
607
  broker.publish({:type => :direct, :name => "exchange"}, @packet, @message, :no_log => true).should be_true
608
608
  end
609
609
 
@@ -613,7 +613,7 @@ describe RightScale::BrokerClient do
613
613
  @channel.should_receive(:direct).with("exchange", {}).and_return(@direct).once
614
614
  @direct.should_receive(:publish).with(@message, {}).once
615
615
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
616
- broker.__send__(:update_status, :connected)
616
+ broker.__send__(:update_status, :ready)
617
617
  broker.publish({:type => :direct, :name => "exchange"}, @packet, @message).should be_true
618
618
  end
619
619
 
@@ -625,7 +625,7 @@ describe RightScale::BrokerClient do
625
625
  @channel.should_receive(:direct).with("exchange", {}).and_return(@direct).once
626
626
  @direct.should_receive(:publish).with(@message, :log_filter => [:to]).once
627
627
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
628
- broker.__send__(:update_status, :connected)
628
+ broker.__send__(:update_status, :ready)
629
629
  broker.publish({:type => :direct, :name => "exchange"}, @packet, @message, :log_filter => [:to]).should be_true
630
630
  end
631
631
 
@@ -638,7 +638,7 @@ describe RightScale::BrokerClient do
638
638
  @channel.should_receive(:direct).with("exchange", {}).and_return(@direct).once
639
639
  @direct.should_receive(:publish).with(@message, :log_filter => [:to]).once
640
640
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
641
- broker.__send__(:update_status, :connected)
641
+ broker.__send__(:update_status, :ready)
642
642
  broker.publish({:type => :direct, :name => "exchange"}, @packet, @message, :log_filter => [:to]).should be_true
643
643
  end
644
644
 
@@ -648,7 +648,7 @@ describe RightScale::BrokerClient do
648
648
  @channel.should_receive(:direct).with("exchange", {}).and_return(@direct).once
649
649
  @direct.should_receive(:publish).with(@message, :log_data => "More data").once
650
650
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
651
- broker.__send__(:update_status, :connected)
651
+ broker.__send__(:update_status, :ready)
652
652
  broker.publish({:type => :direct, :name => "exchange"}, @packet, @message, :log_data => "More data").should be_true
653
653
  end
654
654
 
@@ -659,7 +659,7 @@ describe RightScale::BrokerClient do
659
659
  @channel.should_receive(:direct).with("exchange", {}).and_return(@direct).once
660
660
  @direct.should_receive(:publish).with(@message, {}).once
661
661
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
662
- broker.__send__(:update_status, :connected)
662
+ broker.__send__(:update_status, :ready)
663
663
  broker.publish({:type => :direct, :name => "exchange"}, @packet, @message).should be_true
664
664
  end
665
665
 
@@ -738,7 +738,7 @@ describe RightScale::BrokerClient do
738
738
  @queue = flexmock("queue", :bind => @bind, :name => "queue1")
739
739
  @channel.should_receive(:queue).and_return(@queue).by_default
740
740
  @channel.should_receive(:direct).and_return(@direct).by_default
741
- flexmock(AMQP::Channel).should_receive(:new).with(@connection).and_return(@channel).by_default
741
+ flexmock(MQ).should_receive(:new).with(@connection).and_return(@channel).by_default
742
742
  end
743
743
 
744
744
  it "should delete the named queue and return true" do
@@ -777,13 +777,13 @@ describe RightScale::BrokerClient do
777
777
  include RightScale::StatsHelper
778
778
 
779
779
  before(:each) do
780
- flexmock(AMQP::Channel).should_receive(:new).with(@connection).and_return(@channel).by_default
780
+ flexmock(MQ).should_receive(:new).with(@connection).and_return(@channel).by_default
781
781
  end
782
782
 
783
783
  it "should distinguish whether the client is usable based on whether connecting or connected" do
784
784
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
785
785
  broker.usable?.should be_true
786
- broker.__send__(:update_status, :connected)
786
+ broker.__send__(:update_status, :ready)
787
787
  broker.usable?.should be_true
788
788
  broker.__send__(:update_status, :disconnected)
789
789
  broker.usable?.should be_false
@@ -795,7 +795,7 @@ describe RightScale::BrokerClient do
795
795
  it "should distinguish whether the client is connected" do
796
796
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
797
797
  broker.connected?.should be_false
798
- broker.__send__(:update_status, :connected)
798
+ broker.__send__(:update_status, :ready)
799
799
  broker.connected?.should be_true
800
800
  broker.__send__(:update_status, :disconnected)
801
801
  broker.connected?.should be_false
@@ -807,7 +807,7 @@ describe RightScale::BrokerClient do
807
807
  it "should distinguish whether the client has failed" do
808
808
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
809
809
  broker.failed?.should be_false
810
- broker.__send__(:update_status, :connected)
810
+ broker.__send__(:update_status, :ready)
811
811
  broker.failed?.should be_false
812
812
  broker.__send__(:update_status, :disconnected)
813
813
  broker.failed?.should be_false
@@ -820,7 +820,7 @@ describe RightScale::BrokerClient do
820
820
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, @options)
821
821
  broker.summary.should == {:alias => "b0", :identity => @identity, :status => :connecting,
822
822
  :disconnects => 0, :failures => 0, :retries => 0}
823
- broker.__send__(:update_status, :connected)
823
+ broker.__send__(:update_status, :ready)
824
824
  broker.summary.should == {:alias => "b0", :identity => @identity, :status => :connected,
825
825
  :disconnects => 0, :failures => 0, :retries => 0}
826
826
  @log.should_receive(:error).with(/Failed to connect to broker/).once
@@ -834,7 +834,7 @@ describe RightScale::BrokerClient do
834
834
  broker.stats.should == {"alias" => "b0", "identity" => "rs-broker-localhost-5672",
835
835
  "status" => "connecting", "disconnects" => nil, "disconnect last" => nil,
836
836
  "failures" => nil, "failure last" => nil, "retries" => nil}
837
- broker.__send__(:update_status, :connected)
837
+ broker.__send__(:update_status, :ready)
838
838
  broker.stats.should == {"alias" => "b0", "identity" => "rs-broker-localhost-5672",
839
839
  "status" => "connected", "disconnects" => nil, "disconnect last" => nil,
840
840
  "failures" => nil, "failure last" => nil, "retries" => nil}
@@ -852,7 +852,7 @@ describe RightScale::BrokerClient do
852
852
  callback = lambda { |b, c| called += 1; b.should == broker; c.should == connected_before }
853
853
  options = {:update_status_callback => callback}
854
854
  broker = RightScale::BrokerClient.new(@identity, @address, @serializer, @exceptions, options)
855
- broker.__send__(:update_status, :connected)
855
+ broker.__send__(:update_status, :ready)
856
856
  broker.last_failed.should be_false
857
857
  called.should == 1
858
858
  connected_before = true
@@ -875,7 +875,7 @@ describe RightScale::BrokerClient do
875
875
  context "when closing" do
876
876
 
877
877
  before(:each) do
878
- flexmock(AMQP::Channel).should_receive(:new).with(@connection).and_return(@channel).by_default
878
+ flexmock(MQ).should_receive(:new).with(@connection).and_return(@channel).by_default
879
879
  end
880
880
 
881
881
  it "should close broker connection and send status update" do