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

Reply via email to