From: marios <[email protected]>
Signed-off-by: marios <[email protected]> --- server/lib/cimi/models/cloud_entry_point.rb | 12 ++++++++++++ server/lib/cimi/models/machine_admin.rb | 1 + 2 files changed, 13 insertions(+), 0 deletions(-) diff --git a/server/lib/cimi/models/cloud_entry_point.rb b/server/lib/cimi/models/cloud_entry_point.rb index ffe1ef5..1095741 100644 --- a/server/lib/cimi/models/cloud_entry_point.rb +++ b/server/lib/cimi/models/cloud_entry_point.rb @@ -19,6 +19,15 @@ class CIMI::Model::CloudEntryPoint < CIMI::Model::Base scalar :href end + DELTACLOUD_MAPPINGS = { "MachineImages" => "images", + "MachineConfigurations" => "hardware_profiles", + "Machines" => "instances", + "Volumes" => "storage_volumes", + "MachineAdmins" => "keys", + "VolumeImages" => "storage_snapshots", + } + + def self.create(context) self.new(entities(context).merge({ :name => context.driver.name, @@ -32,6 +41,9 @@ class CIMI::Model::CloudEntryPoint < CIMI::Model::Base # Return an Hash of the CIMI root entities used in CloudEntryPoint def self.entities(context) CIMI::Model.root_entities.inject({}) do |result, entity| + if DELTACLOUD_MAPPINGS[entity] + next result unless context.driver.respond_to?(DELTACLOUD_MAPPINGS[entity]) + end result[entity.underscore] = { :href => context.send(:"#{entity.underscore}_url") } result end diff --git a/server/lib/cimi/models/machine_admin.rb b/server/lib/cimi/models/machine_admin.rb index fed7c80..6cf4462 100644 --- a/server/lib/cimi/models/machine_admin.rb +++ b/server/lib/cimi/models/machine_admin.rb @@ -25,6 +25,7 @@ class CIMI::Model::MachineAdmin < CIMI::Model::Base def self.find(id, context) if id == :all + return [] unless context.driver.respond_to?(:keys) keys = context.driver.keys(context.credentials) keys.map { |key| from_key(key, context) } else -- 1.7.6.5
