You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by lu...@apache.org on 2012/09/25 01:52:48 UTC
[8/10] git commit: CIMI models: allow passing options to
acts_as_root_entity
CIMI models: allow passing options to acts_as_root_entity
We need to be able to alias some of the root entities since their name in
the CEP is different from the class name
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/c6b642b0
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/c6b642b0
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/c6b642b0
Branch: refs/heads/master
Commit: c6b642b03ea07080f35b5d6322f06b666dd3b731
Parents: 6efdde5
Author: David Lutterkort <lu...@redhat.com>
Authored: Tue Sep 18 13:39:55 2012 -0700
Committer: David Lutterkort <lu...@redhat.com>
Committed: Mon Sep 24 16:33:40 2012 -0700
----------------------------------------------------------------------
server/lib/cimi/models/base.rb | 11 ++++++++---
server/lib/cimi/models/collection.rb | 4 ++--
server/lib/cimi/models/entity_metadata.rb | 3 +--
3 files changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/c6b642b0/server/lib/cimi/models/base.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/base.rb b/server/lib/cimi/models/base.rb
index 92ad07b..e36ad6e 100644
--- a/server/lib/cimi/models/base.rb
+++ b/server/lib/cimi/models/base.rb
@@ -69,11 +69,16 @@ require 'json'
module CIMI::Model
- def self.register_as_root_entity!(name)
+ def self.register_as_root_entity!(klass, opts = {})
@root_entities ||= []
- @root_entities << name
+ @root_entities << klass
+ name = klass.name.split("::").last.pluralize
unless CIMI::Model::CloudEntryPoint.href_defined?(name)
- CIMI::Model::CloudEntryPoint.send(:href, name.underscore)
+ params = {}
+ if opts[:as]
+ params[:xml_name] = params[:json_name] = opts[:as]
+ end
+ CIMI::Model::CloudEntryPoint.send(:href, name.underscore, params)
end
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/c6b642b0/server/lib/cimi/models/collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/collection.rb b/server/lib/cimi/models/collection.rb
index a6e1e36..6053f9f 100644
--- a/server/lib/cimi/models/collection.rb
+++ b/server/lib/cimi/models/collection.rb
@@ -77,9 +77,9 @@ module CIMI::Model
attr_accessor :collection_class
- def acts_as_root_entity
+ def acts_as_root_entity(opts = {})
self.collection_class = Collection.generate(self)
- CIMI::Model.register_as_root_entity! collection_class.entry_name.to_s.camelize
+ CIMI::Model.register_as_root_entity! self, opts
end
# Return a collection of entities
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/c6b642b0/server/lib/cimi/models/entity_metadata.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/entity_metadata.rb b/server/lib/cimi/models/entity_metadata.rb
index 1203001..2379e7d 100644
--- a/server/lib/cimi/models/entity_metadata.rb
+++ b/server/lib/cimi/models/entity_metadata.rb
@@ -38,8 +38,7 @@ class CIMI::Model::EntityMetadata < CIMI::Model::Base
def self.find(id, context)
entity_metadata = []
if id == :all
- CIMI::Model.root_entities.each do |entity|
- entity_class = CIMI::Model.const_get("#{entity.singularize}")
+ CIMI::Model.root_entities.each do |entity_class|
entity_metadata << entity_class.create_entity_metadata(context) if entity_class.respond_to?(:create_entity_metadata)
end
return entity_metadata