Skip to content

Commit

Permalink
Merge pull request #2783 from lgalis/tagging_based_on_ansible_provide…
Browse files Browse the repository at this point in the history
…r_node

Fix Ansible Tower provider node tagging to take into account the selected node model
  • Loading branch information
h-kataria committed Nov 21, 2017
2 parents 318c4e4 + 8e85612 commit 19e4158
Show file tree
Hide file tree
Showing 11 changed files with 85 additions and 32 deletions.
18 changes: 11 additions & 7 deletions app/controllers/automation_manager_controller.rb
Expand Up @@ -47,7 +47,7 @@ def tagging
case x_active_accord
when :automation_manager_providers
assert_privileges("automation_manager_provider_tag")
tagging_edit('ManageIQ::Providers::AnsibleTower::AutomationManager', false)
tagging_edit(class_for_provider_node.to_s, false)
when :automation_manager_cs_filter
assert_privileges("automation_manager_configured_system_tag")
tagging_edit('ConfiguredSystem', false)
Expand Down Expand Up @@ -100,20 +100,24 @@ def tree_record
end
end

def automation_manager_providers_tree_rec
def class_for_provider_node
nodes = x_node.split('-')
case nodes.first
when "root" then find_record(ManageIQ::Providers::AnsibleTower::AutomationManager, params[:id])
when "at", "e" then find_record(ManageIQ::Providers::AutomationManager::InventoryRootGroup, params[:id])
when "f" then find_record(ManageIQ::Providers::AnsibleTower::AutomationManager::ConfiguredSystem, params[:id])
when "root" then ManageIQ::Providers::AnsibleTower::AutomationManager
when "at", "e" then ManageIQ::Providers::AutomationManager::InventoryRootGroup
when "f", "cs" then ManageIQ::Providers::AnsibleTower::AutomationManager::ConfiguredSystem
when "xx" then
case nodes.second
when "at" then find_record(ManageIQ::Providers::AnsibleTower::AutomationManager, params[:id])
when "csa" then find_record(ConfiguredSystem, params[:id])
when "at" then ManageIQ::Providers::AnsibleTower::AutomationManager
when "csa" then ConfiguredSystem
end
end
end

def automation_manager_providers_tree_rec
find_record(class_for_provider_node, params[:id])
end

