From: Roopa Prabhu Date: Thu, 5 May 2016 20:29:02 +0000 (-0700) Subject: addons: vrf: flush addresses and down slaves before deleting vrf device X-Git-Tag: 1.2.2-1~177^2~41 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=2365b3c937837142b397b53fe0f00dcee9505113;p=mirror_ifupdown2.git 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 --- 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)