mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[terremark] mock get_network
This commit is contained in:
parent
849f48154a
commit
c430e980f5
1 changed files with 38 additions and 1 deletions
|
@ -26,7 +26,44 @@ module Fog
|
|||
module Mock
|
||||
|
||||
def get_network(network_id)
|
||||
raise MockNotImplemented.new("Contributions welcome!")
|
||||
response = Excon::Response.new
|
||||
if network = @data[:organizations].map { |org| org[:vdcs].map { |vdc| vdc[:networks] } }.flatten.detect { |network| network[:id] == network_id }
|
||||
|
||||
body = { "links" => [],
|
||||
"type" => "application/vnd.vmware.vcloud.network+xml",
|
||||
"href" => "#{@base_url}/network/#{network_id}" }
|
||||
|
||||
network.each_key do |key|
|
||||
body[key.to_s] = network[key]
|
||||
end
|
||||
|
||||
link = { "name" => "IP Addresses",
|
||||
"rel" => "down",
|
||||
"type" => "application/xml" }
|
||||
link["href"] = case self
|
||||
when Fog::Terremark::Ecloud::Mock
|
||||
"#{@base_url}/extensions/network/#{network_id}/ips"
|
||||
when Fog::Terremark::Vcloud::Mock
|
||||
"#{@base_url}/network/#{network_id}/ipAddresses"
|
||||
end
|
||||
body["links"] << link
|
||||
|
||||
response.status = 200
|
||||
response.body = body
|
||||
response.headers = Fog::Terremark::Shared::Mock.headers(response.body,
|
||||
case self
|
||||
when Fog::Terremark::Ecloud::Mock
|
||||
"application/vnd.vmware.vcloud.network+xml"
|
||||
when Fog::Terremark::Vcloud::Mock
|
||||
"application/xml; charset=utf-8"
|
||||
end
|
||||
)
|
||||
else
|
||||
response.status = Fog::Terremark::Shared::Mock.unathorized_status
|
||||
response.headers = Fog::Terremark::Shared::Mock.error_headers
|
||||
end
|
||||
|
||||
response
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue