boot - before kafo is ready to work, useful for adding new app arguments, logger won’t work yet init - just after hooking is initialized and kafo is configured, parameters have no values yet pre_values - just before value from CLI is set to parameters (they already have default values) pre_validations - just after system checks and before validations are executed (and before interactive wizard is started), at this point all parameter values are already set but not yet stored in answer file pre - just before puppet is executed to converge system post - just after puppet is executed to converge system
# File lib/kafo/hooking.rb, line 15 def initialize self.hooks = Hash.new { |h, k| h[k] = {} } @loaded = false end
# File lib/kafo/hooking.rb, line 45 def execute(group) logger.info "Executing hooks in group #{group}" self.hooks[group].each_pair do |name, hook| result = HookContext.execute(self.kafo, &hook) logger.debug "Hook #{name} returned #{result.inspect}" end logger.info "All hooks in group #{group} finished" end
# File lib/kafo/hooking.rb, line 24 def load base_dirs = [File.join([KafoConfigure.root_dir, 'hooks']), KafoConfigure.config.app[:hook_dirs]] base_dirs.each do |base_dir| TYPES.each do |hook_type| dir = File.join(base_dir, hook_type.to_s) Dir.glob(dir + "/*.rb").sort.each do |file| logger.debug "Loading hook #{file}" hook = File.read(file) hook_block = proc { instance_eval(hook, file, 1) } register(hook_type, file, &hook_block) end end @loaded = true end self end
# File lib/kafo/hooking.rb, line 41 def loaded? @loaded end
# File lib/kafo/hooking.rb, line 20 def logger KafoConfigure.logger end
# File lib/kafo/hooking.rb, line 54 def register_boot(name, &block) register(:boot, name, &block) end
# File lib/kafo/hooking.rb, line 58 def register_init(name, &block) register(:init, name, &block) end
# File lib/kafo/hooking.rb, line 74 def register_post(name, &block) register(:post, name, &block) end
# File lib/kafo/hooking.rb, line 70 def register_pre(name, &block) register(:pre, name, &block) end
# File lib/kafo/hooking.rb, line 66 def register_pre_validations(name, &block) register(:pre_validations, name, &block) end
# File lib/kafo/hooking.rb, line 62 def register_pre_values(name, &block) register(:pre_values, name, &block) end