Skip to content

Commit

Permalink
Merge pull request ManageIQ#11653 from Ladas/openstack_provisioning_s…
Browse files Browse the repository at this point in the history
…how_shared_private_networks

Show shared networks in the OpenStack provisioning dialog
  • Loading branch information
bdunne committed Oct 4, 2016
2 parents 0929ce3 + 9046214 commit eefb054
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 3 deletions.
Expand Up @@ -7,4 +7,8 @@ class ManageIQ::Providers::Openstack::CloudManager::CloudTenant < ::CloudTenant

has_many :private_networks,
:class_name => "ManageIQ::Providers::Openstack::NetworkManager::CloudNetwork::Private"

def all_private_networks
private_networks + (try(:ext_management_system).try(:private_networks).try(:where, :shared => true) || [])
end
end
Expand Up @@ -54,7 +54,7 @@ def allowed_cloud_networks(_options = {})
# We want only non external networks to be connectable directly to the Vm
return {} unless (src_obj = provider_or_tenant_object)

src_obj.private_networks.each_with_object({}) do |cn, hash|
src_obj.all_private_networks.each_with_object({}) do |cn, hash|
hash[cn.id] = cn.cidr.blank? ? cn.name : "#{cn.name} (#{cn.cidr})"
end
end
Expand Down
1 change: 1 addition & 0 deletions app/models/manageiq/providers/openstack/network_manager.rb
Expand Up @@ -19,6 +19,7 @@ class ManageIQ::Providers::Openstack::NetworkManager < ManageIQ::Providers::Netw
:class_name => "ManageIQ::Providers::Openstack::NetworkManager::CloudNetwork::Public"
has_many :private_networks, :foreign_key => :ems_id, :dependent => :destroy,
:class_name => "ManageIQ::Providers::Openstack::NetworkManager::CloudNetwork::Private"
alias_method :all_private_networks, :private_networks

# Auth and endpoints delegations, editing of this type of manager must be disabled
delegate :authentication_check,
Expand Down
1 change: 1 addition & 0 deletions app/models/mixins/has_network_manager_mixin.rb
Expand Up @@ -16,6 +16,7 @@ module HasNetworkManagerMixin
:network_routers,
:public_networks,
:private_networks,
:all_private_networks,
:all_cloud_networks,
:to => :network_manager,
:allow_nil => true
Expand Down
Expand Up @@ -263,17 +263,28 @@
@cn3 = FactoryGirl.create(:cloud_network_public_openstack,
:cloud_tenant => @ct2,
:ext_management_system => provider.network_manager)

@cn_shared = FactoryGirl.create(:cloud_network_private_openstack,
:shared => true,
:cloud_tenant => @ct2,
:ext_management_system => provider.network_manager)
end

it "#allowed_cloud_networks with tenant selected" do
workflow.values.merge!(:cloud_tenant => @ct2.id)
cns = workflow.allowed_cloud_networks
expect(cns.keys).to match_array [@cn2.id]
expect(cns.keys).to match_array [@cn2.id, @cn_shared.id]
end

it "#allowed_cloud_networks with another tenant selected" do
workflow.values[:cloud_tenant] = @ct1.id
cns = workflow.allowed_cloud_networks
expect(cns.keys).to match_array [@cn1.id, @cn_shared.id]
end

it "#allowed_cloud_networks with tenant not selected" do
cns = workflow.allowed_cloud_networks
expect(cns.keys).to match_array [@cn2.id, @cn1.id]
expect(cns.keys).to match_array [@cn2.id, @cn1.id, @cn_shared.id]
end
end

Expand Down

0 comments on commit eefb054

Please sign in to comment.