From b0a712d7b0a8a18cdf882da95e109b9b7f96eb78 Mon Sep 17 00:00:00 2001
From: Alessandro Costantini <alessandro.costantini@cnaf.infn.it>
Date: Fri, 13 Nov 2015 17:11:31 +0000
Subject: [PATCH] New router.pp version

---
 manifests/profile/neutron/router.pp | 131 +++++++++++++++++-----------
 1 file changed, 81 insertions(+), 50 deletions(-)

diff --git a/manifests/profile/neutron/router.pp b/manifests/profile/neutron/router.pp
index 936620c..1fc3245 100644
--- a/manifests/profile/neutron/router.pp
+++ b/manifests/profile/neutron/router.pp
@@ -149,14 +149,15 @@ notify { "br-ex2: $::brex2_eval":
       network => 'default',
       require => Package['ifupdown-extra']
     }
-  } ->
+  }
+
 # Set loopback interface
   network_config { 'lo':
     ensure => 'present',
     family => 'inet',
     method => 'loopback',
     onboot => 'true',
-  } ->
+  }
 
 
 #  if $_external_device1 != 'br_ex1' {
@@ -169,30 +170,28 @@ notify { "br-ex2: $::brex2_eval":
     $public_netmask1 = $::facts["netmask_${external_device1}"]
     $public_macaddr1 = $::facts["macaddress_${external_device1}"]
 
-    network_config { $external_device1:
-      ensure  => 'present',
-      family  => 'inet',
-      method  => 'manual',
-      options => {
-        'up' => "ifconfig ${external_device1} 0.0.0.0 promisc up",
-        'down' => "ifconfig ${external_device1} promisc down",
-      },
-    } ->
     if $public_ipaddress1 {
+      network_config { $external_device1:
+        ensure  => 'present',
+        family  => 'inet',
+        method  => 'manual',
+        options => {
+          'up' => "ifconfig ${external_device1} 0.0.0.0 promisc up",
+          'down' => "ifconfig ${external_device1} promisc down",
+        },
+      } ->
       network_config { 'br-ex1':
         ensure  => 'present',
         family  => 'inet',
         method  => 'static',
         ipaddress => $public_ipaddress1,
         netmask => $public_netmask1,
-      } 
-    } ->
-    vs_port { $external_device1:
-      ensure => present,
-      bridge => 'br-ex1',
-      require => Class['::neutron::agents::ml2::ovs'],
-    } ->
-    if $public_ipaddress1 {
+      } -> 
+      vs_port { $external_device1:
+        ensure => present,
+        bridge => 'br-ex1',
+        require => Class['::neutron::agents::ml2::ovs'],
+      } ->
       network_route { 'route_ext1':
         ensure => 'present',
         gateway => $external_gateway1,
@@ -200,13 +199,11 @@ notify { "br-ex2: $::brex2_eval":
         netmask => '0.0.0.0',
         network => $external_network1,
         require => Package['ifupdown-extra']
-      }
-    } ->
-    exec { "set_br-ex1_hwaddr":
-      command => "ovs-vsctl set bridge br-ex1 other-config:hwaddr=$public_macaddr1",
-      path    => "/usr/local/bin/:/bin/:/usr/bin:/sbin/:/usr/sbin/",
-    } ->
-    if $public_ipaddress1 {
+      } ->
+      exec { "set_br-ex1_hwaddr":
+        command => "ovs-vsctl set bridge br-ex1 other-config:hwaddr=$public_macaddr1",
+        path    => "/usr/local/bin/:/bin/:/usr/bin:/sbin/:/usr/sbin/",
+      } ->
       exec { "restart_external1":
         command => "ifconfig $external_device1 0.0.0.0 promisc",
         path    => "/usr/local/bin/:/bin/:/sbin/:/usr/sbin/",
@@ -215,6 +212,25 @@ notify { "br-ex2: $::brex2_eval":
         command => "ifdown br-ex1 && ifup br-ex1",
         path    => "/usr/local/bin/:/bin/:/sbin/:/usr/sbin/",     
       }
+    } else 
+      network_config { $external_device1:
+        ensure  => 'present',
+        family  => 'inet',
+        method  => 'manual',
+        options => {
+          'up' => "ifconfig ${external_device1} 0.0.0.0 promisc up",
+          'down' => "ifconfig ${external_device1} promisc down",
+        },
+      } ->
+      vs_port { $external_device1:
+        ensure => present,
+        bridge => 'br-ex1',
+        require => Class['::neutron::agents::ml2::ovs'],
+      } ->
+      exec { "set_br-ex1_hwaddr":
+        command => "ovs-vsctl set bridge br-ex1 other-config:hwaddr=$public_macaddr1",
+        path    => "/usr/local/bin/:/bin/:/usr/bin:/sbin/:/usr/sbin/",
+      } 
     }
   }
 
