37 lines
1.2 KiB
Ruby
37 lines
1.2 KiB
Ruby
require 'chef/application'
|
|
require ::File.join(::File.dirname(__FILE__),
|
|
*%w(.. libraries pacemaker cib_object))
|
|
|
|
class Chef
|
|
module Mixin::PacemakerCommon
|
|
# Instantiate @current_resource and read details about the existing
|
|
# primitive (if any) via "crm configure show" into it, so that we
|
|
# can compare it against the resource requested by the recipe, and
|
|
# create / delete / modify as necessary.
|
|
#
|
|
# http://docs.opscode.com/lwrp_custom_provider_ruby.html#load-current-resource
|
|
def load_current_resource
|
|
name = @new_resource.name
|
|
|
|
cib_object = Pacemaker::CIBObject.from_name(name)
|
|
unless cib_object
|
|
::Chef::Log.debug "CIB object definition nil or empty"
|
|
return
|
|
end
|
|
|
|
unless cib_object.is_a? cib_object_class
|
|
expected_type = cib_object_class.description
|
|
::Chef::Log.warn "CIB object '#{name}' was a #{cib_object.type} not a #{expected_type}"
|
|
return
|
|
end
|
|
|
|
::Chef::Log.debug "CIB object definition #{cib_object.definition}"
|
|
@current_resource_definition = cib_object.definition
|
|
cib_object.parse_definition
|
|
|
|
@current_cib_object = cib_object
|
|
init_current_resource
|
|
end
|
|
end
|
|
end
|