mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
4ffab4b18f
This is so the Live Specification can be accessed, which is expecially helpful in learning the ins and outs of Verizon's Enterprise Cloud. The Live Specification is available at /cloudapi/spec, and the hardcoded paths were hindering using it.
46 lines
1.5 KiB
Ruby
46 lines
1.5 KiB
Ruby
module Fog
|
|
module Compute
|
|
class Ecloud
|
|
class Network < Fog::Ecloud::Model
|
|
identity :href
|
|
|
|
attribute :name, :aliases => :Name
|
|
attribute :type, :aliases => :Type
|
|
attribute :other_links, :aliases => :Links, :squash => :Link
|
|
attribute :address, :aliases => :Address
|
|
attribute :network_type, :aliases => :NetworkType
|
|
attribute :broadcast_address, :aliases => :BroadcastAddress
|
|
attribute :gateway_address, :aliases => :GatewayAddress
|
|
attribute :rnat_address, :aliases => :RnatAddress
|
|
|
|
def rnats
|
|
@rnats ||= Fog::Compute::Ecloud::Rnats.new(:service => service, :href => "#{service.base_path}/rnats/networks/#{id}")
|
|
end
|
|
|
|
def ips
|
|
@ips ||= Fog::Compute::Ecloud::IpAddresses.new(:service => service, :href => href)
|
|
end
|
|
|
|
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
|
|
|
|
def id
|
|
href.scan(/\d+/)[0]
|
|
end
|
|
|
|
def environment
|
|
reload if other_links.nil?
|
|
environment_href = other_links.detect { |l| l[:type] == "application/vnd.tmrk.cloud.environment" }[:href]
|
|
self.service.environments.get(environment_href)
|
|
end
|
|
|
|
def location
|
|
environment.id
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|