@@ -234,30 +250,28 @@ notify { "br-ex2: $::brex2_eval":
       $public_netmask2 = $::facts["netmask_${external_device2}"]
       $public_macaddr2 = $::facts["macaddress_${external_device2}"]
 
-      network_config { $external_device2:
-        ensure  => 'present',
-        family  => 'inet',
-        method  => 'manual',
-        options => {
-          'up' => "ifconfig ${external_device2} 0.0.0.0 promisc up",
-          'down' => "ifconfig ${external_device2} promisc down",
-        },
-      } ->
       if $public_ipaddress2 {
+        network_config { $external_device2:
+          ensure  => 'present',
+          family  => 'inet',
+          method  => 'manual',
+          options => {
+            'up' => "ifconfig ${external_device2} 0.0.0.0 promisc up",
+            'down' => "ifconfig ${external_device2} promisc down",
+          },
+        } ->
         network_config { 'br-ex2':
           ensure  => 'present',
           family  => 'inet',
           method  => 'static',
           ipaddress => $public_ipaddress2,
           netmask => $public_netmask2,
-        }
-      } ->
-      vs_port { $external_device2:
-        ensure => present,
-        bridge => 'br-ex2',
-        require => Class['::neutron::agents::ml2::ovs'],
-      } ->
-      if $public_ipaddress2 {
+        } ->
+        vs_port { $external_device2:
+          ensure => present,
+          bridge => 'br-ex2',
+          require => Class['::neutron::agents::ml2::ovs'],
+        } -> 
         network_route { 'route_ext2':
           ensure => 'present',
           gateway => $external_gateway2,
@@ -265,13 +279,11 @@ notify { "br-ex2: $::brex2_eval":
           netmask => '0.0.0.0',
           network => $external_network2,
           require => Package['ifupdown-extra']
-        }
-      } ->
-      exec { "set_br-ex2_hwaddr":
-        command => "ovs-vsctl set bridge br-ex2 other-config:hwaddr=$public_macaddr2",
-        path    => "/usr/local/bin/:/bin/:/usr/bin:/sbin/:/usr/sbin/",
-      } ->
-      if $public_ipaddress2 {
+        } ->
+        exec { "set_br-ex2_hwaddr":
+          command => "ovs-vsctl set bridge br-ex2 other-config:hwaddr=$public_macaddr2",
+          path    => "/usr/local/bin/:/bin/:/usr/bin:/sbin/:/usr/sbin/",
+        } -> 
         exec { "restart_external2":
           command => "ifconfig $external_device2 promisc",
           path    => "/usr/local/bin/:/bin/:/sbin/:/usr/sbin/",
@@ -280,6 +292,25 @@ notify { "br-ex2: $::brex2_eval":
           command => "ifdown br-ex2 && ifup br-ex2",
           path    => "/usr/local/bin/:/bin/:/sbin/:/usr/sbin/",     
         }
+      } else {
+        network_config { $external_device2:
+          ensure  => 'present',
+          family  => 'inet',
+          method  => 'manual',
+          options => {
+            'up' => "ifconfig ${external_device2} 0.0.0.0 promisc up",
+            'down' => "ifconfig ${external_device2} promisc down",
+          },
+        } ->
+        vs_port { $external_device2:
+          ensure => present,
+          bridge => 'br-ex2',
+          require => Class['::neutron::agents::ml2::ovs'],
+        } ->
+        exec { "set_br-ex2_hwaddr":
+          command => "ovs-vsctl set bridge br-ex2 other-config:hwaddr=$public_macaddr2",
+          path    => "/usr/local/bin/:/bin/:/usr/bin:/sbin/:/usr/sbin/",
+        } 
       }
     }
   }
-- 
GitLab