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/network.rb

47 lines
1.5 KiB
Ruby
Raw Normal View History

module Fog
module Compute
class Ecloud
class Network < Fog::Ecloud::Model
identity :href
2012-11-27 19:57:16 -05:00
attribute :name, :aliases => :Name
attribute :type, :aliases => :Type
attribute :other_links, :aliases => :Links, :squash => :Link
attribute :address, :aliases => :Address
attribute :network_type, :aliases => :NetworkType
2012-06-07 12:50:11 -04:00
attribute :broadcast_address, :aliases => :BroadcastAddress
2012-11-27 19:57:16 -05:00
attribute :gateway_address, :aliases => :GatewayAddress
attribute :rnat_address, :aliases => :RnatAddress
2012-06-07 12:50:11 -04:00
def rnats
@rnats ||= Fog::Compute::Ecloud::Rnats.new(:service => service, :href => "cloudapi/ecloud/rnats/networks/#{id}")
end
2012-06-07 12:50:11 -04:00
def ips
@ips ||= Fog::Compute::Ecloud::IpAddresses.new(:service => service, :href => href)
end
2012-06-07 12:50:11 -04:00
def edit_rnat_association(options)
options[:uri] = href
data = service.rnat_associations_edit_network(options).body
task = Fog::Compute::Ecloud::Tasks.new(:service => service, :href => data[:href])[0]
end
2012-11-27 19:57:16 -05:00
2012-06-07 12:50:11 -04:00
def id
href.scan(/\d+/)[0]
end
2012-11-27 19:57:16 -05:00
def environment
reload if other_links.nil?
environment_href = other_links.detect { |l| l[:type] == "application/vnd.tmrk.cloud.environment" }[:href]
self.connection.environments.get(environment_href)
end
def location
environment.id
end
end
end
end
end