X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plnet.py;h=0f692f4670f9ed0d2e98f54cd6b169b7331a6925;hb=84ebca39ef841949d78ce4266673aa590801b200;hp=ad83423c6593d58c348a84f59f35bbae08a34cd6;hpb=b68e552baa4681c984beb06038bac318abdf23e8;p=pyplnet.git diff --git a/plnet.py b/plnet.py index ad83423..0f692f4 100755 --- 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