[OVN] Check LSP.up status before setting the port host info
Before executing updating the Logical_Swith_Port host information, it is needed to check the current status of the port. If it doesn't match with the event calling this update, the host information is not updated. Closes-Bug: #2085543 Change-Id: I92afb190375caf27c815f9fe1cb627e87c49d4ca (cherry picked from commit c0bdb0c8a33286acb4d44ad865f0000309fc79b6)
This commit is contained in:
parent
264306492f
commit
8d6ad2f4ec
@ -297,7 +297,14 @@ class OVNClient(object):
|
|||||||
# NOTE(ralonsoh): OVN subports don't have host ID information.
|
# NOTE(ralonsoh): OVN subports don't have host ID information.
|
||||||
return
|
return
|
||||||
|
|
||||||
|
port_up = self._nb_idl.lsp_get_up(db_port.id).execute(
|
||||||
|
check_error=True)
|
||||||
if up:
|
if up:
|
||||||
|
if not port_up:
|
||||||
|
LOG.warning('Logical_Switch_Port %s host information not '
|
||||||
|
'updated, the port state is down')
|
||||||
|
return
|
||||||
|
|
||||||
if not db_port.port_bindings:
|
if not db_port.port_bindings:
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -319,6 +326,11 @@ class OVNClient(object):
|
|||||||
self._nb_idl.db_set(
|
self._nb_idl.db_set(
|
||||||
'Logical_Switch_Port', db_port.id, ext_ids))
|
'Logical_Switch_Port', db_port.id, ext_ids))
|
||||||
else:
|
else:
|
||||||
|
if port_up:
|
||||||
|
LOG.warning('Logical_Switch_Port %s host information not '
|
||||||
|
'removed, the port state is up')
|
||||||
|
return
|
||||||
|
|
||||||
cmd.append(
|
cmd.append(
|
||||||
self._nb_idl.db_remove(
|
self._nb_idl.db_remove(
|
||||||
'Logical_Switch_Port', db_port.id, 'external_ids',
|
'Logical_Switch_Port', db_port.id, 'external_ids',
|
||||||
|
@ -245,6 +245,7 @@ class TestOVNClient(TestOVNClientBase):
|
|||||||
context = mock.MagicMock()
|
context = mock.MagicMock()
|
||||||
port_id = 'fake-port-id'
|
port_id = 'fake-port-id'
|
||||||
db_port = mock.Mock(id=port_id)
|
db_port = mock.Mock(id=port_id)
|
||||||
|
self.nb_idl.lsp_get_up.return_value.execute.return_value = False
|
||||||
|
|
||||||
self.ovn_client.update_lsp_host_info(context, db_port, up=False)
|
self.ovn_client.update_lsp_host_info(context, db_port, up=False)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user