From: Michal Fojtik <[email protected]>
Signed-off-by: Michal fojtik <[email protected]> --- server/lib/cimi/models/base.rb | 11 ++++++++--- server/lib/cimi/models/schema.rb | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/server/lib/cimi/models/base.rb b/server/lib/cimi/models/base.rb index 5fdb69a..1393ae4 100644 --- a/server/lib/cimi/models/base.rb +++ b/server/lib/cimi/models/base.rb @@ -170,8 +170,12 @@ class CIMI::Model::Resource # Prepare to serialize def prepare self.class.schema.collections.map { |coll| coll.name }.each do |n| - self[n].href = "#{self.id}/#{n}" unless self[n].href - self[n].id = "#{self.id}/#{n}" if !self[n].entries.empty? + if !@filter_attrs.empty? and !@filter_attrs.include?(n) + @attribute_values[n] = nil + else + self[n].href = "#{self.id}/#{n}" if !self[n].href + self[n].id = "#{self.id}/#{n}" if !self[n].entries.empty? + end end end @@ -180,6 +184,7 @@ class CIMI::Model::Resource # def initialize(values = {}) names = self.class.schema.attribute_names + @filter_attrs = values[:filter_attr_list] || [] @attribute_values = names.inject(OrderedHash.new) do |hash, name| hash[name] = self.class.schema.convert(name, values[name]) hash @@ -285,7 +290,7 @@ class CIMI::Model::Base < CIMI::Model::Resource result[attr.to_sym] = self.send(attr) if self.respond_to?(attr) result end - self.class.new(attrs) + self.class.new(attrs.merge(:filter_attr_list => attr_list)) end end diff --git a/server/lib/cimi/models/schema.rb b/server/lib/cimi/models/schema.rb index 4acd2dc..24a5a0e 100644 --- a/server/lib/cimi/models/schema.rb +++ b/server/lib/cimi/models/schema.rb @@ -241,6 +241,7 @@ class CIMI::Model::Schema end def to_xml(model, xml) + return if model[name].nil? model[name].prepare if model[name].entries.empty? xml[xml_name] = { "href" => model[name].href } -- 1.8.1
