lib/fog/vcloud_director/requests/compute/get_network.rb in fog-maestrodev-1.15.0.20130927082724 vs lib/fog/vcloud_director/requests/compute/get_network.rb in fog-maestrodev-1.18.0.20131111203459
- old
+ new
@@ -1,21 +1,63 @@
module Fog
module Compute
class VcloudDirector
class Real
-
require 'fog/vcloud_director/parsers/compute/network'
- def get_network(network_id)
+ # Retrieve an organization network.
+ #
+ # @param [String] id Object identifier of the network.
+ # @return [Excon::Response]
+ # * body<~Hash>:
+ #
+ # @raise [Fog::Compute::VcloudDirector::Forbidden]
+ #
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-Network.html
+ # @since vCloud API version 0.9
+ def get_network(id)
request(
- :expects => 200,
- :method => 'GET',
- :parser => Fog::Parsers::Compute::VcloudDirector::Network.new,
- :path => "network/#{network_id}"
+ :expects => 200,
+ :idempotent => true,
+ :method => 'GET',
+ :parser => Fog::Parsers::Compute::VcloudDirector::Network.new,
+ :path => "network/#{id}"
)
end
+ end
+ class Mock
+ def get_network(id)
+ unless network = data[:networks][id]
+ raise Fog::Compute::VcloudDirector::Forbidden.new(
+ 'This operation is denied.'
+ )
+ end
+
+ body =
+ {:name=>network[:name],
+ :href=>make_href("network/#{id}"),
+ :type=>"application/vnd.vmware.vcloud.orgNetwork+xml",
+ :id=>id,
+ :description=>nil,
+ :is_inherited=>network[:IsInherited],
+ :gateway=>network[:Gateway],
+ :netmask=>network[:Netmask],
+ :dns1=>network[:Dns1],
+ :dns2=>network[:Dns2],
+ :dns_suffix=>network[:DnsSuffix]}
+
+ body[:ip_ranges] = network[:IpRanges].map do |ip_range|
+ {:start_address=>ip_range[:StartAddress],
+ :end_address=>ip_range[:EndAddress]}
+ end
+
+ Excon::Response.new(
+ :status => 200,
+ :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
+ :body => body
+ )
+ end
end
end
end
end
-