fix errant use of net/http
This commit is contained in:
parent
2eb42462ba
commit
7733f7c70a
|
@ -1,5 +1,3 @@
|
||||||
require 'net/http'
|
|
||||||
require 'uri'
|
|
||||||
|
|
||||||
module Fog
|
module Fog
|
||||||
class CurrentMachine
|
class CurrentMachine
|
||||||
|
@ -29,9 +27,7 @@ module Fog
|
||||||
# @raise [Net::HTTPExceptions] if the net/http request fails.
|
# @raise [Net::HTTPExceptions] if the net/http request fails.
|
||||||
def self.ip_address
|
def self.ip_address
|
||||||
@@lock.synchronize do
|
@@lock.synchronize do
|
||||||
@@ip_address ||= Net::HTTP \
|
@@ip_address ||= Excon.get(AMAZON_AWS_CHECK_IP).body.chomp
|
||||||
.get_response(URI.parse(AMAZON_AWS_CHECK_IP)) \
|
|
||||||
.body.chomp
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,10 +3,19 @@ require 'fog/core/current_machine'
|
||||||
|
|
||||||
describe Fog::CurrentMachine do
|
describe Fog::CurrentMachine do
|
||||||
context '#ip_address' do
|
context '#ip_address' do
|
||||||
before(:each){ described_class.ip_address = nil }
|
around(:each) do |example|
|
||||||
|
old_mock = Excon.defaults[:mock]
|
||||||
|
described_class.ip_address = nil
|
||||||
|
begin
|
||||||
|
Excon.defaults[:mock] = true
|
||||||
|
example.run
|
||||||
|
ensure
|
||||||
|
Excon.defaults[:mock] = false
|
||||||
|
Excon.stubs.clear
|
||||||
|
end
|
||||||
|
end
|
||||||
it 'should be threadsafe' do
|
it 'should be threadsafe' do
|
||||||
Net::HTTP.should_receive(:get_response).once{ Struct.new(:body).new('') }
|
Excon.stub({:method => :get, :path => '/'}, {:body => ''})
|
||||||
|
|
||||||
(1..10).map {
|
(1..10).map {
|
||||||
Thread.new { described_class.ip_address }
|
Thread.new { described_class.ip_address }
|
||||||
|
@ -14,9 +23,10 @@ describe Fog::CurrentMachine do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should remove trailing endline characters' do
|
it 'should remove trailing endline characters' do
|
||||||
Net::HTTP.stub(:get_response){ Struct.new(:body).new("192.168.0.1\n") }
|
Excon.stub({:method => :get, :path => '/'}, {:body => "192.168.0.1\n"})
|
||||||
|
|
||||||
described_class.ip_address.should == '192.168.0.1'
|
described_class.ip_address.should == '192.168.0.1'
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
require 'spec'
|
require 'rspec'
|
||||||
require 'open-uri'
|
require 'open-uri'
|
||||||
require 'fog'
|
require 'fog'
|
||||||
require 'fog/bin'
|
require 'fog/bin'
|
||||||
|
|
Loading…
Reference in New Issue