def automation_manager_cs_filter_tree_rec
nodes = x_node.split('-')
case nodes.first
Expand Down
Expand Up @@ -34,19 +34,4 @@ class ApplicationHelper::Toolbar::AutomationManagerProviderCenter < ApplicationH
]
),
])
button_group('automation_manager_policy', [
select(
:automation_manager_policy_choice,
'fa fa-shield fa-lg',
t = N_('Policy'),
t,
:items => [
button(
:automation_manager_provider_tag,
'pficon pficon-edit fa-lg',
N_('Edit Tags for this Ansible Tower Providers'),
N_('Edit Tags'))
]
)
])
end
@@ -1,4 +1,4 @@
module ApplicationHelper::Toolbar::ConfiguredSystem::AutomationPolicyMixin
module ApplicationHelper::Toolbar::ConfiguredSystem::Automation::PolicyMixin
def self.included(included_class)
included_class.button_group('automation_manager_policy', [
included_class.select(
Expand Down
@@ -1,4 +1,4 @@
module ApplicationHelper::Toolbar::ConfiguredSystem::LifecycleMixin
module ApplicationHelper::Toolbar::ConfiguredSystem::Foreman::LifecycleMixin
def self.included(included_class)
included_class.button_group('provider_foreman_lifecycle', [
included_class.select(
Expand Down
@@ -1,4 +1,4 @@
module ApplicationHelper::Toolbar::ConfiguredSystem::PolicyMixin
module ApplicationHelper::Toolbar::ConfiguredSystem::Foreman::PolicyMixin
def self.included(included_class)
included_class.button_group('provider_foreman_policy', [
included_class.select(
Expand Down
@@ -1,3 +1,3 @@
class ApplicationHelper::Toolbar::ConfiguredSystemsAnsibleCenter < ApplicationHelper::Toolbar::Basic
include ApplicationHelper::Toolbar::ConfiguredSystem::PolicyMixin
include ApplicationHelper::Toolbar::ConfiguredSystem::Automation::PolicyMixin
end
@@ -1,4 +1,4 @@
class ApplicationHelper::Toolbar::ConfiguredSystemsCenter < ApplicationHelper::Toolbar::Basic
include ApplicationHelper::Toolbar::ConfiguredSystem::LifecycleMixin
include ApplicationHelper::Toolbar::ConfiguredSystem::PolicyMixin
include ApplicationHelper::Toolbar::ConfiguredSystem::Foreman::LifecycleMixin
include ApplicationHelper::Toolbar::ConfiguredSystem::Foreman::PolicyMixin
end
@@ -1,4 +1,4 @@
class ApplicationHelper::Toolbar::UnassignedProfilesGroupCenter < ApplicationHelper::Toolbar::Basic
include ApplicationHelper::Toolbar::ConfiguredSystem::LifecycleMixin
include ApplicationHelper::Toolbar::ConfiguredSystem::PolicyMixin
include ApplicationHelper::Toolbar::ConfiguredSystem::Foreman::LifecycleMixin
include ApplicationHelper::Toolbar::ConfiguredSystem::Foreman::PolicyMixin
end
@@ -1,3 +1,22 @@
class ApplicationHelper::Toolbar::XAutomationManagerAnsibleTowerConfiguredSystemCenter < ApplicationHelper::Toolbar::Basic
include ApplicationHelper::Toolbar::ConfiguredSystem::AutomationPolicyMixin
button_group('record_summary', [
select(
:automation_manager_policy_choice,
'fa fa-shield fa-lg',
t = N_('Policy'),
t,
:enabled => true,
:items => [
button(
:configured_system_tag,
'pficon pficon-edit fa-lg',
N_('Edit Tags for this Configured System'),
N_('Edit Tags'),
:url => "tagging",
:url_parms => "main_div",
:send_checked => true,
:enabled => true),
]
),
])
end
2 changes: 1 addition & 1 deletion app/helpers/application_helper/toolbar_chooser.rb
Expand Up @@ -598,7 +598,7 @@ def configuration_manager_providers_tree_center_tb(nodes)
when "f" then inventory_group_center_tb
when "xx" then
case nodes.last
when "f" then "configured_systems_ansible_center_tb"
when "f" then "configured_systems_center_tb"
when "cp" then "unassigned_profiles_group_center_tb"
else "configuration_manager_providers_center_tb"
end
Expand Down
45 changes: 45 additions & 0 deletions spec/controllers/automation_manager_controller_spec.rb
Expand Up @@ -639,6 +639,51 @@
end
end

context "#tags_edit" do
let!(:user) { stub_user(:features => :all) }
before(:each) do
EvmSpecHelper.create_guid_miq_server_zone
allow(@ans_configured_system).to receive(:tagged_with).with(:cat => user.userid).and_return("my tags")
classification = FactoryGirl.create(:classification, :name => "department", :description => "Department")
@tag1 = FactoryGirl.create(:classification_tag,
:name => "tag1",
:parent => classification)
@tag2 = FactoryGirl.create(:classification_tag,
:name => "tag2",
:parent => classification)
allow(Classification).to receive(:find_assigned_entries).with(@ans_configured_system).and_return([@tag1, @tag2])
session[:tag_db] = "ConfiguredSystem"
edit = {:key => "ConfiguredSystem_edit_tags__#{@ans_configured_system.id}",
:tagging => "ConfiguredSystem",
:object_ids => [@ans_configured_system.id],
:current => {:assignments => []},
:new => {:assignments => [@tag1.id, @tag2.id]}}
session[:edit] = edit
end

after(:each) do
expect(response.status).to eq(200)
end

it "builds tagging screen" do
post :tagging, :params => {:format => :js, :miq_grid_checks => [@ans_configured_system.id]}
expect(assigns(:flash_array)).to be_nil
expect(response.status).to eq(200)
end

it "cancels tags edit" do
post :tagging_edit, :params => {:button => "cancel", :format => :js, :id => @ans_configured_system.id}
expect(assigns(:flash_array).first[:message]).to include("was cancelled by the user")
expect(assigns(:edit)).to be_nil
end

it "save tags" do
post :tagging_edit, :params => {:button => "save", :format => :js, :id => @ans_configured_system.id}
expect(assigns(:flash_array).first[:message]).to include("Tag edits were successfully saved")
expect(assigns(:edit)).to be_nil
end
end

def user_with_feature(features)
features = EvmSpecHelper.specific_product_features(*features)
FactoryGirl.create(:user, :features => features)
Expand Down

0 comments on commit 19e4158

Please sign in to comment.