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 2011/10/25 17:46:19 UTC

svn commit: r1188737 - in /incubator/deltacloud/trunk/server: lib/cimi/ lib/cimi/data/collections/ lib/cimi/data/default_res/ lib/cimi/helpers/ views/cimi/machine_configurations/ views/cimi/machine_images/ views/cimi/machines/ views/cimi/volume/ views/...

Author: mfojtik
Date: Tue Oct 25 15:46:19 2011
New Revision: 1188737

URL: http://svn.apache.org/viewvc?rev=1188737&view=rev
Log:
cimi xml/json support for individual cimi resources

Added:
    incubator/deltacloud/trunk/server/views/cimi/machine_configurations/show.xml.haml
    incubator/deltacloud/trunk/server/views/cimi/machine_images/show.xml.haml
    incubator/deltacloud/trunk/server/views/cimi/machines/show.xml.haml
    incubator/deltacloud/trunk/server/views/cimi/volumes/
    incubator/deltacloud/trunk/server/views/cimi/volumes/show.html.haml
      - copied, changed from r1188696, incubator/deltacloud/trunk/server/views/cimi/volume/show.html.haml
    incubator/deltacloud/trunk/server/views/cimi/volumes/show.xml.haml
Removed:
    incubator/deltacloud/trunk/server/views/cimi/volume/show.html.haml
Modified:
    incubator/deltacloud/trunk/server/lib/cimi/data/collections/machine_image.col.xml
    incubator/deltacloud/trunk/server/lib/cimi/data/default_res/machine_configuration.col.xml
    incubator/deltacloud/trunk/server/lib/cimi/helpers/cmwgapp_helper.rb
    incubator/deltacloud/trunk/server/lib/cimi/server.rb

Modified: incubator/deltacloud/trunk/server/lib/cimi/data/collections/machine_image.col.xml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/cimi/data/collections/machine_image.col.xml?rev=1188737&r1=1188736&r2=1188737&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/cimi/data/collections/machine_image.col.xml (original)
+++ incubator/deltacloud/trunk/server/lib/cimi/data/collections/machine_image.col.xml Tue Oct 25 15:46:19 2011
@@ -1,8 +1,8 @@
 <?xml version='1.0' encoding='utf-8' ?>
 <MachineImageCollection xmlns="http://www.dmtf.org/cimi">
  <uri>machineImage</uri>
- <name>Machine Config collection </name>
- <description>The machine config collection</description>
+ <name>Machine Image collection </name>
+ <description>The machine image collection</description>
  <created>2011-09-12 11:37:28 UTC</created>
  <operation rel="add" href="/machine_images" />
 </MachineImageCollection>

Modified: incubator/deltacloud/trunk/server/lib/cimi/data/default_res/machine_configuration.col.xml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/cimi/data/default_res/machine_configuration.col.xml?rev=1188737&r1=1188736&r2=1188737&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/cimi/data/default_res/machine_configuration.col.xml (original)
+++ incubator/deltacloud/trunk/server/lib/cimi/data/default_res/machine_configuration.col.xml Tue Oct 25 15:46:19 2011
@@ -10,6 +10,10 @@
     <capacity quantity="200" units="gigabyte"/>
     <guestInterface>SATA</guestInterface>
   </disk>
+  <disk>
+    <capacity quantity="100" units="gigabyte"/>
+    <guestInterface>SATA</guestInterface>
+  </disk>
   <supportsSnapshots>false</supportsSnapshots>
   <guestInterface>http://www.ibm.com</guestInterface>
   <operation rel="edit" href="/machine_configuration"/>

Modified: incubator/deltacloud/trunk/server/lib/cimi/helpers/cmwgapp_helper.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/cimi/helpers/cmwgapp_helper.rb?rev=1188737&r1=1188736&r2=1188737&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/cimi/helpers/cmwgapp_helper.rb (original)
+++ incubator/deltacloud/trunk/server/lib/cimi/helpers/cmwgapp_helper.rb Tue Oct 25 15:46:19 2011
@@ -121,7 +121,7 @@ module ApplicationHelper
     end
   end
 
-  def show_resource(resource_path, content_type)
+  def show_resource(resource_path, content_type, replace_keys = nil)
     respond_to do |format|
       format.xml do
         content_type "application/CIMI-#{content_type}+xml", :charset => 'utf-8'
@@ -139,8 +139,28 @@ module ApplicationHelper
         if hash_response.has_key?("xmlns")
           hash_response.delete "xmlns"
         end
+        if replace_keys
+          replace_key!(hash_response, replace_keys)
+        end
         hash_response.to_json
       end
     end
   end
+
+  def replace_key!(an_object, key_maps = nil)
+    if an_object.kind_of?(Hash)
+      key_maps.each do |key, value|
+        if an_object.key?(key)
+          an_object[value] = an_object.delete(key)
+        end
+      end
+      an_object.each do |key, value|
+        replace_key!(value, key_maps)
+      end
+    elsif an_object.kind_of?(Array)
+      an_object.each do |value|
+        replace_key!(value, key_maps)
+      end
+    end
+  end
 end

