Skip to content

Commit 8680d2f

Browse files
martinpovolnysimaishi
authored andcommitted
Merge pull request #3721 from hstastna/Tagging_Ansible_Incorrect_tag_page_playbooks_through_repo
Fix opening incorrect tag page, opened for Ansible Playbooks navigated through Repository summary page (cherry picked from commit 09a453a) Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1583779
1 parent 3943aa0 commit 8680d2f

File tree

8 files changed

+101
-5
lines changed

8 files changed

+101
-5
lines changed

app/controllers/ansible_credential_controller.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ class AnsibleCredentialController < ApplicationController
1111
include Mixins::EmbeddedAnsibleRefreshMixin
1212

1313
menu_section :ansible_credentials
14-
toolbar :ansible_credential
1514

1615
def self.display_methods
1716
%w(repositories)
@@ -35,6 +34,8 @@ def button
3534
delete_credentials
3635
when 'ansible_credential_tag'
3736
tag(self.class.model)
37+
when "ansible_repository_tag" # repositories from nested list
38+
tag(ManageIQ::Providers::EmbeddedAutomationManager::ConfigurationScriptSource)
3839
end
3940
end
4041

app/controllers/ansible_playbook_controller.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ class AnsiblePlaybookController < ApplicationController
1010
include Mixins::GenericShowMixin
1111

1212
menu_section :ansible_playbooks
13-
toolbar :ansible_playbook
1413

1514
def self.model
1615
ManageIQ::Providers::EmbeddedAnsible::AutomationManager::Playbook

app/controllers/ansible_repository_controller.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ class AnsibleRepositoryController < ApplicationController
1111
include Mixins::EmbeddedAnsibleRefreshMixin
1212

1313
menu_section :ansible_repositories
14-
toolbar :ansible_repository
1514

1615
def self.display_methods
1716
%w(playbooks)
@@ -49,6 +48,8 @@ def button
4948
end
5049
when "ansible_repository_tag"
5150
tag(self.class.model)
51+
when "embedded_configuration_script_payload_tag" # playbooks from nested list
52+
tag(ManageIQ::Providers::EmbeddedAnsible::AutomationManager::Playbook)
5253
end
5354
end
5455

app/helpers/application_helper/toolbar_chooser.rb

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,9 @@ def center_toolbar_filename_classic
448448
security_groups storages middleware_deployments middleware_datasources
449449
middleware_messagings middleware_servers)
450450
to_display_center = %w(stack_orchestration_template topology cloud_object_store_objects generic_objects physical_servers)
451+
to_display_ansible = %w(playbooks repositories credentials)
451452
performance_layouts = %w(vm host ems_container)
453+
452454
if @lastaction == 'show' && (@view || @display != 'main') && !@layout.starts_with?("miq_request")
453455
if @display == "vms" || @display == "all_vms"
454456
return "vm_infras_center_tb"
@@ -464,6 +466,8 @@ def center_toolbar_filename_classic
464466
return "#{@layout}_center_tb"
465467
elsif to_display.include?(@display)
466468
return "#{@display}_center_tb"
469+
elsif to_display_ansible.include?(@display) # toolbars for nested list screens of Ansible Playbooks/Repositories/Credentials
470+
return "ansible_#{@display}_center"
467471
elsif to_display_center.include?(@display)
468472
return "#{@display}_center"
469473
elsif @layout == 'ems_container'
@@ -560,12 +564,28 @@ def center_toolbar_filename_classic
560564
end
561565
elsif %w(my_tasks all_tasks).include?(@layout)
562566
return "tasks_center_tb"
567+
elsif @layout.to_s.starts_with?("manageiq") # toolbars for list/summary screens of Ansible Playbooks/Repositories/Credentials
568+
return "#{center_toolbar_filename_embedded_ansible}_center"
563569
end
564570
end
565571
end
566572
nil
567573
end
568574

575+
def center_toolbar_filename_embedded_ansible
576+
case @layout
577+
when "manageiq/providers/embedded_ansible/automation_manager/playbook"
578+
toolbar_filename = "ansible_playbook"
579+
when "manageiq/providers/embedded_automation_manager/configuration_script_source"
580+
toolbar_filename = "ansible_repository"
581+
when "manageiq/providers/embedded_automation_manager/authentication"
582+
toolbar_filename = "ansible_credential"
583+
else
584+
return
585+
end
586+
%w(show_list).include?(@lastaction) ? toolbar_filename.pluralize : toolbar_filename
587+
end
588+
569589
def center_toolbar_filename_configuration_manager_providers
570590
nodes = x_node.split('-')
571591
if x_active_tree == :configuration_manager_providers_tree

