Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Disable editing of NetworkProviders except Nuage
With this commit we hide option "Edit this Network Provider" for any other NetworkProvider than Nuage. Editing NetworkProviders was disabled prior integrating Nuage into MIQ when we accidently enabled it for all of them. Well not any more, we hide it back for other providers while keeping it for Nuage. Signed-off-by: Miha Pleško <miha.plesko@xlab.si>
- Loading branch information
1 parent
02e1a70
commit 2e3b37f
Showing
3 changed files
with
52 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
class ApplicationHelper::Button::EmsNetwork < ApplicationHelper::Button::Basic | ||
def visible? | ||
::Settings.product.nuage | ||
return ::Settings.product.nuage if @record.nil? # add new | ||
@record.class == ManageIQ::Providers::Nuage::NetworkManager # edit existing | ||
end | ||
end |
26 changes: 26 additions & 0 deletions
26
spec/helpers/application_helper/toolbar/ems_network_center_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
describe ApplicationHelper::Toolbar::EmsNetworkCenter do | ||
let(:ems_network_vmdb) { described_class.definition['ems_network_vmdb'] } | ||
let(:ems_network_vmdb_choice) { ems_network_vmdb.buttons.detect { |b| b[:id] == 'ems_network_vmdb_choice' } } | ||
|
||
describe 'Edit this Network Provider' do | ||
let(:button_hash) { ems_network_vmdb_choice[:items].detect { |b| b[:id] == 'ems_network_edit' } } | ||
let(:button_klass) { button_hash[:klass] } | ||
let(:button) { button_klass.new(nil, nil, {}, {}) } | ||
let(:ems_nuage) { FactoryGirl.create(:ems_nuage_network) } | ||
let(:ems_openstack) { FactoryGirl.create(:ems_openstack) } | ||
|
||
it 'appropriate button class' do | ||
expect(button_klass).to eq(ApplicationHelper::Button::EmsNetwork) | ||
end | ||
|
||
it 'visible for nuage provider' do | ||
button.instance_variable_set(:@record, ems_nuage) | ||
expect(button.visible?).to eq(true) | ||
end | ||
|
||
it 'not visible for openstack provider' do | ||
button.instance_variable_set(:@record, ems_openstack) | ||
expect(button.visible?).to eq(false) | ||
end | ||
end | ||
end |
24 changes: 24 additions & 0 deletions
24
spec/helpers/application_helper/toolbar/ems_networks_center_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
describe ApplicationHelper::Toolbar::EmsNetworksCenter do | ||
let(:ems_network_vmdb) { described_class.definition['ems_network_vmdb'] } | ||
let(:ems_network_vmdb_choice) { ems_network_vmdb.buttons.detect { |b| b[:id] == 'ems_network_vmdb_choice' } } | ||
|
||
describe 'Add a New Network Provider' do | ||
let(:button_hash) { ems_network_vmdb_choice[:items].detect { |b| b[:id] == 'ems_network_new' } } | ||
let(:button_klass) { button_hash[:klass] } | ||
let(:button) { button_klass.new(nil, nil, {}, {}) } | ||
|
||
it 'appropriate button class' do | ||
expect(button_klass).to eq(ApplicationHelper::Button::EmsNetworkNew) | ||
end | ||
|
||
it 'visible when nuage provider enabled' do | ||
allow(::Settings.product).to receive(:nuage).and_return(true) | ||
expect(button.visible?).to eq(true) | ||
end | ||
|
||
it 'hidden when nuage provider disabled' do | ||
allow(::Settings.product).to receive(:nuage).and_return(false) | ||
expect(button.visible?).to eq(false) | ||
end | ||
end | ||
end |