diff --git a/app/models/miq_request_task.rb b/app/models/miq_request_task.rb index 4b857383906..960934c3074 100644 --- a/app/models/miq_request_task.rb +++ b/app/models/miq_request_task.rb @@ -267,7 +267,7 @@ def valid_states end def workflow_inputs - dialog_values + {:dialog => dialog_values} end def dialog_values diff --git a/spec/models/service_template_provision_task_spec.rb b/spec/models/service_template_provision_task_spec.rb index 0a92e5093ae..03d16f9a3df 100644 --- a/spec/models/service_template_provision_task_spec.rb +++ b/spec/models/service_template_provision_task_spec.rb @@ -141,7 +141,7 @@ def service_resource_id(index, scaling_max) configuration_script = ConfigurationScript.find(@task_0.options[:configuration_script_id]) - expect(configuration_script).to have_attributes(:manager => automation_manager, :run_by_userid => @admin.userid, :status => "pending") + expect(configuration_script).to have_attributes(:manager => automation_manager, :run_by_userid => @admin.userid, :status => "pending", :context => hash_including("Execution" => hash_including("Input" => {"dialog" => {}}))) expect(MiqQueue.first).to have_attributes( :instance_id => configuration_script.id, :class_name => configuration_script.type, @@ -151,6 +151,30 @@ def service_resource_id(index, scaling_max) :args => [hash_including(:object_type => "ServiceTemplateProvisionTask", :object_id => @task_0.id)] ) end + + context "with dialog_values" do + let(:dialog_values) { {:foo => "bar"} } + before { @task_0.options[:dialog] = dialog_values } + + it "creates a configuration_script instance" do + zone = FactoryBot.create(:zone, :name => "special") + automation_manager = FactoryBot.create(:ems_workflows_automation, :zone => zone) + payload = FactoryBot.create(:embedded_workflow, :manager => automation_manager) + @task_0.source = FactoryBot.create( + :service_template_generic, + :name => "Provision", + :resource_actions => [ + FactoryBot.create(:resource_action, :action => "Provision", :configuration_script_payload => payload) + ] + ) + + @task_0.deliver_queue + + configuration_script = ConfigurationScript.find(@task_0.options[:configuration_script_id]) + + expect(configuration_script.context).to include("Execution" => hash_including("Input" => {"dialog" => dialog_values})) + end + end end context "with a configuration_script_payload in options" do