diff --git a/libraries/pacemaker/cib_object.rb b/libraries/pacemaker/cib_object.rb index aaded5d..c6c2ed4 100644 --- a/libraries/pacemaker/cib_object.rb +++ b/libraries/pacemaker/cib_object.rb @@ -75,6 +75,14 @@ module Pacemaker self end + def copy_attrs_to_chef_resource(resource, *attrs) + attrs.each do |attr| + value = send(attr.to_sym) + writer = attr.to_sym + resource.send(writer, value) + end + end + def load_definition @definition = self.class.get_definition(name) diff --git a/providers/primitive.rb b/providers/primitive.rb index 8237762..9f2e15d 100644 --- a/providers/primitive.rb +++ b/providers/primitive.rb @@ -87,13 +87,8 @@ end def init_current_resource name = @new_resource.name @current_resource = Chef::Resource::PacemakerPrimitive.new(name) - @current_resource.agent(@current_cib_object.agent) - %w(params meta).each do |data_type| - method = data_type.to_sym - value = @current_cib_object.send(method) - @current_resource.send(method, value) - Chef::Log.debug "detected #{name} has #{data_type} #{value}" - end + @current_cib_object.copy_attrs_to_chef_resource(@current_resource, + :agent, :params, :meta) end def create_resource(name)