Class: Actions::ForemanAcd::RunConfigurator

Inherits:
EntryAction
  • Object
show all
Defined in:
app/lib/actions/foreman_acd/run_configurator.rb

Overview

RunConfigurator implements a Foreman Task EntryAction

Instance Method Summary collapse

Instance Method Details

#finalizeObject



34
35
# File 'app/lib/actions/foreman_acd/run_configurator.rb', line 34

def finalize
end

#humanized_nameObject



41
42
43
# File 'app/lib/actions/foreman_acd/run_configurator.rb', line 41

def humanized_name
  _('Configure application instance after hosts deployment')
end

#plan(app_instance) ⇒ Object



7
8
9
10
# File 'app/lib/actions/foreman_acd/run_configurator.rb', line 7

def plan(app_instance)
  action_subject(app_instance)
  plan_self(:id => app_instance.id)
end

#rescue_strategyObject



37
38
39
# File 'app/lib/actions/foreman_acd/run_configurator.rb', line 37

def rescue_strategy
  Dynflow::Action::Rescue::Fail
end

#runObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/lib/actions/foreman_acd/run_configurator.rb', line 12

def run
  output[:status] = 'SUCCESS'
  begin
    app_instance = ::ForemanAcd::AppInstance.find(input.fetch(:id))
    app_configurator = ::ForemanAcd::AppConfigurator.new(app_instance)

    result, job = app_configurator.configure
    if result.success
      ::Foreman::Logging.logger('foreman_acd').info "Creating job to configure the app #{app_instance}"
      job.trigger!
      output[:configure_job_id] = job.job_invocation.id
    else
      ::Foreman::Logging.logger('foreman_acd').error "Could not create the job to configure the app #{app_instance}: #{result.error}"
    end
  rescue StandardError => e
    ::Foreman::Logging.logger('foreman_acd').error "Error while configuring application instance '#{app_instance.name}': #{e}"

    output[:status] = 'FAILURE'
    raise "Error while configuring hosts via ansible playbook for application instance '#{app_instance.name}': (#{e.message})"
  end
end