I am getting
sinatra.error
#<NoMethodError: undefined method `architecture' for nil:NilClass>
when accessing
http://localhost:3001/api/hardware_profiles.json
after applying this patch.
mfojtik(a)redhat.com wrote:
---
server/lib/deltacloud/helpers/conversion_helper.rb | 17 +++++++++++++++++
server/server.rb | 2 ++
2 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/server/lib/deltacloud/helpers/conversion_helper.rb
b/server/lib/deltacloud/helpers/conversion_helper.rb
index 052095d..7e25c15 100644
--- a/server/lib/deltacloud/helpers/conversion_helper.rb
+++ b/server/lib/deltacloud/helpers/conversion_helper.rb
@@ -34,6 +34,23 @@ module ConversionHelper
end
return { :"#{type}" => data }.to_json
end
+ if type.eql?('hardware_profile')
+ unless Array.eql?(obj.class)
+ obj = [obj]
+ else
+ type = type.to_s.pluralize
+ end
+ data = obj.collect do |o|
+ {
+ :architecture => format_hardware_property(o.architecture).strip,
+ :memory => format_hardware_property(o.memory).strip,
+ :storage => format_hardware_property(o.storage).strip,
+ :href => hardware_profile_url(o.name)
+ }
+ end
+ data = data.first if obj.size==1
+ return { :"#{type}" => data }.to_json
+ end
end
end
diff --git a/server/server.rb b/server/server.rb
index a47168a..0e25fe0 100644
--- a/server/server.rb
+++ b/server/server.rb
@@ -289,6 +289,7 @@ END
respond_to do |format|
format.xml { haml :'hardware_profiles/index' }
format.html { haml :'hardware_profiles/index' }
+ format.json { convert_to_json('hardware_profile', @profiles) }
end
end
end
@@ -301,6 +302,7 @@ END
respond_to do |format|
format.xml { haml :'hardware_profiles/show', :layout => false }
format.html { haml :'hardware_profiles/show' }
+ format.json { convert_to_json('hardware_profile', @profile) }
end
end
end
--
Sayli Karmarkar
skarmark(a)redhat.com
Systems Management
http://www.redhat.com