1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/vcloud/models/compute/organizations.rb
Peter Meier 30e28d704f [vcloud|compute] add API version 1.5 compability
vCloud version API 1.5 requires us to adapt certain calls. This
patch does all the necessary things to scan a vCloud 1.5 completely
and read all the necessary attributes, as we could already before.
Furthermore, it add tests for the version 1.5 calls.

The API version can now be set as a version param to the vcloud
compute resource. By default it chooses version 1.5.

This has been tested against a vCloud 1.5 and 1.0.
2012-01-30 19:04:19 +01:00

32 lines
821 B
Ruby

require 'fog/vcloud/models/compute/organization'
module Fog
module Vcloud
class Compute
class Organizations < Collection
model Fog::Vcloud::Compute::Organization
undef_method :create
def all
raw_orgs = if connection.version == '1.0'
connection.login
else
connection.request(connection.basic_request_params("#{connection.base_path_url}/org/"))
end
data = raw_orgs.body[:Org].select { |org| org[:type] == "application/vnd.vmware.vcloud.org+xml" }
data.each { |org| org.delete_if { |key, value| [:rel].include?(key) } }
load(data)
end
def get(uri)
connection.get_organization(uri)
rescue Fog::Errors::NotFound
nil
end
end
end
end
end