Module: Pacemaker::ResourceDefault

Included in:
Puppet::Provider::PacemakerXML, Serverspec::Type::PacemakerXML
Defined in:
lib/pacemaker/xml/resource_default.rb

Overview

functions related to the resource defaults main structure “resource_defaults”

Instance Method Summary collapse

Instance Method Details

#cib_section_resource_defaultsREXML::Element

get resource defaults CIB section

Returns:

  • (REXML::Element)


7
8
9
# File 'lib/pacemaker/xml/resource_default.rb', line 7

def cib_section_resource_defaults
  REXML::XPath.match(cib, '/cib/configuration/rsc_defaults/meta_attributes').first
end

#resource_default_defined?(attribute_name) ⇒ true, false

check if this resource default attribute have been defined

Parameters:

  • attribute_name (String)

Returns:

  • (true, false)


50
51
52
53
54
# File 'lib/pacemaker/xml/resource_default.rb', line 50

def resource_default_defined?(attribute_name)
  return false unless resource_defaults.key? attribute_name
  return false unless resource_defaults[attribute_name].is_a?(Hash) && resource_defaults[attribute_name]['value']
  true
end

#resource_default_delete(attribute_name) ⇒ Object

remove a defined resource default attribute

Parameters:

  • attribute_name (String)


41
42
43
44
45
# File 'lib/pacemaker/xml/resource_default.rb', line 41

def resource_default_delete(attribute_name)
  options = ['--quiet', '--type', 'rsc_defaults', '--attr-name', attribute_name]
  options += ['--delete-attr']
  retry_block { crm_attribute_safe options }
end

#resource_default_set(attribute_name, attribute_value) ⇒ Object

set a single resource default value

Parameters:

  • attribute_name (String)
  • attribute_value (String)


33
34
35
36
37
# File 'lib/pacemaker/xml/resource_default.rb', line 33

def resource_default_set(attribute_name, attribute_value)
  options = ['--quiet', '--type', 'rsc_defaults', '--attr-name', attribute_name]
  options += ['--attr-value', attribute_value]
  retry_block { crm_attribute_safe options }
end

#resource_default_value(attribute_name) ⇒ String?

extract a single resource default attribute value returns nil if it have not been set

Parameters:

  • attribute_name (String)

Returns:

  • (String, nil)


25
26
27
28
# File 'lib/pacemaker/xml/resource_default.rb', line 25

def resource_default_value(attribute_name)
  return unless resource_default_defined? attribute_name
  resource_defaults[attribute_name]['value']
end

#resource_defaultsHash

the main ‘resource_defaults’ structure contains defaults operations and their values

Returns:

  • (Hash)


14
15
16
17
18
19
# File 'lib/pacemaker/xml/resource_default.rb', line 14

def resource_defaults
  return @resource_defaults_structure if @resource_defaults_structure
  @resource_defaults_structure = children_elements_to_hash cib_section_resource_defaults, 'name'
  @resource_defaults_structure = {} unless @resource_defaults_structure
  @resource_defaults_structure
end