Modified: incubator/deltacloud/trunk/server/lib/cimi/server.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/cimi/server.rb?rev=1188737&r1=1188736&r2=1188737&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/cimi/server.rb (original)
+++ incubator/deltacloud/trunk/server/lib/cimi/server.rb Tue Oct 25 15:46:19 2011
@@ -133,7 +133,8 @@ EOS
               "href" => machine_configuration_url(@profile.name) }
         #mixin actual values get from profile
         @dmtfitem = resource_default["dmtfitem"].merge resource_value
-        show_resource "machine_configurations/show", "MachineConfiguration"
+        show_resource "machine_configurations/show", "MachineConfiguration",
+          {"property" => "properties", "disk" => "disks", "operation" => "operations"}
       else
         report_error(404)
       end
@@ -179,7 +180,8 @@ EOS
           "uri" => @image.id,"href" => machine_image_url(@image.id) }
         #mixin actual values get from the specific image
         @dmtfitem = resource_default["dmtfitem"].merge resource_value
-        show_resource "machine_images/show", "MachineImage"
+        show_resource "machine_images/show", "MachineImage",
+          {"property" => "properties", "operation" => "operations"}
       else
         report_error(404)
       end
@@ -226,7 +228,8 @@ EOS
           "href" => machine_url(@machine.id) }
         #mixin actual values get from the specific image
         @dmtfitem = resource_default["dmtfitem"].merge resource_value
-        show_resource "machines/show", "Machine"
+        show_resource "machines/show", "Machine",
+          {"property" => "properties", "disk" => "disks", "operation" => "operations"}
       else
         report_error(404)
       end
@@ -274,7 +277,8 @@ EOS
           "capacity" => { "quantity" => @volume.capacity, "units" => "gigabyte"} }
         #mixin actual values get from the specific image
         @dmtfitem = resource_default["dmtfitem"].merge resource_value
-        show_resource "volumes/show", "Volume"
+        show_resource "volumes/show", "Volume",
+          {"property" => "properties", "operation" => "operations"}
       else
         report_error(404)
       end

Added: incubator/deltacloud/trunk/server/views/cimi/machine_configurations/show.xml.haml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/views/cimi/machine_configurations/show.xml.haml?rev=1188737&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/views/cimi/machine_configurations/show.xml.haml (added)
+++ incubator/deltacloud/trunk/server/views/cimi/machine_configurations/show.xml.haml Tue Oct 25 15:46:19 2011
@@ -0,0 +1,27 @@
+- unless defined?(partial)
+  !!! XML
+%MachineConfiguration{ :xmlns => CMWG_NAMESPACE }
+  %uri=machine_configurations_url + "/" + @dmtfitem["uri"]
+  %name=@dmtfitem["name"]
+  %description=@dmtfitem["description"]
+  %created=@dmtfitem["created"]
+  - if @dmtfitem["property"]
+    - if @dmtfitem["property"]["name"] && @dmtfitem["property"]["content"]
+      - property_object = {"#{@dmtfitem['property']['name']}" => {"content" => @dmtfitem["property"]["content"]}}
+    - else
+      - property_object = @dmtfitem["property"]
+    - property_object.each_pair do |key, value|
+      %property{ :name => key}=value["content"]
+  %cpu=@dmtfitem["cpu"]
+  %memory{ :quantity => @dmtfitem["memory"]["quantity"], :units => @dmtfitem["memory"]["units"] }
+  - if @dmtfitem["disk"]
+    - if @dmtfitem["disk"].kind_of?(Array)
+      - property_object = @dmtfitem["disk"]
+    - else
+      - property_object = [@dmtfitem["disk"]]
+    - property_object.each do |disk|
+      %disk
+        %capacity{ :quantity => disk["capacity"]["quantity"], :units => disk["capacity"]["units"] }
+        %guestInterface= disk["guestInterface"]
+  %operation{ :rel => "edit", :href => machine_configurations_url + "/" + @dmtfitem["uri"] }
+  %operation{ :rel => "delete", :href => machine_configurations_url + "/" + @dmtfitem["uri"] }
\ No newline at end of file

