You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by ma...@redhat.com on 2011/12/08 15:24:50 UTC
[PATCH 2/4] Adds create_entity_metadata to CIMI::Machine model (+typos in xml parsing)
From: marios <ma...@redhat.com>
Signed-off-by: marios <ma...@redhat.com>
---
server/lib/cimi/model/machine.rb | 28 +++++++++++++++++++---------
1 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/server/lib/cimi/model/machine.rb b/server/lib/cimi/model/machine.rb
index 4f28ea8..8f31bc6 100644
--- a/server/lib/cimi/model/machine.rb
+++ b/server/lib/cimi/model/machine.rb
@@ -70,20 +70,20 @@ class CIMI::Model::Machine < CIMI::Model::Base
def self.create_from_json(body, context)
json = JSON.parse(body)
- hardware_profile_id = xml['MachineTemplate']['MachineConfig']["href"].split('/').last
- image_id = xml['MachineTemplate']['MachineImage']["href"].split('/').last
+ hardware_profile_id = xml['machineTemplate']['machineConfig']["href"].split('/').last
+ image_id = xml['machineTemplate']['machineImage']["href"].split('/').last
instance = context.create_instance(context.credentials, image_id, { :hwp_id => hardware_profile_id })
from_instance(instance, context)
end
def self.create_from_xml(body, context)
xml = XmlSimple.xml_in(body)
- machine_template = xml['MachineTemplate'][0]
- hardware_profile_id = machine_template['MachineConfig'][0]["href"].split('/').last
- image_id = machine_template['MachineImage'][0]["href"].split('/').last
+ machine_template = xml['machineTemplate'][0]
+ hardware_profile_id = machine_template['machineConfig'][0]["href"].split('/').last
+ image_id = machine_template['machineImage'][0]["href"].split('/').last
additional_params = {}
if machine_template.has_key? 'MachineAdmin'
- additional_params[:keyname] = machine_template['MachineAdmin'][0]["href"].split('/').last
+ additional_params[:keyname] = machine_template['machineAdmin'][0]["href"].split('/').last
end
instance = context.driver.create_instance(context.credentials, image_id, {
:hwp_id => hardware_profile_id
@@ -107,6 +107,16 @@ class CIMI::Model::Machine < CIMI::Model::Base
context.driver.destroy_instance(context.credentials, id)
end
+ def self.create_entity_metadata(context)
+ cimi_entity = self.name.split("::").last
+ metadata = EntityMetadata.metadata_from_deltacloud_features(cimi_entity, :instances, context)
+ unless metadata.includes_attribute?(:name)
+ metadata.attributes << {:name=>"name", :required=>"false",
+ :constraints=>"Determined by the cloud provider", :type=>"xs:string"}
+ end
+ metadata
+ end
+
private
def self.from_instance(instance, context)
@@ -163,11 +173,11 @@ class CIMI::Model::Machine < CIMI::Model::Base
machine_conf = MachineConfiguration.find(profile.name, context)
storage_override = profile.overrides.find { |p, v| p == :storage }
[
- { :capacity => {
+ { :capacity => {
:quantity => storage_override.nil? ? machine_conf.disks.first[:capacity][:quantity] : storage_override[1],
:units => machine_conf.disks.first[:capacity][:units]
- }
- }
+ }
+ }
]
end
--
1.7.6.4