]> git.proxmox.com Git - mirror_ifupdown2.git/commitdiff
addons: vrf: flush addresses and down slaves before deleting vrf device
authorRoopa Prabhu <roopa@cumulusnetworks.com>
Thu, 5 May 2016 20:29:02 +0000 (13:29 -0700)
committerRoopa Prabhu <roopa@cumulusnetworks.com>
Thu, 5 May 2016 21:31:13 +0000 (14:31 -0700)
Ticket: CM-10785
Reviewed By: julien nikhil dsa dwalton
Testing Done: tested vrf device down and reload

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
addons/vrf.py

index 31d0f67a12b33dd380b36b162f44bc5fcbae0a7b..87a2b52a3a6d14fadc8e3f7491b6dd667ac218ce 100644 (file)
@@ -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)