GENICLOUD-31 Remove duplicate entries from the bridged interface.
[pyplnet.git] / plnet.py
index ad83423..0f692f4 100755 (executable)
--- a/plnet.py
+++ b/plnet.py
@@ -77,7 +77,7 @@ def InitInterfaces(logger, plc, data, root="", files_only=False, program="NodeMa
         if orig_ifname:
             logger.verbose('net:InitInterfaces orig_ifname = %s' % orig_ifname)
 
-        details = prepDetails(interface)
+        details = prepDetails(interface, hostname)
 
         if 'interface_tag_ids' in interface:
             version = 4.3
@@ -157,9 +157,8 @@ def InitInterfaces(logger, plc, data, root="", files_only=False, program="NodeMa
             elif orig_ifname:
                 ifname = orig_ifname
                 device_id -= 1
-            if 'PRIMARY' in details: del details['PRIMARY']
             logger.log('net:InitInterfaces: Bridge detected. Adding %s to devices_map' % ifname)
-            devices_map[ifname] = details
+            devices_map[ifname] = removeBridgedIfaceDetails(details)
             bridgeName = details['BRIDGE']
 
             logger.log('net:InitInterfaces: Adding bridge %s' % bridgeName)
@@ -389,7 +388,7 @@ def InitInterfaces(logger, plc, data, root="", files_only=False, program="NodeMa
 ##
 # Prepare the interface details.
 #
-def prepDetails(interface):
+def prepDetails(interface, hostname=''):
     details = {}
     details['ONBOOT']  = 'yes'
     details['USERCTL'] = 'no'
@@ -422,6 +421,16 @@ def prepDetails(interface):
 
     return details
 
+##
+# Remove duplicate entry from the bridged interface's configuration file.
+#
+def removeBridgedIfaceDetails(details):
+    for key in [ 'PRIMARY', 'PERSISTENT_DHCLIENT', 'DHCLIENTARGS', 'DHCP_HOSTNAME',
+                 'BOOTPROTO', 'IPADDR', 'NETMASK', 'GATEWAY', 'DNS1', 'DNS2' ]:
+        if key in details:
+            del details[key]
+    return details
+
 if __name__ == "__main__":
     import optparse
     import sys