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/vcloud/terremark/ecloud/models/public_ips.rb
freeformz 30446e5ac1 Servicify & Hashify & more requests
Many changes:

-Become more of a proper Fog Service.
-Drop most of the Collection/Model customizations.
-Add a hook for services to do something after #new with the instance
-Move to the ToHashDocument parser ... so no more having to actually
make parsers.
-Fog::Vcloud::Extension is kind of like Fog::Service, but for writing
extension modules to Fog::Vcloud.
-Fix up existing specs/mocks (they're not complete atm, but the existing
ones are up to date).
-Fog::Vcloud::Terremark::Ecloud gets almost all extensions implemented
(almost).
-Fog::Vcloud::Terremark::Ecloud bumped to working with the current TMRK
API release.
-Factor out some TMRK/ecloud specifc mock data into the ecloud module.
-Probably forgetting something.
2010-06-28 02:10:27 +08:00

48 lines
1.2 KiB
Ruby

module Fog
module Vcloud
module Terremark
module Ecloud
module Mock
def public_ips(options = {})
@public_ips ||= Fog::Vcloud::Terremark::Ecloud::PublicIps.new(options.merge(:connection => self))
end
end
module Real
def public_ips(options = {})
@public_ips ||= Fog::Vcloud::Terremark::Ecloud::PublicIps.new(options.merge(:connection => self))
end
end
class PublicIps < Fog::Vcloud::Collection
undef_method :create
attribute :href, :aliases => :Href
model Fog::Vcloud::Terremark::Ecloud::PublicIp
#get_request :get_public_ip
#vcloud_type "application/vnd.tmrk.ecloud.publicIp+xml"
#all_request lambda { |public_ips| public_ips.connection.get_public_ips(public_ips.href) }
def all
if data = connection.get_public_ips(href).body[:PublicIPAddress]
load(data)
end
end
def get(uri)
if data = connection.get_public_ip(uri)
new(data.body)
end
rescue Fog::Errors::NotFound
nil
end
end
end
end
end
end