Module: HybridPlatformsConductor::NodesHandler::ConfigDSLExtension
- Defined in:
- lib/hybrid_platforms_conductor/nodes_handler.rb
Overview
Extend the Config DSL
Instance Attribute Summary collapse
-
#cmdb_masters ⇒ Object
readonly
List of CMDB masters.
-
#sudo_procs ⇒ Object
readonly
List of sudo methods.
Instance Method Summary collapse
-
#init_nodes_handler_config ⇒ Object
Mixin initializer.
-
#master_cmdbs(master_cmdbs_info) ⇒ Object
Set CMDB masters.
-
#sudo_for(&sudo_proc) ⇒ Object
Set a sudo proc.
Instance Attribute Details
#cmdb_masters ⇒ Object (readonly)
List of CMDB masters. Each info has the following properties:
-
nodes_selectors_stack (Array<Object>): Stack of nodes selectors impacted by this rule.
-
cmdb_masters (Hash< Symbol, Array<Symbol> >): List of metadata properties per CMDB name considered as master for those properties.
Array< Hash<Symbol, Object> >
19 20 21 |
# File 'lib/hybrid_platforms_conductor/nodes_handler.rb', line 19 def cmdb_masters @cmdb_masters end |
#sudo_procs ⇒ Object (readonly)
List of sudo methods. Each info has the following properties:
-
nodes_selectors_stack (Array<Object>): Stack of nodes selectors impacted by this rule.
-
sudo_proc (Proc): Code giving the sudo line for a given user
- Parameters
-
user (String): User for which we want sudo
- Result
-
String: Corresponding sudo string
Array< Hash<Symbol, Object> >
29 30 31 |
# File 'lib/hybrid_platforms_conductor/nodes_handler.rb', line 29 def sudo_procs @sudo_procs end |
Instance Method Details
#init_nodes_handler_config ⇒ Object
Mixin initializer
32 33 34 35 |
# File 'lib/hybrid_platforms_conductor/nodes_handler.rb', line 32 def init_nodes_handler_config @cmdb_masters = [] @sudo_procs = [] end |
#master_cmdbs(master_cmdbs_info) ⇒ Object
Set CMDB masters
- Parameters
-
master_cmdbs_info (Hash< Symbol, Symbol or Array<Symbol> >): List of metadata properties (or single one) per CMDB name considered as master for those properties.
41 42 43 44 45 46 |
# File 'lib/hybrid_platforms_conductor/nodes_handler.rb', line 41 def master_cmdbs(master_cmdbs_info) @cmdb_masters << { cmdb_masters: Hash[master_cmdbs_info.map { |cmdb, properties| [cmdb, properties.is_a?(Array) ? properties : [properties]] }], nodes_selectors_stack: current_nodes_selectors_stack } end |
#sudo_for(&sudo_proc) ⇒ Object
Set a sudo proc
- Parameters
-
sudo_proc (Proc): The sudo proc (see #sudo_procs doc to know the signature)
52 53 54 55 56 57 |
# File 'lib/hybrid_platforms_conductor/nodes_handler.rb', line 52 def sudo_for(&sudo_proc) @sudo_procs << { nodes_selectors_stack: current_nodes_selectors_stack, sudo_proc: sudo_proc } end |