require File.expand_path('../resource', File.dirname(__FILE__)) require File.expand_path('../mixins/resource_meta', File.dirname(__FILE__)) class Pacemaker::Resource::Group < Pacemaker::Resource TYPE = 'group' register_type TYPE include Pacemaker::Mixins::Resource::Meta attr_accessor :members def self.attrs_to_copy_from_chef %w(members meta) end def parse_definition rsc_re = /(\S+?)(?::(Started|Stopped))?/ unless definition =~ /^#{TYPE} (\S+) (.+?)(\s+\\)?$/ raise Pacemaker::CIBObject::DefinitionParseError, \ "Couldn't parse definition '#{definition}'" end self.name = $1 members = $2.split trim_from = members.find_index('meta') members = members[0..trim_from-1] if trim_from self.members = members self.meta = self.class.extract_hash(definition, 'meta') end def definition_string str = "#{TYPE} #{name} " + members.join(' ') unless meta.empty? str << continuation_line(meta_string) end str end end