mongo-ruby-driver/test/replica_sets/rs_test_helper.rb

34 lines
721 B
Ruby

$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
require './test/test_helper'
require './test/tools/repl_set_manager'
module ReplicaSetTest
def self.rs
unless defined?(@rs)
@rs = ReplSetManager.new
@rs.start_set
end
@rs
end
def rs
ReplicaSetTest.rs
end
# Generic code for rescuing connection failures and retrying operations.
# This could be combined with some timeout functionality.
def rescue_connection_failure(max_retries=30)
retries = 0
begin
yield
rescue Mongo::ConnectionFailure => ex
puts "Rescue attempt #{retries}: from #{ex}"
retries += 1
raise ex if retries > max_retries
sleep(2)
retry
end
end
end