1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/ecloud/models/compute/ip_address.rb

40 lines
1.2 KiB
Ruby
Raw Normal View History

2012-06-07 12:50:11 -04:00
module Fog
module Compute
class Ecloud
class IpAddress < Fog::Ecloud::Model
identity :href
attribute :name, :aliases => :Name
attribute :type, :aliases => :Type
2012-11-27 19:57:16 -05:00
attribute :other_links, :aliases => :Links, :squash => :Link
2012-06-07 12:50:11 -04:00
attribute :host, :aliases => :Host
attribute :detected_on, :aliases => :DetectedOn
attribute :rnat, :aliases => :RnatAddress
attribute :reserved, :aliases => :Reserved, :type => :boolean
def status
(detected_on || host) ? "Assigned" : "Available"
end
2012-11-27 19:57:16 -05:00
2012-06-07 12:50:11 -04:00
def id
2012-11-27 19:57:16 -05:00
href.match(/((\d+{1,3}\.){3}(\d+{1,3}))$/)[1]
end
def server
@server ||= begin
reload unless other_links
server_link = other_links.find{|l| l[:type] == "application/vnd.tmrk.cloud.virtualMachine"}
self.service.servers.get(server_link[:href])
2012-11-27 19:57:16 -05:00
end
end
def network
reload if other_links.nil?
network_href = other_links.detect { |l| l[:type] == "application/vnd.tmrk.cloud.network" }[:href]
network = self.service.networks.get(network_href)
2012-06-07 12:50:11 -04:00
end
end
end
end
end