1
0
mirror of https://github.com/CumulusNetworks/ifupdown2.git synced 2024-05-06 15:54:50 +00:00

Fix a bug with disabling of config option link_master_slave + turn off

link master slave feature when '-a' is not specified.

Ticket: CM-4408
Reviewed By:
Testing Done: Tested with ifupdown2.conf link_master_slave on/off

This will make the behaviour change mostly invisible to users

Conflicts:
	packages/ifupdown2/ifupdown/ifupdownmain.py
This commit is contained in:
Roopa Prabhu
2014-12-26 09:21:50 -08:00
parent d52f59043c
commit 7e2e64fbe9

View File

@@ -118,11 +118,10 @@ class ifupdownMain(ifupdownBase):
# by its link master interface, then dont set the link state. # by its link master interface, then dont set the link state.
# But do allow user to change state of the link if the interface # But do allow user to change state of the link if the interface
# is already with its link master (hence the master check). # is already with its link master (hence the master check).
if ((ifaceobj.link_type == ifaceLinkType.LINK_SLAVE) and if ifaceobj.link_type == ifaceLinkType.LINK_SLAVE:
not os.path.exists('/sys/class/net/%s/master' %ifaceobj.name)):
return return
if not self.link_exists(ifaceobj.name): if not self.link_exists(ifaceobj.name):
return return
self.link_up(ifaceobj.name) self.link_up(ifaceobj.name)
def run_down(self, ifaceobj): def run_down(self, ifaceobj):
@@ -136,11 +135,10 @@ class ifupdownMain(ifupdownBase):
# by its link master interface, then dont set the link state. # by its link master interface, then dont set the link state.
# But do allow user to change state of the link if the interface # But do allow user to change state of the link if the interface
# is already with its link master (hence the master check). # is already with its link master (hence the master check).
if ((ifaceobj.link_type == ifaceLinkType.LINK_SLAVE) and if ifaceobj.link_type == ifaceLinkType.LINK_SLAVE:
not os.path.exists('/sys/class/net/%s/master' %ifaceobj.name)): return
return
if not self.link_exists(ifaceobj.name): if not self.link_exists(ifaceobj.name):
return return
self.link_down(ifaceobj.name) self.link_down(ifaceobj.name)
# ifupdown object interface operation handlers # ifupdown object interface operation handlers
@@ -470,6 +468,8 @@ class ifupdownMain(ifupdownBase):
def _save_iface(self, ifaceobj): def _save_iface(self, ifaceobj):
if self._check_config_no_repeats(ifaceobj): if self._check_config_no_repeats(ifaceobj):
return return
if not self._link_master_slave:
ifaceobj.link_type = ifaceLinkType.LINK_NA
currentifaceobjlist = self.ifaceobjdict.get(ifaceobj.name) currentifaceobjlist = self.ifaceobjdict.get(ifaceobj.name)
if not currentifaceobjlist: if not currentifaceobjlist:
self.ifaceobjdict[ifaceobj.name]= [ifaceobj] self.ifaceobjdict[ifaceobj.name]= [ifaceobj]
@@ -477,8 +477,6 @@ class ifupdownMain(ifupdownBase):
if ifaceobj.compare(currentifaceobjlist[0]): if ifaceobj.compare(currentifaceobjlist[0]):
self.logger.warn('duplicate interface %s found' %ifaceobj.name) self.logger.warn('duplicate interface %s found' %ifaceobj.name)
return return
if not self._link_master_slave:
ifaceobj.link_type = ifaceLinkType.LINK_NA
if currentifaceobjlist[0].type == ifaceobj.type: if currentifaceobjlist[0].type == ifaceobj.type:
currentifaceobjlist[0].flags |= iface.HAS_SIBLINGS currentifaceobjlist[0].flags |= iface.HAS_SIBLINGS
ifaceobj.flags |= iface.HAS_SIBLINGS ifaceobj.flags |= iface.HAS_SIBLINGS
@@ -820,6 +818,8 @@ class ifupdownMain(ifupdownBase):
if auto: if auto:
self.ALL = True self.ALL = True
self.WITH_DEPENDS = True self.WITH_DEPENDS = True
else:
self._link_master_slave = False
try: try:
self.read_iface_config() self.read_iface_config()
except Exception: except Exception:
@@ -870,6 +870,8 @@ class ifupdownMain(ifupdownBase):
if auto: if auto:
self.ALL = True self.ALL = True
self.WITH_DEPENDS = True self.WITH_DEPENDS = True
else:
self._link_master_slave = False
# For down we need to look at old state, unless usecurrentconfig # For down we need to look at old state, unless usecurrentconfig
# is set # is set
if (not usecurrentconfig and self.STATEMANAGER_ENABLE and if (not usecurrentconfig and self.STATEMANAGER_ENABLE and
@@ -999,7 +1001,8 @@ class ifupdownMain(ifupdownBase):
if auto: if auto:
self.ALL = True self.ALL = True
self.WITH_DEPENDS = True self.WITH_DEPENDS = True
else:
self._link_master_slave = False
try: try:
self.read_iface_config() self.read_iface_config()
except: except:
@@ -1073,6 +1076,8 @@ class ifupdownMain(ifupdownBase):
if auto: if auto:
self.ALL = True self.ALL = True
self.WITH_DEPENDS = True self.WITH_DEPENDS = True
else:
self._link_master_slave = False
try: try:
self.read_iface_config() self.read_iface_config()
except: except: