From fcb3aa8c5b98346eecf4176aa6f2c293604f42ee Mon Sep 17 00:00:00 2001 From: Ryan Petrello Date: Tue, 17 May 2016 10:07:49 -0400 Subject: [PATCH] Add additional exception handling to ARP cleanup. This was originally resolved in Mitaka via http://git.openstack.org/cgit/openstack/astara-appliance/commit/?id=02383adf645c479aba2838602c90fd5135fd0417 Backporting this as it has the potential to break the router build+configure process. Closes bug #1582736 Change-Id: If2ddbf5f2080b29c876e7750ba3b81f15ab3cc08 --- akanda/router/drivers/arp.py | 6 +++++- akanda/router/drivers/ip.py | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/akanda/router/drivers/arp.py b/akanda/router/drivers/arp.py index b844751..b9d0d3e 100644 --- a/akanda/router/drivers/arp.py +++ b/akanda/router/drivers/arp.py @@ -155,4 +155,8 @@ class ARPManager(base.Manager): :type ip: str :param ip: IP address to search for in the ARP table. """ - self.sudo('-d', ip) + try: + self.sudo('-d', ip) + except: + # It's possible that these have already been cleaned up + pass diff --git a/akanda/router/drivers/ip.py b/akanda/router/drivers/ip.py index 4e12d1f..c9d780b 100644 --- a/akanda/router/drivers/ip.py +++ b/akanda/router/drivers/ip.py @@ -205,10 +205,10 @@ class IPManager(base.Manager): add = functools.partial(_gen_cmd, 'add') delete = functools.partial(_gen_cmd, 'del') - mutator = lambda a: (a.ip, a.prefixlen) self._update_set(real_ifname, interface, old_interface, - 'all_addresses', add, delete, mutator) + 'all_addresses', add, delete, + lambda a: (a.ip, a.prefixlen)) def _update_set(self, real_ifname, interface, old_interface, attribute, fmt_args_add, fmt_args_delete, mutator=lambda x: x):