From ae2c0621374afcd85d48036f78055ad22b816ae8 Mon Sep 17 00:00:00 2001 From: william fitzgerald Date: Tue, 14 Feb 2017 18:08:20 -0500 Subject: [PATCH 1/3] Added error notification. --- .../__methods__/update_serviceprovision_status.rb | 6 ++++++ .../__methods__/update_serviceprovision_status.rb | 6 ++++++ 2 files changed, 12 insertions(+) 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..caa2562db 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 @@ -22,6 +22,12 @@ def main end 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..5b7c3bd9f 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 @@ -23,6 +23,12 @@ def main end 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 From 74959000be8c68295335ed4a5683474d06081d99 Mon Sep 17 00:00:00 2001 From: william fitzgerald Date: Mon, 27 Feb 2017 10:27:42 -0500 Subject: [PATCH 2/3] Modified methods and added a test for each. --- .../__methods__/update_serviceprovision_status.rb | 2 +- .../__methods__/update_serviceprovision_status.rb | 2 +- .../__methods__/update_serviceprovision_status_spec.rb | 6 ++++++ .../__methods__/update_serviceprovision_status_spec.rb | 6 ++++++ 4 files changed, 14 insertions(+), 2 deletions(-) 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 caa2562db..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,7 @@ 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", 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 5b7c3bd9f..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,7 @@ 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', 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 From f4247196068506902455e2fe202236581aad65f5 Mon Sep 17 00:00:00 2001 From: william fitzgerald Date: Wed, 8 Mar 2017 11:03:13 -0500 Subject: [PATCH 3/3] Updated update_serviceprovision_status method in AutomationManagement . Added notification test for spec. --- .../__methods__/update_serviceprovision_status.rb | 10 ++++++++-- .../__methods__/update_serviceprovision_status_spec.rb | 6 ++++++ 2 files changed, 14 insertions(+), 2 deletions(-) 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/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