From: Michal Fojtik <[email protected]>
Signed-off-by: Michal fojtik <[email protected]> --- client/lib/base_object.rb | 13 +++++++++++++ client/lib/deltacloud.rb | 8 ++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/client/lib/base_object.rb b/client/lib/base_object.rb index f6ef149..dd2b64a 100644 --- a/client/lib/base_object.rb +++ b/client/lib/base_object.rb @@ -84,6 +84,19 @@ module DeltaCloud # <address>127.0.0.1</address> # <address>127.0.0.2</address> # </addresses> + def add_addresses!(collection_name, values=[]) + @objects << { + :type => :collection, + :method_name => collection_name.sanitize, + :values => values.collect { |v| { :address => v.text.strip, :type => v[:type] }} + } + end + + # This method define collection of text elements inside REST model + # XML syntax: <addresses> + # <address>127.0.0.1</address> + # <address>127.0.0.2</address> + # </addresses> def add_collection!(collection_name, values=[]) @objects << { :type => :collection, diff --git a/client/lib/deltacloud.rb b/client/lib/deltacloud.rb index e2db0ba..bfe25a2 100644 --- a/client/lib/deltacloud.rb +++ b/client/lib/deltacloud.rb @@ -23,7 +23,7 @@ require 'logger' require 'hwp_properties' require 'instance_state' require 'documentation' -require 'base_object' +require 'lib/base_object' require 'client_bucket_methods' module DeltaCloud @@ -225,7 +225,7 @@ module DeltaCloud end #deal with blob metadata - if(attribute.name == 'user_metadata') + if (attribute.name == 'user_metadata') meta = {} attribute.children.select {|x| x.name=="entry" }.each do |element| value = element.content.gsub!(/(\n) +/,'') @@ -234,6 +234,10 @@ module DeltaCloud obj.add_collection!(attribute.name, meta.inspect) && next end + if (['public_addresses', 'private_addresses'].include? attribute.name) + obj.add_addresses!(attribute.name, (attribute/'*')) && next + end + # Deal with collections like public-addresses, private-addresses if (attribute/'./*').length > 0 obj.add_collection!(attribute.name, (attribute/'*').collect { |value| value.text }) && next -- 1.7.4.1
