Blob Blame History Raw
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