From: Michal Fojtik <mfoj...@redhat.com>

Signed-off-by: Michal fojtik <mfoj...@redhat.com>
---
 server/lib/cimi/helpers/cmwg_helper.rb |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/server/lib/cimi/helpers/cmwg_helper.rb 
b/server/lib/cimi/helpers/cmwg_helper.rb
index 0a9b1e9..b7d5b81 100644
--- a/server/lib/cimi/helpers/cmwg_helper.rb
+++ b/server/lib/cimi/helpers/cmwg_helper.rb
@@ -72,8 +72,35 @@ module CMWG
       engine = Tilt::HamlTemplate.new(File.join(settings.views, 
resource_name.to_s.pluralize, 'show.xml.haml'))
       hash_response = XmlSimple.xml_in(engine.render(self, :'@object' => 
object))
       hash_response.delete('xmlns')
+      rename_key_fields!(hash_response, replacement_keys_for(resource_name))
       hash_response.to_json
     end
 
+    private
+
+    def replacement_keys_for(resource)
+      case resource
+        when :machine_image then {"property" => "properties", "operation" => 
"operations"}
+        when :machine then {"property" => "properties", "disk" => "disks", 
"operation" => "operations"}
+        when :colume then {"property" => "properties", "operation" => 
"operations"}
+      end
+    end
+
+    def rename_key_fields!(an_object, key_maps = nil)
+      if an_object.kind_of?(Hash)
+        key_maps.each do |key, value|
+          an_object[value] = an_object.delete(key) if an_object.key?(key)
+        end
+        an_object.each do |key, value|
+          rename_key_fields!(value, key_maps)
+        end
+      elsif an_object.kind_of?(Array)
+        an_object.each do |value|
+          rename_key_fields!(value, key_maps)
+        end
+      end
+    end
+
+
   end
 end
-- 
1.7.4.4

Reply via email to