From 10720a537d7ab0b567b3ca1e74f4f74919b67490 Mon Sep 17 00:00:00 2001 From: roopa Date: Wed, 13 Nov 2013 23:00:02 -0800 Subject: [PATCH] cleanup ifquery for interfaces that were configured but got deleted or went away Ticket: CM-1438 Reviewed By: Testing Done: --- pkg/iface.py | 1 + pkg/ifupdownmain.py | 17 +++++++++++------ sbin/ifupdown | 5 +++-- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/pkg/iface.py b/pkg/iface.py index 5840306..7250710 100644 --- a/pkg/iface.py +++ b/pkg/iface.py @@ -20,6 +20,7 @@ class ifaceStatus(): UNKNOWN = 0x1 SUCCESS = 0x2 ERROR = 0x3 + NOTFOUND = 0x4 @classmethod def to_str(cls, state): diff --git a/pkg/ifupdownmain.py b/pkg/ifupdownmain.py index 0c4695f..5854773 100644 --- a/pkg/ifupdownmain.py +++ b/pkg/ifupdownmain.py @@ -284,16 +284,17 @@ class ifupdownMain(): if dlist is None: dlist = self.get_dependents(ifaceobj, op) else: - # we already have dependency info for this interface continue - self.preprocess_dependency_list(dlist, op) - ifaceobj.set_dependents(dlist) + if dlist is not None: + self.preprocess_dependency_list(dlist, op) + ifaceobj.set_dependents(dlist) if dependency_graph.get(i) is None: dependency_graph[i] = dlist - self.generate_dependency_info(dlist, dependency_graph, op) + if dlist is not None: + self.generate_dependency_info(dlist, dependency_graph, op) def is_valid_state_transition(self, ifname, to_be_state): return self.statemanager.is_valid_state_transition(ifname, @@ -688,9 +689,13 @@ class ifupdownMain(): ret = 0 for i in ifacenames: ifaceobj = self.get_ifaceobjcurr(i) - ifaceobj.dump_pretty(self.logger) - if ifaceobj.get_status() == ifaceStatus.ERROR: + if ifaceobj.get_status() == ifaceStatus.NOTFOUND: + print 'iface %s' %ifaceobj.get_name() + ' (not found)' ret = 1 + continue + elif ifaceobj.get_status() == ifaceStatus.ERROR: + ret = 1 + ifaceobj.dump_pretty(self.logger) return ret diff --git a/sbin/ifupdown b/sbin/ifupdown index 884e604..58c406f 100755 --- a/sbin/ifupdown +++ b/sbin/ifupdown @@ -95,8 +95,9 @@ def update_argparser(argparser): argparser.add_argument('-j', '--jobs', dest='jobs', type=int, default=-1, choices=range(1,12), help=argparse.SUPPRESS) argparser.add_argument('-X', '--exclude', dest='excludepats', - action='append', help='print out what would happen,' + - ' but don\'t do it') + action='append', help='exclude interfaces from the list of ' + + 'interfaces to operate on by a PATTERN ' + + '(note that this option doesn\'t disable mappings)') def update_ifupdown_argparser(argparser):