refer to TYPE via self.class to allow inheritance
When referring to TYPE directly, the value is taken from the class in which the method is defined, but we want it to be taken from the class for the object being acted on, so we instead use self.class::TYPE to ensure that methods still work in inherited subclasses. For example this means that Pacemaker::Resource::MasterSlave will be able to inherit from Pacemaker::Resource::Clone.
This commit is contained in:
parent
ea9079581e
commit
35bc3a4ceb
@ -11,7 +11,7 @@ class Pacemaker::Constraint::Colocation < Pacemaker::Constraint
|
||||
end
|
||||
|
||||
def parse_definition
|
||||
unless definition =~ /^#{TYPE} (\S+) (\d+|[-+]?inf): (.+?)\s*$/
|
||||
unless definition =~ /^#{self.class::TYPE} (\S+) (\d+|[-+]?inf): (.+?)\s*$/
|
||||
raise Pacemaker::CIBObject::DefinitionParseError, \
|
||||
"Couldn't parse definition '#{definition}'"
|
||||
end
|
||||
@ -21,7 +21,7 @@ class Pacemaker::Constraint::Colocation < Pacemaker::Constraint
|
||||
end
|
||||
|
||||
def definition_string
|
||||
"#{TYPE} #{name} #{score}: " + resources.join(' ')
|
||||
"#{self.class::TYPE} #{name} #{score}: " + resources.join(' ')
|
||||
end
|
||||
|
||||
def crm_configure_command
|
||||
|
@ -14,7 +14,7 @@ class Pacemaker::Resource::Clone < Pacemaker::Resource
|
||||
end
|
||||
|
||||
def definition_string
|
||||
str = "#{TYPE} #{name} #{rsc}"
|
||||
str = "#{self.class::TYPE} #{name} #{rsc}"
|
||||
unless meta.empty?
|
||||
str << continuation_line(meta_string)
|
||||
end
|
||||
@ -22,7 +22,7 @@ class Pacemaker::Resource::Clone < Pacemaker::Resource
|
||||
end
|
||||
|
||||
def parse_definition
|
||||
unless definition =~ /^#{TYPE} (\S+) (\S+)/
|
||||
unless definition =~ /^#{self.class::TYPE} (\S+) (\S+)/
|
||||
raise Pacemaker::CIBObject::DefinitionParseError, \
|
||||
"Couldn't parse definition '#{definition}'"
|
||||
end
|
||||
|
@ -14,7 +14,7 @@ class Pacemaker::Resource::Group < Pacemaker::Resource
|
||||
end
|
||||
|
||||
def parse_definition
|
||||
unless definition =~ /^#{TYPE} (\S+) (.+?)(\s+\\)?$/
|
||||
unless definition =~ /^#{self.class::TYPE} (\S+) (.+?)(\s+\\)?$/
|
||||
raise Pacemaker::CIBObject::DefinitionParseError, \
|
||||
"Couldn't parse definition '#{definition}'"
|
||||
end
|
||||
@ -27,7 +27,7 @@ class Pacemaker::Resource::Group < Pacemaker::Resource
|
||||
end
|
||||
|
||||
def definition_string
|
||||
str = "#{TYPE} #{name} " + members.join(' ')
|
||||
str = "#{self.class::TYPE} #{name} " + members.join(' ')
|
||||
unless meta.empty?
|
||||
str << continuation_line(meta_string)
|
||||
end
|
||||
|
@ -21,7 +21,7 @@ class Pacemaker::Resource::Primitive < Pacemaker::Resource
|
||||
end
|
||||
|
||||
def parse_definition
|
||||
unless definition =~ /\A#{TYPE} (\S+) (\S+)/
|
||||
unless definition =~ /\A#{self.class::TYPE} (\S+) (\S+)/
|
||||
raise Pacemaker::CIBObject::DefinitionParseError, \
|
||||
"Couldn't parse definition '#{definition}'"
|
||||
end
|
||||
@ -50,7 +50,7 @@ class Pacemaker::Resource::Primitive < Pacemaker::Resource
|
||||
end
|
||||
|
||||
def definition_string
|
||||
str = "#{TYPE} #{name} #{agent}"
|
||||
str = "#{self.class::TYPE} #{name} #{agent}"
|
||||
%w(params meta op).each do |data_type|
|
||||
unless send(data_type).empty?
|
||||
data_string = send("#{data_type}_string")
|
||||
|
Loading…
x
Reference in New Issue
Block a user