spec/controllers/ansible_credential_controller_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
it "renders correct template" do
3131
is_expected.to render_template(:partial => "layouts/_gtl")
3232
end
33+
34+
it 'renders the correct toolbar' do
35+
expect(ApplicationHelper::Toolbar::AnsibleCredentialsCenter).to receive(:definition)
36+
post :show_list
37+
end
3338
end
3439

3540
describe '#button' do
@@ -72,5 +77,18 @@
7277
controller.send(:button)
7378
end
7479
end
80+
81+
context 'tagging one or more ansible repositories from nested list' do
82+
let(:params) { {:pressed => "ansible_repository_tag"} }
83+
84+
before do
85+
controller.instance_variable_set(:@display, "repositories")
86+
end
87+
88+
it 'calls tag method' do
89+
expect(controller).to receive(:tag).with(ManageIQ::Providers::EmbeddedAutomationManager::ConfigurationScriptSource)
90+
controller.send(:button)
91+
end
92+
end
7593
end
7694
end

spec/controllers/ansible_playbook_controller_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@
3636
it "renders correct template" do
3737
is_expected.to render_template(:partial => "layouts/_gtl")
3838
end
39+
40+
it 'renders the correct toolbar' do
41+
expect(ApplicationHelper::Toolbar::AnsiblePlaybooksCenter).to receive(:definition)
42+
post :show_list
43+
end
3944
end
4045

4146
describe "#button" do

spec/controllers/ansible_repository_controller_spec.rb

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
login_as FactoryGirl.create(:user_admin)
77
end
88

9-
context "show" do
9+
describe "#show" do
1010
let(:repository) { FactoryGirl.create(:embedded_ansible_configuration_script_source) }
1111
subject { get :show, :params => {:id => repository.id} }
1212
render_views
@@ -20,7 +20,7 @@
2020
end
2121
end
2222

23-
context "showList" do
23+
describe "#show_list" do
2424
let(:repository) { FactoryGirl.create(:embedded_ansible_configuration_script_source) }
2525
subject { get :show_list, :params => {} }
2626
render_views
@@ -32,6 +32,11 @@
3232
it "render view for list of repositories" do
3333
is_expected.to render_template(:partial => "layouts/_gtl")
3434
end
35+
36+
it 'renders the correct toolbar' do
37+
expect(ApplicationHelper::Toolbar::AnsibleRepositoriesCenter).to receive(:definition)
38+
post :show_list
39+
end
3540
end
3641

3742
describe "#show_association" do
@@ -123,5 +128,18 @@
123128
controller.send(:button)
124129
end
125130
end
131+
132+
context 'tagging one or more playbooks from nested list' do
133+
let(:params) { {:pressed => "embedded_configuration_script_payload_tag"} }
134+
135+
before do
136+
controller.instance_variable_set(:@display, "playbooks")
137+
end
138+
139+
it 'calls tag method' do
140+
expect(controller).to receive(:tag).with(ManageIQ::Providers::EmbeddedAnsible::AutomationManager::Playbook)
141+
controller.send(:button)
142+
end
143+
end
126144
end
127145
end

spec/helpers/application_helper/toolbar_chooser_spec.rb

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,4 +173,38 @@
173173
end
174174
end
175175
end
176+
177+
describe '#center_toolbar_filename_classic' do
178+
subject { chooser.send(:center_toolbar_filename_classic) }
179+
180+
{
181+
"manageiq/providers/embedded_ansible/automation_manager/playbook" => "playbook",
182+
"manageiq/providers/embedded_automation_manager/configuration_script_source" => "repository",
183+
"manageiq/providers/embedded_automation_manager/authentication" => "credential"
184+
}.each do |layout, screen|
185+
context "toolbar for summary screen of Ansible #{screen}" do
186+
let(:chooser) { ApplicationHelper::ToolbarChooser.new(nil, nil, :display => "main", :lastaction => "show", :layout => layout) }
187+
188+
it 'returns proper toolbar filename for the screen' do
189+
expect(subject).to eq("ansible_#{screen}_center")
190+
end
191+
end
192+
193+
context "toolbars for list screens of Ansible #{screen.pluralize}" do
194+
let(:chooser) { ApplicationHelper::ToolbarChooser.new(nil, nil, :lastaction => "show_list", :layout => layout) }
195+
196+
it 'returns proper toolbar filename for the screen' do
197+
expect(subject).to eq("ansible_#{screen.pluralize}_center")
198+
end
199+
end
200+
201+
context "toolbars for nested list screens of Ansible #{screen.pluralize}" do
202+
let(:chooser) { ApplicationHelper::ToolbarChooser.new(nil, nil, :display => screen.pluralize, :lastaction => "show", :layout => layout) }
203+
204+
it 'returns proper toolbar filename for the screen' do
205+
expect(subject).to eq("ansible_#{screen.pluralize}_center")
206+
end
207+
end
208+
end
209+
end
176210
end

0 commit comments

Comments
 (0)