From c6a5b284b54d59273a387aaf7723391e9100bf3c Mon Sep 17 00:00:00 2001 From: Terry Wilson Date: Tue, 21 Jan 2020 16:12:45 -0600 Subject: [PATCH] Ensure we don't pass empty addresses to lsp_set_addresses If we somehow have an empty set of addresses, lsp_set_addresses will fail. This instead calls db_clear() on the addresses field if we are trying to set it to empty. Closes-bug: #1860560 Change-Id: Ied92eb85b74e63a7317d50970b5131fb49e3e4b0 --- .../ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py index 6c93a5f697e..655344f6f78 100644 --- a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py +++ b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py @@ -435,8 +435,13 @@ class DBInconsistenciesPeriodics(object): elif not type_ and ovn_const.UNKNOWN_ADDR in addresses: addresses.remove(ovn_const.UNKNOWN_ADDR) - self._nb_idl.lsp_set_addresses( - port.name, addresses=addresses).execute(check_error=True) + if addresses: + self._nb_idl.lsp_set_addresses( + port.name, addresses=addresses).execute(check_error=True) + else: + self._nb_idl.db_clear( + 'Logical_Switch_Port', port.name, + 'addresses').execute(check_error=True) raise periodics.NeverAgain()