Skip to content

Commit ac6d55f

Browse files
authored
Merge pull request #23637 from agrare/miq_provision_configuration_script_service_catalog_ui
Updates for ConfigurationScript Service UI
2 parents 013e8cf + 5c966b4 commit ac6d55f

8 files changed

+33
-12
lines changed

app/models/configuration_script_base.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ class ConfigurationScriptBase < ApplicationRecord
1010
belongs_to :parent, :class_name => "ConfigurationScriptBase"
1111
belongs_to :miq_task
1212

13+
delegate :name, :to => :manager, :prefix => true
14+
1315
has_many :children,
1416
:class_name => "ConfigurationScriptBase",
1517
:foreign_key => "parent_id",

app/models/manageiq/providers/base_manager.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ def self.catalog_types
1919
end
2020
delegate :catalog_types, :to => :class
2121

22+
# Return the names of all of the manager types e.g.: InfraManager, CloudManager, etc...
23+
def self.manager_type_names
24+
@manager_types ||= subclasses.map { |k| k.name.gsub("ManageIQ::Providers::", "") }
25+
end
26+
2227
def refresher
2328
self.class::Refresher
2429
end

app/models/miq_provision_configuration_script_request.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ class MiqProvisionConfigurationScriptRequest < MiqRequest
44
TASK_DESCRIPTION = N_('Automation Manager Provisioning')
55
SOURCE_CLASS_NAME = 'ConfigurationScript'
66

7-
default_value_for(:source_id) { |r| r.get_option(:source_id) }
7+
default_value_for(:source_id) { |r| r.get_option(:src_configuration_script_id) }
88
default_value_for :source_type, "ConfigurationScript"
99
validates :source, :presence => true
1010
validate :must_have_user
1111

1212
def self.request_task_class_from(attribs)
13-
source_id = MiqRequestMixin.get_option(:source_id, nil, attribs['options'])
13+
source_id = MiqRequestMixin.get_option(:src_configuration_script_id, nil, attribs['options'])
1414
configuration_script = ::ConfigurationScript.find_by(:id => source_id)
1515
return if configuration_script.nil?
1616

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
class MiqProvisionConfigurationScriptTask < MiqRequestTask
2+
def self.get_description(req_obj)
3+
"#{request_class::TASK_DESCRIPTION} for: #{req_obj.source.name}"
4+
end
25
end

app/models/miq_provision_configuration_script_workflow.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,7 @@ def self.automate_dialog_request
1414
def self.request_class
1515
MiqProvisionConfigurationScriptRequest
1616
end
17+
18+
def get_source_and_targets(_refresh = false)
19+
end
1720
end

app/models/miq_provision_workflow.rb

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,19 @@ def self.base_model
1515
# @return [Constant] A scoped provider constant name.
1616
#
1717
def self.class_for_platform(platform)
18-
classy = find_matching_constant("ManageIQ::Providers::#{platform}") ? platform : platform.classify
18+
vendor = find_matching_constant("ManageIQ::Providers::#{platform}") ? platform : platform.classify
1919

20-
find_matching_constant("MiqProvision#{classy}Workflow") ||
21-
find_matching_constant("ManageIQ::Providers::#{classy}::CloudManager::ProvisionWorkflow") ||
22-
find_matching_constant("ManageIQ::Providers::#{classy}::InfraManager::ProvisionWorkflow")
20+
class_names = ["MiqProvision#{vendor}Workflow"]
21+
class_names += ManageIQ::Providers::BaseManager
22+
.manager_type_names
23+
.map { |manager_type| "ManageIQ::Providers::#{vendor}::#{manager_type}::ProvisionWorkflow"}
24+
25+
class_names.each do |klass|
26+
result = find_matching_constant(klass)
27+
return result unless result.nil?
28+
end
29+
30+
nil
2331
end
2432

2533
def self.find_matching_constant(string)

product/dialogs/miq_dialogs/miq_provision_configuration_script_dialogs.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,13 @@
153153
:service:
154154
:description: Catalog
155155
:fields:
156-
:source_id:
156+
:src_configuration_script_id:
157157
:values_from:
158158
:method: :allowed_configuration_scripts
159-
:description: Workspaces
159+
:description: Configuration Script
160160
:required: true
161161
:notes:
162-
:display: :show
162+
:display: :edit
163163
:data_type: :integer
164164
:notes_display: :show
165165
:display: :show

spec/models/miq_provision_configuration_script_request_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22
let(:admin) { FactoryBot.create(:user) }
33
let(:ems) { FactoryBot.create(:automation_manager, :url => "https://localhost") }
44
let(:configuration_script) { FactoryBot.create(:configuration_script, :manager => ems) }
5-
let(:request) { FactoryBot.create(:miq_provision_configuration_script_request, :requester => admin, :options => {:source_id => [configuration_script.id]}) }
5+
let(:request) { FactoryBot.create(:miq_provision_configuration_script_request, :requester => admin, :options => {:src_configuration_script_id => [configuration_script.id]}) }
66

77
describe ".request_task_class_from" do
88
it "retrieves the request task class" do
9-
options = {:source_id => configuration_script.id}
9+
options = {:src_configuration_script_id => configuration_script.id}
1010

1111
expect(described_class.request_task_class_from("options" => options)).to eq(ems.class::Provision)
1212
end
1313
end
1414

1515
describe ".new_request_task" do
1616
it "returns the provision task" do
17-
options = {:source_id => configuration_script.id}
17+
options = {:src_configuration_script_id => configuration_script.id}
1818

1919
request_task = described_class.new_request_task("options" => options)
2020
expect(request_task).to have_attributes(:options => options, :state => "pending")

0 commit comments

Comments
 (0)