Sha256: f2ad829450b56fbc85f79e6846d20bcf5586967282e4048810198c78fabf08c2
Contents?: true
Size: 1.36 KB
Versions: 43
Compression:
Stored size: 1.36 KB
Contents
require 'fog/vcloud/models/compute/network' module Fog module Vcloud class Compute class Networks < Fog::Vcloud::Collection undef_method :create model Fog::Vcloud::Compute::Network attribute :href def all self.href = service.default_vdc_href unless self.href data = nil if self.href =~ /\/vdc\// check_href!("Vdc") data = [service.get_vdc(self.href).available_networks].flatten.compact.reject{|n| n == '' } elsif self.href =~ /\/org\// check_href!("Org") data = service.get_organization(self.href).links.select{|l| l[:type] == network_type_id } elsif self.href =~ /\/vApp\// check_href!("Vapp") data = [(service.get_vapp(self.href).network_configs||{})[:NetworkConfig]].flatten.compact.map{|n| n[:Configuration][:ParentNetwork] unless n[:Configuration].nil? }.compact end load([*data]) unless data.nil? end def get(uri) service.get_network(uri) rescue Fog::Errors::NotFound nil end private def network_type_id if service.version == '1.0' 'application/vnd.vmware.vcloud.network+xml' else 'application/vnd.vmware.vcloud.orgNetwork+xml' end end end end end end
Version data entries
43 entries across 41 versions & 6 rubygems