Skip to content

Commit 4e555e6

Browse files
committed
Merge pull request #557 from nasark/workflow_template_support
Use Ansible Workflow/Job Template Common Parent Class
2 parents 1aeec82 + d32c864 commit 4e555e6

File tree

2 files changed

+40
-3
lines changed

2 files changed

+40
-3
lines changed

lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_ansible_template_method.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module MiqAeEngine
22
class MiqAeAnsibleTemplateMethod < MiqAeAnsibleMethodBase
3-
TEMPLATE_CLASS = ManageIQ::Providers::ExternalAutomationManager::ConfigurationScript
3+
TEMPLATE_CLASS = ManageIQ::Providers::AutomationManager::ConfigurationScript
44

55
private
66

spec/miq_ae_ansible_template_method_spec.rb

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
let(:miq_task) { FactoryBot.create(:miq_task) }
1313
let(:manager) { FactoryBot.create(:automation_manager_ansible_tower) }
1414
let(:template) { FactoryBot.create(:ansible_configuration_script, :manager => manager) }
15+
let(:workflow_template) { FactoryBot.create(:ansible_configuration_workflow, :manager => manager) }
1516

1617
let(:workspace) do
1718
double("MiqAeEngine::MiqAeWorkspaceRuntime", :root => root_object,
@@ -106,7 +107,7 @@
106107
end
107108
end
108109

109-
context "regular method" do
110+
context "regular method with jobs" do
110111
before do
111112
allow(described_class::TEMPLATE_CLASS).to receive(:find).and_return(template)
112113
allow(template).to receive(:run_with_miq_job).and_return(miq_task.id)
@@ -133,7 +134,7 @@
133134
expect { aw.reload }.to raise_exception(ActiveRecord::RecordNotFound)
134135
end
135136

136-
it "template launch fails" do
137+
it "job template launch fails" do
137138
expect(template).to receive(:run_with_miq_job).and_raise("Bamm Bamm Rubble")
138139

139140
at = described_class.new(aem, obj, inputs)
@@ -142,6 +143,42 @@
142143
end
143144
end
144145

146+
context "regular method with workflows" do
147+
before do
148+
allow(described_class::TEMPLATE_CLASS).to receive(:find).and_return(workflow_template)
149+
allow(workflow_template).to receive(:run_with_miq_job).and_return(miq_task.id)
150+
allow(MiqRegion).to receive(:my_region).and_return(FactoryBot.create(:miq_region))
151+
allow(AutomateWorkspace).to receive(:create).and_return(aw)
152+
allow(MiqTask).to receive(:wait_for_taskid).and_return(miq_task)
153+
allow(workspace).to receive(:update_workspace)
154+
end
155+
156+
it "success" do
157+
miq_task.update_status(MiqTask::STATE_FINISHED, MiqTask::STATUS_OK, "Done")
158+
159+
at = described_class.new(aem, obj, inputs)
160+
at.run
161+
162+
expect { aw.reload }.to raise_exception(ActiveRecord::RecordNotFound)
163+
end
164+
165+
it "method fails" do
166+
miq_task.update_status(MiqTask::STATE_FINISHED, MiqTask::STATUS_ERROR, "Done")
167+
168+
at = described_class.new(aem, obj, inputs)
169+
expect { at.run }.to raise_exception(MiqAeException::Error)
170+
expect { aw.reload }.to raise_exception(ActiveRecord::RecordNotFound)
171+
end
172+
173+
it "workflow template launch fails" do
174+
expect(workflow_template).to receive(:run_with_miq_job).and_raise("Bamm Bamm Rubble")
175+
176+
at = described_class.new(aem, obj, inputs)
177+
expect { at.run }.to raise_exception(MiqAeException::Error)
178+
expect { aw.reload }.to raise_exception(ActiveRecord::RecordNotFound)
179+
end
180+
end
181+
145182
context "state machine" do
146183
before do
147184
root_hash['ae_state_started'] = Time.zone.now.utc.to_s

0 commit comments

Comments
 (0)