diff --git a/app/models/miq_request_task.rb b/app/models/miq_request_task.rb index e4e98f0e6dc..4b857383906 100644 --- a/app/models/miq_request_task.rb +++ b/app/models/miq_request_task.rb @@ -140,13 +140,13 @@ def deliver_queue(req_type = request_type, zone = nil) _log.info("Queuing #{request_class::TASK_DESCRIPTION}: [#{description}]...") - workflow_id = resource_action&.configuration_script_id || options[:configuration_script_payload_id] + workflow_id = options[:configuration_script_payload_id] workflow = ConfigurationScriptPayload.find(workflow_id) if workflow_id if workflow miq_task_id = workflow.run(:inputs => workflow_inputs, :userid => get_user.userid, :zone => zone, :object => self) options[:miq_task_id] = miq_task_id - options[:configuration_script_payload_id] = workflow_id + options[:configuration_script_payload_id] = workflow.id options[:configuration_script_id] = MiqTask.find(miq_task_id).context_data[:workflow_instance_id] save! elsif self.class::AUTOMATE_DRIVES diff --git a/app/models/service_template_provision_request.rb b/app/models/service_template_provision_request.rb index d2744527f03..684bc02177e 100644 --- a/app/models/service_template_provision_request.rb +++ b/app/models/service_template_provision_request.rb @@ -57,6 +57,21 @@ def requested_task_idx def customize_request_task_attributes(req_task_attrs, idx) req_task_attrs['options'][:pass] = idx + configuration_script_id = resource_action&.configuration_script_id + return if configuration_script_id.nil? + + if source.prov_type == "generic" + req_task_attrs['options'][:configuration_script_payload_id] = configuration_script_id + else + req_task_attrs['options'][:parent_configuration_script_payload_id] = configuration_script_id + end + end + + def resource_action + resource_action_id = options.dig(:workflow_settings, :resource_action_id) + return if resource_action_id.nil? + + ResourceAction.find(resource_action_id) end def originating_controller diff --git a/spec/models/service_template_provision_task_spec.rb b/spec/models/service_template_provision_task_spec.rb index d40a5e6246d..0a92e5093ae 100644 --- a/spec/models/service_template_provision_task_spec.rb +++ b/spec/models/service_template_provision_task_spec.rb @@ -129,6 +129,12 @@ def service_resource_id(index, scaling_max) ] ) + @task_0.update( + :options => { + :configuration_script_payload_id => payload.id + } + ) + @task_0.deliver_queue expect(@task_0.reload.options.keys).to include(:miq_task_id, :configuration_script_id, :configuration_script_payload_id)