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 2013/02/19 10:11:23 UTC

[2/5] git commit: CIMI: Add support for 'realm' in MachineTemplate

CIMI: Add support for 'realm' in MachineTemplate

Clients can now specify the 'realm' attribute when
creating the new MachineTemplate entity. If they then use
this MachineTemplate to create a new Machine, the Machine
will be placed into that realm.


Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/165922f7
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/165922f7
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/165922f7

Branch: refs/heads/master
Commit: 165922f798787af6cc23287763c67218d5991e99
Parents: 3c23c18
Author: Michal Fojtik <mf...@redhat.com>
Authored: Thu Feb 7 15:34:06 2013 +0100
Committer: Michal fojtik <mf...@redhat.com>
Committed: Tue Feb 19 10:10:57 2013 +0100

----------------------------------------------------------------------
 server/lib/cimi/models/machine.rb          |    4 +++-
 server/lib/cimi/models/machine_template.rb |    6 ++++++
 server/support/cimi/machine_from_temp.json |    2 +-
 server/support/cimi/machine_template.json  |    1 +
 4 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltacloud/blob/165922f7/server/lib/cimi/models/machine.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/machine.rb b/server/lib/cimi/models/machine.rb
index 4a1c42e..1b8e28a 100644
--- a/server/lib/cimi/models/machine.rb
+++ b/server/lib/cimi/models/machine.rb
@@ -55,10 +55,11 @@ class CIMI::Model::Machine < CIMI::Model::Base
     additional_params={}
     machine_template = json['machineTemplate']
     if !machine_template['href'].nil?
-      template = current_db.machine_templates.first(:id => machine_template['href'].split('/').last)
+      template = current_db.machine_templates_dataset.first(:id => machine_template['href'].split('/').last)
       raise 'Could not find the MachineTemplate' if template.nil?
       hardware_profile_id = template.machine_config.split('/').last
       image_id = template.machine_image.split('/').last
+      json['realm'] = template.realm
     else
       hardware_profile_id = machine_template['machineConfig']["href"].split('/').last
       image_id = machine_template['machineImage']["href"].split('/').last
@@ -92,6 +93,7 @@ class CIMI::Model::Machine < CIMI::Model::Base
       template = current_db.machine_templates_dataset.first(:id => xml['machineTemplate'][0]['href'].split('/').last)
       hardware_profile_id = template.machine_config.split('/').last
       image_id = template.machine_image.split('/').last
+      xml['realm'] = [ template.realm ]
     else
       machine_template = xml['machineTemplate'][0]
       hardware_profile_id = machine_template['machineConfig'].first["href"].split('/').last

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/165922f7/server/lib/cimi/models/machine_template.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/machine_template.rb b/server/lib/cimi/models/machine_template.rb
index 5ba9b3e..685fef5 100644
--- a/server/lib/cimi/models/machine_template.rb
+++ b/server/lib/cimi/models/machine_template.rb
@@ -21,6 +21,9 @@ class CIMI::Model::MachineTemplate < CIMI::Model::Base
   href :machine_image
   href :credential
 
+  resource_attr :realm, :required => false,
+    :constraints => lambda { |c| c.driver.realms(c.credentials).map { |r| r.id }}
+
   array :volumes do
     scalar :href
     scalar :protocol
@@ -59,6 +62,7 @@ class CIMI::Model::MachineTemplate < CIMI::Model::Base
         :description => json['description'],
         :machine_config => json['machineConfig']['href'],
         :machine_image => json['machineImage']['href'],
+        :realm => json['realm'],
         :ent_properties => json['properties'] ? json['properties'].to_json : {}
       )
       from_db(new_template, context)
@@ -71,6 +75,7 @@ class CIMI::Model::MachineTemplate < CIMI::Model::Base
         :description => xml['description'].first,
         :machine_config => xml['machineConfig'].first['href'],
         :machine_image => xml['machineImage'].first['href'],
+        :realm => xml['realm'].first,
         :ent_properties => xml['property'] ? JSON::dump(xml['property'].inject({}) { |r, p| r[p['key']]=p['content']; r }) : {}
       )
       from_db(new_template, context)
@@ -89,6 +94,7 @@ class CIMI::Model::MachineTemplate < CIMI::Model::Base
         :description => model.description,
         :machine_config => { :href => model.machine_config },
         :machine_image => { :href => model.machine_image },
+        :realm => model.realm,
         :property => (model.ent_properties ? JSON::parse(model.ent_properties) :  nil),
         :created => Time.parse(model.created_at.to_s).xmlschema,
         :operations => [

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/165922f7/server/support/cimi/machine_from_temp.json
----------------------------------------------------------------------
diff --git a/server/support/cimi/machine_from_temp.json b/server/support/cimi/machine_from_temp.json
index c7d7ab8..b4cd0d7 100644
--- a/server/support/cimi/machine_from_temp.json
+++ b/server/support/cimi/machine_from_temp.json
@@ -6,5 +6,5 @@
     "foo": "bar",
     "life": "is life"
   },
-  "machineTemplate": { "href": "http://localhost:3001/cimi/machine_templates/8" }
+  "machineTemplate": { "href": "http://localhost:3001/cimi/machine_templates/1" }
 }

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/165922f7/server/support/cimi/machine_template.json
----------------------------------------------------------------------
diff --git a/server/support/cimi/machine_template.json b/server/support/cimi/machine_template.json
index 3f219dc..edc1294 100644
--- a/server/support/cimi/machine_template.json
+++ b/server/support/cimi/machine_template.json
@@ -4,6 +4,7 @@
   "description": "My very loved machine template",
   "machineConfig": { "href": "http://localhost:3001/cimi/machine_configurations/m1-xlarge" },
   "machineImage": { "href": "http://localhost:3001/cimi/machine_images/img3" },
+  "realm": "us",
   "properties": {
     "foo": "bar",
     "life": "is life"