lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/networks.rb in brightbox-cli-0.17.1 vs lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/networks.rb in brightbox-cli-0.17.2
- old
+ new
@@ -12,23 +12,37 @@
attribute :href
def all
self.href = connection.default_vdc_href unless self.href
- check_href!("Vdc")
- if data = connection.get_vdc(href).body[:AvailableNetworks][:Network]
- load(data)
+ data = nil
+ if self.href =~ /\/vdc\//
+ check_href!("Vdc")
+ data = [connection.get_vdc(self.href).available_networks].flatten.compact.reject{|n| n == '' }
+ elsif self.href =~ /\/org\//
+ check_href!("Org")
+ data = connection.get_organization(self.href).links.select{|l| l[:type] == network_type_id }
+ elsif self.href =~ /\/vApp\//
+ check_href!("Vapp")
+ data = [(connection.get_vapp(self.href).network_configs||{})[:NetworkConfig]].flatten.compact.collect{|n| n[:Configuration][:ParentNetwork] unless n[:Configuration].nil? }.compact
end
+ load([*data]) unless data.nil?
end
def get(uri)
- if data = connection.get_network(uri)
- new(data.body)
- end
- rescue Fog::Errors::NotFound
+ connection.get_network(uri)
+ rescue Fog::Errors::NotFound
nil
end
+ private
+ def network_type_id
+ if connection.version == '1.0'
+ 'application/vnd.vmware.vcloud.network+xml'
+ else
+ 'application/vnd.vmware.vcloud.orgNetwork+xml'
+ end
+ end
end
end
end
end