Skip to content

Commit

Permalink
Refactor ipaddress method
Browse files Browse the repository at this point in the history
  • Loading branch information
fabiendupont committed Oct 11, 2018
1 parent edc88b3 commit fc8cd75
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 31 deletions.
11 changes: 3 additions & 8 deletions app/models/conversion_host.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,9 @@ def source_transport_method
return 'ssh' if ssh_transport_supported
end

def ipaddress(family = nil)
ips = ipaddresses
return ips.first unless %w(ipv4 ipv6).include?(family)
ips.select { |ip| IPAddr.new(ip).send("#{family}?") }.first
def ipaddress(family = 'ipv4')
return address if address && IPAddr.new(address).send("#{family}?")
resource.ipaddresses.detect { |ip| IPAddr.new(ip).send("#{family}?") }
end

def run_conversion(conversion_options)
Expand Down Expand Up @@ -97,10 +96,6 @@ def disable_conversion_host_role

private

def ipaddresses
resource.ipaddresses.unshift(address).unshift(resource.try(:ipaddress)).reject(&:blank?)
end

def check_resource_credentials(fatal = false, extra_msg = nil)
success = send("check_resource_credentials_#{resource.ext_management_system.emstype}")
if !success and fatal
Expand Down
25 changes: 2 additions & 23 deletions spec/models/conversion_host_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,9 @@
end

context "#ipaddress" do
it "it returns first IP addess if 'address' is nil" do
it "returns first IP address if 'address' is nil" do
expect(conversion_host_1.ipaddress).to eq('10.0.0.1')
expect(conversion_host_2.ipaddress).to eq('10.0.1.1')
expect(conversion_host_1.ipaddress('invalid')).to eq('10.0.0.1')
expect(conversion_host_2.ipaddress('invalid')).to eq('10.0.1.1')
expect(conversion_host_1.ipaddress('ipv4')).to eq('10.0.0.1')
expect(conversion_host_2.ipaddress('ipv4')).to eq('10.0.1.1')
expect(conversion_host_1.ipaddress('ipv6')).to eq('FE80:0000:0000:0000:0202:B3FF:FE1E:8329')
Expand All @@ -107,31 +105,12 @@

it "returns 'address' if family matches, is invalid or is nil" do
expect(conversion_host_1.ipaddress).to eq('172.16.0.1')
expect(conversion_host_2.ipaddress).to eq('2001:0DB8:85A3:0000:0000:8A2E:0370:7334')
expect(conversion_host_1.ipaddress('invalid')).to eq('172.16.0.1')
expect(conversion_host_2.ipaddress('invalid')).to eq('2001:0DB8:85A3:0000:0000:8A2E:0370:7334')
expect(conversion_host_2.ipaddress).to eq('10.0.1.1')
expect(conversion_host_1.ipaddress('ipv4')).to eq('172.16.0.1')
expect(conversion_host_2.ipaddress('ipv4')).to eq('10.0.1.1')
expect(conversion_host_1.ipaddress('ipv6')).to eq('FE80:0000:0000:0000:0202:B3FF:FE1E:8329')
expect(conversion_host_2.ipaddress('ipv6')).to eq('2001:0DB8:85A3:0000:0000:8A2E:0370:7334')
end

context "when resource.ipaddress is set" do
before do
allow(host).to receive(:ipaddress).and_return('192.168.0.1')
end

it "returns resource.ipaddress when resource is a Host" do
expect(conversion_host_1.ipaddress).to eq('192.168.0.1')
expect(conversion_host_2.ipaddress).to eq('2001:0DB8:85A3:0000:0000:8A2E:0370:7334')
expect(conversion_host_1.ipaddress('invalid')).to eq('192.168.0.1')
expect(conversion_host_2.ipaddress('invalid')).to eq('2001:0DB8:85A3:0000:0000:8A2E:0370:7334')
expect(conversion_host_1.ipaddress('ipv4')).to eq('192.168.0.1')
expect(conversion_host_2.ipaddress('ipv4')).to eq('10.0.1.1')
expect(conversion_host_1.ipaddress('ipv6')).to eq('FE80:0000:0000:0000:0202:B3FF:FE1E:8329')
expect(conversion_host_2.ipaddress('ipv6')).to eq('2001:0DB8:85A3:0000:0000:8A2E:0370:7334')
end
end
end
end

Expand Down

0 comments on commit fc8cd75

Please sign in to comment.