_STATE_CHECK = True
@classmethod
- def run_iface_op(cls, ifupdownobj, ifaceobj, op, query_ifaceobj=None,
- cenv=None):
+ def run_iface_op(cls, ifupdownobj, ifaceobj, op, cenv=None):
""" Runs sub operation on an interface """
ifacename = ifaceobj.name
ifupdownobj.logger.debug('%s: already in state %s' %(ifacename, op))
return
if not ifupdownobj.ADDONS_ENABLE: return
+ if op == 'query-checkcurr':
+ query_ifaceobj=ifupdownobj.create_n_save_ifaceobjcurr(ifaceobj)
for mname in ifupdownobj.module_ops.get(op):
m = ifupdownobj.modules.get(mname)
err = 0
if (ifaceobj.priv_flags & ifupdownobj.NOCONFIG):
continue
ifupdownobj.logger.debug(msg)
- m.run(ifaceobj, op,
- query_ifaceobj)
+ m.run(ifaceobj, op, query_ifaceobj)
else:
ifupdownobj.logger.debug(msg)
m.run(ifaceobj, op)
handler(ifupdownobj, ifaceobjs[0])
for ifaceobj in ifaceobjs:
cls.run_iface_op(ifupdownobj, ifaceobj, op,
- query_ifaceobj=ifupdownobj.create_n_save_ifaceobjcurr(
- ifaceobj) if op == 'query-checkcurr' else None,
cenv=ifupdownobj.generate_running_env(ifaceobj, op)
if ifupdownobj.COMPAT_EXEC_SCRIPTS else None)
posthookfunc = ifupdownobj.sched_hooks.get('posthook')
skip_root=True)
cls._STATE_CHECK = True
return
- run_queue = []
+ if ifupdownobj.config.get('skip_ifacesort', '0') == '1':
+ # This is a backdoor to skip sorting of interfaces, if required
+ cls.run_iface_list(ifupdownobj, ifacenames, ops,
+ parent=None,order=order,
+ followdependents=followdependents)
+ return
+
+ run_queue = []
# Get a sorted list of all interfaces
if not indegrees:
indegrees = OrderedDict()