reuse code for copying attributes from Chef object

This commit is contained in:
Adam Spiers 2014-03-03 15:30:48 +00:00
parent 9c13a896a9
commit 128831d3b6
5 changed files with 15 additions and 9 deletions

View File

@ -67,6 +67,15 @@ module Pacemaker
obj
end
end
def from_chef_resource(resource)
new(resource.name).copy_attrs_from_chef_resource(resource,
*attrs_to_copy_from_chef)
end
def attrs_to_copy_from_chef
raise NotImplementedError, "#{self.class} didn't implement attrs_to_copy_from_chef"
end
end
def initialize(name)

View File

@ -6,9 +6,8 @@ class Pacemaker::Constraint::Colocation < Pacemaker::Constraint
attr_accessor :score, :resources
def self.from_chef_resource(resource)
attrs = %w(score resources)
new(resource.name).copy_attrs_from_chef_resource(resource, *attrs)
def self.attrs_to_copy_from_chef
%w(score resources)
end
def parse_definition

View File

@ -49,6 +49,5 @@ module Pacemaker
end
h
end
end
end

View File

@ -9,9 +9,8 @@ class Pacemaker::Resource::Group < Pacemaker::Resource
attr_accessor :members
def self.from_chef_resource(resource)
attrs = %w(members meta)
new(resource.name).copy_attrs_from_chef_resource(resource, *attrs)
def self.attrs_to_copy_from_chef
%w(members meta)
end
def parse_definition

View File

@ -16,8 +16,8 @@ class Pacemaker::Resource::Primitive < Pacemaker::Resource
@agent = nil
end
def self.from_chef_resource(resource)
new(resource.name).copy_attrs_from_chef_resource(resource, *%w(agent params meta op))
def self.attrs_to_copy_from_chef
%w(agent params meta op)
end
def parse_definition