From 2365b3c937837142b397b53fe0f00dcee9505113 Mon Sep 17 00:00:00 2001 From: Roopa Prabhu Date: Thu, 5 May 2016 13:29:02 -0700 Subject: [PATCH] addons: vrf: flush addresses and down slaves before deleting vrf device Ticket: CM-10785 Reviewed By: julien nikhil dsa dwalton Testing Done: tested vrf device down and reload Signed-off-by: Roopa Prabhu --- addons/vrf.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/addons/vrf.py b/addons/vrf.py index 31d0f67..87a2b52 100644 --- a/addons/vrf.py +++ b/addons/vrf.py @@ -688,17 +688,24 @@ class vrf(moduleBase): if vrf_table == 'auto': vrf_table = self._get_iproute2_vrf_table(ifaceobj.name) - try: - running_slaves = self.ipcmd.link_get_lowers(ifaceobj.name) - if running_slaves: - for s in running_slaves: - if ifaceobj_getfunc: - sobj = ifaceobj_getfunc(s) - self._handle_existing_connections(sobj[0] if sobj else None, + running_slaves = self.ipcmd.link_get_lowers(ifaceobj.name) + if running_slaves: + for s in running_slaves: + if ifaceobj_getfunc: + sobj = ifaceobj_getfunc(s) + try: + self._handle_existing_connections(sobj[0] + if sobj else None, ifaceobj.name) - except Exception, e: - self.logger.info('%s: %s' %(ifaceobj.name, str(e))) - pass + except Exception, e: + self.logger.info('%s: %s' %(ifaceobj.name, str(e))) + pass + try: + self.ipcmd.addr_flush(s) + rtnetlink_api.rtnl_api.link_set(s, "down") + except Exception, e: + self.logger.info('%s: %s' %(ifaceobj.name, str(e))) + pass self._down_vrf_helper(ifaceobj, vrf_table) -- 2.39.5