Class: Actions::ForemanPipeline::Job::WaitUntilProvisioned
- Inherits:
-
Base
- Object
- Base
- Actions::ForemanPipeline::Job::WaitUntilProvisioned
- Includes:
- Dynflow::Action::Cancellable, Dynflow::Action::Polling
- Defined in:
- app/lib/actions/foreman_pipeline/job/wait_until_provisioned.rb
Instance Method Summary collapse
- #build_status(host = nil) ⇒ Object
- #create_output(host) ⇒ Object
- #done? ⇒ Boolean
- #invoke_external_task ⇒ Object
- #poll_external_task ⇒ Object
- #poll_interval ⇒ Object
- #timeout ⇒ Object
Instance Method Details
#build_status(host = nil) ⇒ Object
36 37 38 39 40 41 42 |
# File 'app/lib/actions/foreman_pipeline/job/wait_until_provisioned.rb', line 36 def build_status(host = nil) info = "Cannot find host by id" if host.nil? info = "Host not yet created, no reports received" if !host.nil? && host.reports.count < 1 info = "Host has invalid configuration" if !host.nil? && (host.reports.count > 1) && host.reports.last.error? status = (!host.nil? && (host.reports.count > 1) && !host.reports.last.error?) { :build => status, :info => info } end |
#create_output(host) ⇒ Object
32 33 34 |
# File 'app/lib/actions/foreman_pipeline/job/wait_until_provisioned.rb', line 32 def create_output(host) output[:host] = host end |
#done? ⇒ Boolean
8 9 10 |
# File 'app/lib/actions/foreman_pipeline/job/wait_until_provisioned.rb', line 8 def done? external_task[:build] end |
#invoke_external_task ⇒ Object
16 17 18 19 |
# File 'app/lib/actions/foreman_pipeline/job/wait_until_provisioned.rb', line 16 def invoke_external_task schedule_timeout(timeout) unless timeout <= 0 build_status end |
#poll_external_task ⇒ Object
21 22 23 24 25 26 |
# File 'app/lib/actions/foreman_pipeline/job/wait_until_provisioned.rb', line 21 def poll_external_task fail(_("'%s' is a required parameter") % 'host_id') unless input.key?(:host_id) host = Host.find(input[:host_id]) create_output(host) build_status(host) end |
#poll_interval ⇒ Object
28 29 30 |
# File 'app/lib/actions/foreman_pipeline/job/wait_until_provisioned.rb', line 28 def poll_interval 30 end |
#timeout ⇒ Object
12 13 14 |
# File 'app/lib/actions/foreman_pipeline/job/wait_until_provisioned.rb', line 12 def timeout input[:timeout] || 2 * 60 * 60 # 2 hours default end |