Added: incubator/deltacloud/trunk/server/views/cimi/machine_images/show.xml.haml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/views/cimi/machine_images/show.xml.haml?rev=1188737&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/views/cimi/machine_images/show.xml.haml (added)
+++ incubator/deltacloud/trunk/server/views/cimi/machine_images/show.xml.haml Tue Oct 25 15:46:19 2011
@@ -0,0 +1,17 @@
+- unless defined?(partial)
+  !!! XML
+%MachineImage{ :xmlns => CMWG_NAMESPACE }
+  %uri=machine_images_url + "/" + @dmtfitem["uri"]
+  %name=@dmtfitem["name"]
+  %description=@dmtfitem["description"]
+  %created=@dmtfitem["created"]
+  - if @dmtfitem["property"]
+    - if @dmtfitem["property"]["name"] && @dmtfitem["property"]["content"]
+      - property_object = {"#{@dmtfitem['property']['name']}" => {"content" => @dmtfitem["property"]["content"]}}
+    - else
+      - property_object = @dmtfitem["property"]
+    - property_object.each_pair do |key, value|
+      %property{ :name => key}=value["content"]
+  %imageLocation{ :href => @dmtfitem["imageLocation"]}
+  %operation{ :rel => "edit", :href => machine_images_url + "/" + @dmtfitem["uri"] }
+  %operation{ :rel => "delete", :href => machine_images_url + "/" + @dmtfitem["uri"] }
\ No newline at end of file

Added: incubator/deltacloud/trunk/server/views/cimi/machines/show.xml.haml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/views/cimi/machines/show.xml.haml?rev=1188737&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/views/cimi/machines/show.xml.haml (added)
+++ incubator/deltacloud/trunk/server/views/cimi/machines/show.xml.haml Tue Oct 25 15:46:19 2011
@@ -0,0 +1,28 @@
+- unless defined?(partial)
+  !!! XML
+%Machine{ :xmlns => CMWG_NAMESPACE }
+  %uri=machines_url + "/" + @dmtfitem["uri"]
+  %name=@dmtfitem["name"]
+  %description=@dmtfitem["description"]
+  %created=@dmtfitem["created"]
+  - if @dmtfitem["property"]
+    - if @dmtfitem["property"]["name"] && @dmtfitem["property"]["content"]
+      - property_object = {"#{@dmtfitem['property']['name']}" => {"content" => @dmtfitem["property"]["content"]}}
+    - else
+      - property_object = @dmtfitem["property"]
+    - property_object.each_pair do |key, value|
+      %property{ :name => key}=value["content"]
+  %status=@dmtfitem["status"]
+  %cpu=@dmtfitem["cpu"]
+  %memory{ :quantity => @dmtfitem["memory"]["quantity"], :units => @dmtfitem["memory"]["units"] }
+  - if @dmtfitem["disk"]
+    - if @dmtfitem["disk"].kind_of?(Array)
+      - property_object = @dmtfitem["disk"]
+    - else
+      - property_object = [@dmtfitem["disk"]]
+    - property_object.each do |disk|
+      %disk
+        %capacity{ :quantity => disk["capacity"]["quantity"], :units => disk["capacity"]["units"] }
+        %guestInterface= disk["guestInterface"]
+  %operation{ :rel => "edit", :href => machines_url + "/" + @dmtfitem["uri"] }
+  %operation{ :rel => "delete", :href => machines_url + "/" + @dmtfitem["uri"] }
\ No newline at end of file

Copied: incubator/deltacloud/trunk/server/views/cimi/volumes/show.html.haml (from r1188696, incubator/deltacloud/trunk/server/views/cimi/volume/show.html.haml)
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/views/cimi/volumes/show.html.haml?p2=incubator/deltacloud/trunk/server/views/cimi/volumes/show.html.haml&p1=incubator/deltacloud/trunk/server/views/cimi/volume/show.html.haml&r1=1188696&r2=1188737&rev=1188737&view=diff
==============================================================================
    (empty)

Added: incubator/deltacloud/trunk/server/views/cimi/volumes/show.xml.haml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/views/cimi/volumes/show.xml.haml?rev=1188737&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/views/cimi/volumes/show.xml.haml (added)
+++ incubator/deltacloud/trunk/server/views/cimi/volumes/show.xml.haml Tue Oct 25 15:46:19 2011
@@ -0,0 +1,17 @@
+- unless defined?(partial)
+  !!! XML
+%Volume{ :xmlns => CMWG_NAMESPACE }
+  %uri=volumes_url + "/" + @dmtfitem["uri"]
+  %name=@dmtfitem["name"]
+  %description=@dmtfitem["description"]
+  %created=@dmtfitem["created"]
+  - if @dmtfitem["property"]
+    - if @dmtfitem["property"]["name"] && @dmtfitem["property"]["content"]
+      - property_object = {"#{@dmtfitem['property']['name']}" => {"content" => @dmtfitem["property"]["content"]}}
+    - else
+      - property_object = @dmtfitem["property"]
+    - property_object.each_pair do |key, value|
+      %property{ :name => key}=value["content"]
+  %capacity{ :quantity => @dmtfitem["capacity"]["quantity"], :units => @dmtfitem["capacity"]["units"]}
+  %operation{ :rel => "edit", :href => volumes_url + "/" + @dmtfitem["uri"] }
+  %operation{ :rel => "delete", :href => volumes_url + "/" + @dmtfitem["uri"] }
\ No newline at end of file