[stable only][ovn]Update get datapath id to network from Port_Binding
The value about neutron-metadata-proxy-networks of Chassis's external_ids are network_id, and the datapath field of Port_Binding table is the uuid of Datapath_Binding tables. When call function set_port_status_up after boot server instance, it check datapath in neutron-metadata-proxy-networks of Chassis's external_ids, the datapath id is not match with network id, so change get datapath id from Port_Binding to get network id. Since [1], this is not needed in Xena. [1]https://review.opendev.org/c/openstack/neutron/+/791997 Closes-Bug: #1946588 Change-Id: Ib3c1bea9b805dc7d9967f66b3b0136efb3e8e08d
This commit is contained in:
parent
0c1f985b04
commit
f5ea47b095
|
@ -940,6 +940,7 @@ class OvsdbSbOvnIdl(sb_impl_idl.OvnSbApiIdlImpl, Backend):
|
|||
def get_logical_port_chassis_and_datapath(self, name):
|
||||
for port in self._tables['Port_Binding'].rows.values():
|
||||
if port.logical_port == name:
|
||||
datapath = str(port.datapath.uuid)
|
||||
network_id = utils.get_network_name_from_datapath(
|
||||
port.datapath)
|
||||
chassis = port.chassis[0].name if port.chassis else None
|
||||
return chassis, datapath
|
||||
return chassis, network_id
|
||||
|
|
|
@ -158,8 +158,10 @@ class TestSbApi(BaseOvnIdlTest):
|
|||
chassis, switch, port, binding = self._add_switch_port(
|
||||
self.data['chassis'][0]['name'])
|
||||
self.api.lsp_bind(port.name, chassis.name).execute(check_error=True)
|
||||
network_id = binding.datapath.external_ids['name'].replace(
|
||||
'neutron-', '')
|
||||
self.assertEqual(
|
||||
(chassis.name, str(binding.datapath.uuid)),
|
||||
(chassis.name, network_id),
|
||||
self.api.get_logical_port_chassis_and_datapath(port.name))
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue