use new #from_name logic to handle sanity checks
This commit is contained in:
parent
2947139632
commit
4df1f5c40f
@ -35,13 +35,14 @@ module Pacemaker
|
|||||||
|
|
||||||
def from_name(name)
|
def from_name(name)
|
||||||
definition = get_definition(name)
|
definition = get_definition(name)
|
||||||
return nil unless definition
|
return nil unless definition and ! definition.empty?
|
||||||
obj_type = type(definition)
|
obj_type = type(definition)
|
||||||
subclass = @@subclasses[obj_type]
|
subclass = @@subclasses[obj_type]
|
||||||
unless subclass
|
unless subclass
|
||||||
raise "No subclass of #{self.name} was registered with type '#{obj_type}'"
|
raise "No subclass of #{self.name} was registered with type '#{obj_type}'"
|
||||||
end
|
end
|
||||||
obj = subclass.from_definition(definition)
|
obj = subclass.from_definition(definition)
|
||||||
|
return nil unless obj
|
||||||
unless name == obj.name
|
unless name == obj.name
|
||||||
raise "Name '#{obj.name}' in definition didn't match name '#{name}' used for retrieval"
|
raise "Name '#{obj.name}' in definition didn't match name '#{name}' used for retrieval"
|
||||||
end
|
end
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
require ::File.join(::File.dirname(__FILE__), *%w(.. libraries pacemaker cib_object))
|
require ::File.join(::File.dirname(__FILE__), *%w(.. libraries pacemaker))
|
||||||
|
|
||||||
# For vagrant env, switch to the following 'require' command.
|
# For vagrant env, switch to the following 'require' command.
|
||||||
#require "/srv/chef/file_store/cookbooks/pacemaker/providers/helper"
|
#require "/srv/chef/file_store/cookbooks/pacemaker/providers/helper"
|
||||||
@ -89,18 +89,17 @@ end
|
|||||||
def load_current_resource
|
def load_current_resource
|
||||||
name = @new_resource.name
|
name = @new_resource.name
|
||||||
|
|
||||||
primitive = Pacemaker::Resource::Primitive.new(name)
|
primitive = Pacemaker::CIBObject.from_name(name)
|
||||||
begin
|
unless primitive
|
||||||
primitive.load_definition
|
|
||||||
rescue Pacemaker::ObjectTypeMismatch => e
|
|
||||||
Chef::Log.warn e.message
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if ! primitive.definition or primitive.definition.empty?
|
|
||||||
Chef::Log.debug "CIB object definition nil or empty"
|
Chef::Log.debug "CIB object definition nil or empty"
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
unless primitive.is_a? Pacemaker::Resource::Primitive
|
||||||
|
Chef::Log.warn "CIB object '#{name}' was a #{primitive.type} not a resource primitive"
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
Chef::Log.debug "CIB object definition #{primitive.definition}"
|
Chef::Log.debug "CIB object definition #{primitive.definition}"
|
||||||
@current_resource_definition = primitive.definition
|
@current_resource_definition = primitive.definition
|
||||||
primitive.parse_definition
|
primitive.parse_definition
|
||||||
|
Loading…
x
Reference in New Issue
Block a user