module ForemanHooks::OrchestrationHook
Public Instance Methods
queue_hooks(event)
click to toggle source
# File lib/foreman_hooks/orchestration_hook.rb, line 22 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 "Queueing #{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 #{basename} for #{self.class.to_s}##{event} at priority #{priority}" queue.create(:name => "Hook: #{basename}", :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 17 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') end