class OpenStack::Compute::Address

Constants

NON_ROUTABLE_ADDRESSES

Attributes

address[R]
label[R]
version[R]

Public Class Methods

fix_labels(addresses_info) click to toggle source

IN: { "private"=> [{"addr"=>"10.7.206.171", "version"=>4}, {"addr"=>"15.185.160.208", "version"=>4}]} OUT: { "private"=> [{"addr"=>"10.7.206.171", "version"=>4}],

"public"=>  [{"addr"=>"15.185.160.208", "version"=>4}] }
# File lib/openstack/compute/address.rb, line 50
def self.fix_labels(addresses_info)
  addresses_info.inject({"public"=>[], "private"=>[]}) do |res, (label,address_struct_list)|
    address_struct_list.each do |address_struct|
      if(address_struct["version"==6])#v6 addresses are all routable...
        res["public"] << address_struct
      else
        is_private?(address_struct["addr"])? res["private"] << address_struct : res["public"] << address_struct
      end
    end
    res
  end
end
is_private?(address_string) click to toggle source
# File lib/openstack/compute/address.rb, line 40
def self.is_private?(address_string)
  NON_ROUTABLE_ADDRESSES.each do |no_route|
    return true if no_route.include?(address_string)
  end
  false
end
new(label, address, version = 4) click to toggle source
# File lib/openstack/compute/address.rb, line 27
def initialize(label, address, version = 4)
  @label = label
  if address.class == Hash then
    @address = address["addr"]
    @version = address["version"]
  else
    @address = address
    @version = version
  end
end