You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2012/08/20 10:53:44 UTC
[3/54] git commit: CIMI: Show only supported collections in CEP
CIMI: Show only supported collections in CEP
* cloudEntryPoint will advertise *only* the supported collection.
The decision whether the collection is supported or not is made based
on presence of the required driver method in :with_capability.
* This also fix the problem when starting deltacloud using multiple
frontends (DCLOUD-302)
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/eb557810
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/eb557810
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/eb557810
Branch: refs/heads/master
Commit: eb557810e1f9c476cb68117ebfbf0fbf80356d7b
Parents: 73b5c59
Author: Michal Fojtik <mf...@redhat.com>
Authored: Thu Aug 16 11:56:50 2012 +0200
Committer: Michal fojtik <mf...@redhat.com>
Committed: Mon Aug 20 10:53:02 2012 +0200
----------------------------------------------------------------------
server/lib/cimi/models/cloud_entry_point.rb | 21 +++++++--------------
1 files changed, 7 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/eb557810/server/lib/cimi/models/cloud_entry_point.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/cloud_entry_point.rb b/server/lib/cimi/models/cloud_entry_point.rb
index 9ec3446..52997e7 100644
--- a/server/lib/cimi/models/cloud_entry_point.rb
+++ b/server/lib/cimi/models/cloud_entry_point.rb
@@ -16,19 +16,11 @@
class CIMI::Model::CloudEntryPoint < CIMI::Model::Base
text :base_uri, :xml_name => "baseURI", :json_name => "baseURI"
+
array :entity_metadata do
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,
@@ -42,12 +34,13 @@ 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])
+ CIMI::Collections.cimi_modules.inject({}) do |supported_entities, m|
+ m.collections.each do |c|
+ index_operation_capability = c.operation(:index).required_capability
+ next if m.settings.respond_to?(:capability) and !m.settings.capability(index_operation_capability)
+ supported_entities[c.collection_name.to_s] = { :href => context.send(:"#{c.collection_name}_url") }
end
- result[entity.underscore] = { :href => context.send(:"#{entity.underscore}_url") }
- result
+ supported_entities
end
end