module ForemanHooks::OrchestrationHook
Public Instance Methods
queue_hooks(event)
click to toggle source
# File lib/foreman_hooks/orchestration_hook.rb, line 23 def queue_hooks(event) logger.debug "Observed #{event} hook on #{self}" unless is_a? Orchestration logger.error "#{self.class.to_s} doesn't support orchestration, can't run orchestration hooks: use Rails events instead" return end return unless hooks = ForemanHooks.find_hooks(self.class, event) logger.debug "Queuing #{hooks.size} hooks for #{self.class.to_s}##{event}" counter = 0 hooks.each do |filename| basename = File.basename(filename) priority = basename =~ /^(\d+)/ ? $1 : 10000 + (counter += 1) logger.debug "Queuing hook #{filename} for #{self.class.to_s}##{event} at priority #{priority}" queue_to_use = (event =~ /^post/) ? post_queue : queue queue_to_use.create(:name => "Hook: #{filename}", :priority => priority.to_i, :action => [HookRunner.new(filename, self, event.to_s), event.to_s == 'destroy' ? :hook_execute_del : :hook_execute_set]) end end
queue_hooks_destroy()
click to toggle source
# File lib/foreman_hooks/orchestration_hook.rb, line 18 def queue_hooks_destroy return unless errors.empty? queue_hooks('destroy') end
queue_hooks_validate()
click to toggle source
# File lib/foreman_hooks/orchestration_hook.rb, line 12 def queue_hooks_validate return unless errors.empty? queue_hooks(new_record? ? 'create' : 'update') queue_hooks(new_record? ? 'postcreate' : 'postupdate') end