From 08be4c39360d18a904452278f5a00a11821e6cde Mon Sep 17 00:00:00 2001
From: Steven Hillman <sthillma@redhat.com>
Date: Thu, 19 Nov 2015 15:34:09 -0800
Subject: [PATCH] Prevent vsm-br ip configuration for existing bridge cases
Added a check to skip ip configuration in all existing bridge cases.
This was sporadically causing connectivity issue in some setups.
Change-Id: Ia759a84409d477b5be459033aeda37d353c93332
---
n1k_vsm/manifests/pkgprep_ovscfg.pp | 2 +-
.../spec/classes/n1kv_vsm_pkgprep_ovscfg_spec.rb | 48 ++++++++++++++++++++++
2 files changed, 49 insertions(+), 1 deletion(-)
diff --git a/n1k_vsm/manifests/pkgprep_ovscfg.pp b/n1k_vsm/manifests/pkgprep_ovscfg.pp
index 8efec39..512646d 100644
--- a/n1k_vsm/manifests/pkgprep_ovscfg.pp
+++ b/n1k_vsm/manifests/pkgprep_ovscfg.pp
@@ -72,7 +72,7 @@ class n1k_vsm::pkgprep_ovscfg
#Gather info from the port/bridge including IP if needed
$_phy_if_bridge = regsubst($n1k_vsm::phy_if_bridge, '[.:-]+', '_', 'G')
$_phy_ip_addr = inline_template("<%= scope.lookupvar('::ipaddress_${_phy_if_bridge}') %>")
- if $_phy_ip_addr != '' {
+ if $_phy_ip_addr != '' and !($n1k_vsm::existing_bridge) {
$phy_ip_addr = inline_template("<%= scope.lookupvar('::ipaddress_${_phy_if_bridge}') %>")
$phy_ip_mask = inline_template("<%= scope.lookupvar('::netmask_${_phy_if_bridge}') %>")
$gw_intf = $n1k_vsm::phy_gateway
diff --git a/n1k_vsm/spec/classes/n1kv_vsm_pkgprep_ovscfg_spec.rb b/n1k_vsm/spec/classes/n1kv_vsm_pkgprep_ovscfg_spec.rb
index 18fb7dd..3f01a08 100644
--- a/n1k_vsm/spec/classes/n1kv_vsm_pkgprep_ovscfg_spec.rb
+++ b/n1k_vsm/spec/classes/n1kv_vsm_pkgprep_ovscfg_spec.rb
@@ -40,6 +40,7 @@ describe 'n1k_vsm::pkgprep_ovscfg' do
let :facts do
{
:ipaddress_eth0 => '1.1.1.1',
+ :netmask_eth0 => '255.255.255.0',
:osfamily => 'RedHat'
}
end
@@ -52,6 +53,20 @@ describe 'n1k_vsm::pkgprep_ovscfg' do
is_expected.to contain_augeas('Augeas_modify_ifcfg-ovsbridge').with(
'name' => 'vsm-br',
'context' => '/files/etc/sysconfig/network-scripts/ifcfg-vsm-br',
+ 'changes' => ['set TYPE OVSBridge',
+ 'set DEVICE vsm-br',
+ 'set DEVICETYPE ovs',
+ 'set OVSREQUIRES vsm-br',
+ 'set NM_CONTROLLED no',
+ 'set BOOTPROTO none',
+ 'set ONBOOT yes',
+ 'set DEFROUTE yes',
+ 'set MTU 1500',
+ 'set NAME vsm-br',
+ 'set IPADDR 1.1.1.1',
+ 'set NETMASK 255.255.255.0',
+ 'set GATEWAY 1.1.1.3',
+ 'set USERCTL no']
)
end
@@ -103,6 +118,17 @@ describe 'n1k_vsm::pkgprep_ovscfg' do
is_expected.to contain_augeas('Augeas_modify_ifcfg-ovsbridge').with(
'name' => 'vsm-br',
'context' => '/files/etc/sysconfig/network-scripts/ifcfg-vsm-br',
+ 'changes' => ['set TYPE OVSBridge',
+ 'set DEVICE vsm-br',
+ 'set DEVICETYPE ovs',
+ 'set OVSREQUIRES vsm-br',
+ 'set NM_CONTROLLED no',
+ 'set BOOTPROTO none',
+ 'set ONBOOT yes',
+ 'set DEFROUTE yes',
+ 'set MTU 1500',
+ 'set NAME vsm-br',
+ 'set USERCTL no']
)
end
@@ -152,6 +178,17 @@ describe 'n1k_vsm::pkgprep_ovscfg' do
is_expected.to contain_augeas('Augeas_modify_ifcfg-ovsbridge').with(
'name' => 'vsm-br',
'context' => '/files/etc/sysconfig/network-scripts/ifcfg-vsm-br',
+ 'changes' => ['set TYPE OVSBridge',
+ 'set DEVICE vsm-br',
+ 'set DEVICETYPE ovs',
+ 'set OVSREQUIRES vsm-br',
+ 'set NM_CONTROLLED no',
+ 'set BOOTPROTO none',
+ 'set ONBOOT yes',
+ 'set DEFROUTE yes',
+ 'set MTU 1500',
+ 'set NAME vsm-br',
+ 'set USERCTL no']
)
end
@@ -203,6 +240,17 @@ describe 'n1k_vsm::pkgprep_ovscfg' do
is_expected.to contain_augeas('Augeas_modify_ifcfg-ovsbridge').with(
'name' => 'vsm-br',
'context' => '/files/etc/sysconfig/network-scripts/ifcfg-vsm-br',
+ 'changes' => ['set TYPE OVSBridge',
+ 'set DEVICE vsm-br',
+ 'set DEVICETYPE ovs',
+ 'set OVSREQUIRES vsm-br',
+ 'set NM_CONTROLLED no',
+ 'set BOOTPROTO none',
+ 'set ONBOOT yes',
+ 'set DEFROUTE yes',
+ 'set MTU 1500',
+ 'set NAME vsm-br',
+ 'set USERCTL no']
)
end