diff --git a/content/automate/ManageIQ/AutomationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb b/content/automate/ManageIQ/AutomationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb index 709c3098d..657386216 100644 --- a/content/automate/ManageIQ/AutomationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb +++ b/content/automate/ManageIQ/AutomationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb @@ -1,7 +1,7 @@ # # Description: This method updates the service provision status. # Required inputs: status -# + module ManageIQ module Automate module AutomationManagement @@ -22,7 +22,13 @@ def main raise "Service Template Provision Task not provided" end - update_status_message(prov, @handle.inputs['status']) + updated_message = update_status_message(prov, @handle.inputs['status']) + + if @handle.root['ae_result'] == "error" + @handle.create_notification(:level => "error", + :subject => prov.miq_request, + :message => "Instance Provision Error: #{updated_message}") + end end private diff --git a/content/automate/ManageIQ/Cloud/Orchestration/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb b/content/automate/ManageIQ/Cloud/Orchestration/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb index bc2b5bfc8..0c99158ab 100644 --- a/content/automate/ManageIQ/Cloud/Orchestration/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb +++ b/content/automate/ManageIQ/Cloud/Orchestration/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb @@ -21,7 +21,13 @@ def main raise "Service Template Provision Task not provided" end - update_status_message(prov, @handle.inputs['status']) + updated_message = update_status_message(prov, @handle.inputs['status']) + + if @handle.root['ae_result'] == "error" + @handle.create_notification(:level => "error", + :subject => prov.miq_request, + :message => "Instance Provision Error: #{updated_message}") + end end private diff --git a/content/automate/ManageIQ/ConfigurationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb b/content/automate/ManageIQ/ConfigurationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb index fa00ad9cf..75751df38 100644 --- a/content/automate/ManageIQ/ConfigurationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb +++ b/content/automate/ManageIQ/ConfigurationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status.rb @@ -22,7 +22,13 @@ def main raise "Service Template Provision Task not provided" end - update_status_message(prov, @handle.inputs['status']) + updated_message = update_status_message(prov, @handle.inputs['status']) + + if @handle.root['ae_result'] == 'error' + @handle.create_notification(:level => 'error', + :subject => prov.miq_request, + :message => "Ansible Tower Provision Error: #{updated_message}") + end end private diff --git a/spec/content/automate/ManageIQ/AutomationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb b/spec/content/automate/ManageIQ/AutomationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb index 5837f1704..81ec5d0fd 100644 --- a/spec/content/automate/ManageIQ/AutomationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb +++ b/spec/content/automate/ManageIQ/AutomationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb @@ -58,6 +58,12 @@ msg = "Server [#{miq_server.name}] Service [#{service_orchestration.name}] Step [] Status [fred] Message [] " expect(svc_model_request.reload.message).to eq(msg) end + + it "creates notification due to ae_result is 'error'" do + ae_service.root['ae_result'] = "error" + expect(ae_service).to receive(:create_notification) + described_class.new(ae_service).main + end end context "without a stp request object" do diff --git a/spec/content/automate/ManageIQ/Cloud/Orchestration/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb b/spec/content/automate/ManageIQ/Cloud/Orchestration/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb index c82e49b94..977e07090 100644 --- a/spec/content/automate/ManageIQ/Cloud/Orchestration/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb +++ b/spec/content/automate/ManageIQ/Cloud/Orchestration/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb @@ -57,6 +57,12 @@ msg = "Server [#{miq_server.name}] Service [#{service_orchestration.name}] Step [] Status [fred] Message [] " expect(svc_model_request.reload.message).to eq(msg) end + + it "creates notification due to ae_result is 'error'" do + ae_service.root['ae_result'] = "error" + expect(ae_service).to receive(:create_notification) + described_class.new(ae_service).main + end end context "without a stp request object" do diff --git a/spec/content/automate/ManageIQ/ConfigurationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb b/spec/content/automate/ManageIQ/ConfigurationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb index b1ac31163..c02ca16e7 100644 --- a/spec/content/automate/ManageIQ/ConfigurationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb +++ b/spec/content/automate/ManageIQ/ConfigurationManagement/AnsibleTower/Service/Provisioning/StateMachines/Provision.class/__methods__/update_serviceprovision_status_spec.rb @@ -58,6 +58,12 @@ msg = "Server [#{miq_server.name}] Service [#{service_orchestration.name}] Step [] Status [fred] Message [] " expect(svc_model_request.reload.message).to eq(msg) end + + it "creates notification due to ae_result is 'error'" do + ae_service.root['ae_result'] = "error" + expect(ae_service).to receive(:create_notification) + described_class.new(ae_service).main + end end context "without a stp request object" do