From d7110a979c0707ece9f1f6c4941c20c2ec72ac9a Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Wed, 6 Aug 2014 22:00:56 +0200 Subject: [PATCH] network/providers: create public network only from neutron-server The puppet provider which creates the networks should be declared from the neutron-server node. The catalog would fail on other nodes, that's why it's better to ensure that the catalog contains neutron::server class if we want to manage the external public network. Closes-bug #564 --- manifests/network.pp | 14 ++++++++------ spec/classes/cloud_compute_hypervisor_spec.rb | 9 ++------- spec/classes/cloud_network_dhcp_spec.rb | 9 ++------- spec/classes/cloud_network_l3_spec.rb | 9 ++------- spec/classes/cloud_network_lbaas_spec.rb | 9 ++------- spec/classes/cloud_network_metadata_spec.rb | 9 ++------- spec/classes/cloud_network_vpn_spec.rb | 9 ++------- 7 files changed, 20 insertions(+), 48 deletions(-) diff --git a/manifests/network.pp b/manifests/network.pp index 3fcd9acb..fb24e31c 100644 --- a/manifests/network.pp +++ b/manifests/network.pp @@ -196,12 +196,14 @@ class cloud::network( vs_port {$external_int: ensure => present, bridge => $external_bridge - } -> - neutron_network {'public': - provider_network_type => 'flat', - provider_physical_network => 'public', - shared => true, - router_external => true + } + if defined('neutron::server') { + neutron_network {'public': + provider_network_type => 'flat', + provider_physical_network => 'public', + shared => true, + router_external => true + } } } diff --git a/spec/classes/cloud_compute_hypervisor_spec.rb b/spec/classes/cloud_compute_hypervisor_spec.rb index c346ae8b..8dccf2fa 100644 --- a/spec/classes/cloud_compute_hypervisor_spec.rb +++ b/spec/classes/cloud_compute_hypervisor_spec.rb @@ -438,13 +438,8 @@ describe 'cloud::compute::hypervisor' do :bridge => 'br-pub' ) end - it 'configure provider external network' do - should contain_neutron_network('public').with( - :provider_network_type => 'flat', - :provider_physical_network => 'public', - :shared => true, - :router_external => true - ) + it 'should not configure provider external network' do + should_not contain__neutron_network('public') end end end diff --git a/spec/classes/cloud_network_dhcp_spec.rb b/spec/classes/cloud_network_dhcp_spec.rb index 4b0b127b..48201b72 100644 --- a/spec/classes/cloud_network_dhcp_spec.rb +++ b/spec/classes/cloud_network_dhcp_spec.rb @@ -131,13 +131,8 @@ describe 'cloud::network::dhcp' do :bridge => 'br-pub' ) end - it 'configure provider external network' do - should contain_neutron_network('public').with( - :provider_network_type => 'flat', - :provider_physical_network => 'public', - :shared => true, - :router_external => true - ) + it 'should not configure provider external network' do + should_not contain__neutron_network('public') end end end diff --git a/spec/classes/cloud_network_l3_spec.rb b/spec/classes/cloud_network_l3_spec.rb index 2995e126..9a9092b3 100644 --- a/spec/classes/cloud_network_l3_spec.rb +++ b/spec/classes/cloud_network_l3_spec.rb @@ -147,13 +147,8 @@ describe 'cloud::network::l3' do :bridge => 'br-pub' ) end - it 'configure provider external network' do - should contain_neutron_network('public').with( - :provider_network_type => 'flat', - :provider_physical_network => 'public', - :shared => true, - :router_external => true - ) + it 'should not configure provider external network' do + should_not contain__neutron_network('public') end end end diff --git a/spec/classes/cloud_network_lbaas_spec.rb b/spec/classes/cloud_network_lbaas_spec.rb index b69deacd..20cbedc1 100644 --- a/spec/classes/cloud_network_lbaas_spec.rb +++ b/spec/classes/cloud_network_lbaas_spec.rb @@ -146,13 +146,8 @@ describe 'cloud::network::lbaas' do :bridge => 'br-pub' ) end - it 'configure provider external network' do - should contain_neutron_network('public').with( - :provider_network_type => 'flat', - :provider_physical_network => 'public', - :shared => true, - :router_external => true - ) + it 'should not configure provider external network' do + should_not contain__neutron_network('public') end end end diff --git a/spec/classes/cloud_network_metadata_spec.rb b/spec/classes/cloud_network_metadata_spec.rb index 241583a7..2235b5df 100644 --- a/spec/classes/cloud_network_metadata_spec.rb +++ b/spec/classes/cloud_network_metadata_spec.rb @@ -136,13 +136,8 @@ describe 'cloud::network::metadata' do :bridge => 'br-pub' ) end - it 'configure provider external network' do - should contain_neutron_network('public').with( - :provider_network_type => 'flat', - :provider_physical_network => 'public', - :shared => true, - :router_external => true - ) + it 'should not configure provider external network' do + should_not contain__neutron_network('public') end end end diff --git a/spec/classes/cloud_network_vpn_spec.rb b/spec/classes/cloud_network_vpn_spec.rb index c9a9aa9b..dfdd61d2 100644 --- a/spec/classes/cloud_network_vpn_spec.rb +++ b/spec/classes/cloud_network_vpn_spec.rb @@ -113,13 +113,8 @@ describe 'cloud::network::vpn' do :bridge => 'br-pub' ) end - it 'configure provider external network' do - should contain_neutron_network('public').with( - :provider_network_type => 'flat', - :provider_physical_network => 'public', - :shared => true, - :router_external => true - ) + it 'should not configure provider external network' do + should_not contain__neutron_network('public') end end end