Merge "db: Retrieve VirtualInterface objects by UUID, not address"

This commit is contained in:
Zuul 2025-01-10 04:33:10 +00:00 committed by Gerrit Code Review
commit b34ffcdea2
4 changed files with 11 additions and 10 deletions

View File

@ -1061,9 +1061,9 @@ def _virtual_interface_query(context):
@require_context
@pick_context_manager_writer
def virtual_interface_update(context, address, values):
def virtual_interface_update(context, vif_uuid, values):
"""Create a virtual interface record in the database."""
vif_ref = virtual_interface_get_by_address(context, address)
vif_ref = virtual_interface_get_by_uuid(context, vif_uuid)
vif_ref.update(values)
vif_ref.save(context.session)
return vif_ref

View File

@ -110,7 +110,7 @@ class VirtualInterface(base.NovaPersistentObject, base.NovaObject):
raise exception.ObjectActionError(action='save',
reason='address is not mutable')
db_vif = main_db_api.virtual_interface_update(
self._context, self.address, updates)
self._context, self.uuid, updates)
return self._from_db_object(self._context, self, db_vif)
@base.remotable_classmethod

View File

@ -5036,10 +5036,10 @@ class VirtualInterfaceTestCase(test.TestCase, ModelsObjectComparatorMixin):
'tag': 'bar',
'deleted': 0}
ignored_keys = ['created_at', 'id', 'deleted_at', 'updated_at']
vif_addr = db.virtual_interface_create(self.ctxt, create)['address']
db.virtual_interface_update(self.ctxt, vif_addr, update)
updated_vif = db.virtual_interface_get_by_address(self.ctxt,
updated['address'])
vif_uuid = db.virtual_interface_create(self.ctxt, create)['uuid']
db.virtual_interface_update(self.ctxt, vif_uuid, update)
updated_vif = db.virtual_interface_get_by_uuid(self.ctxt,
updated['uuid'])
self._assertEqualObjects(updated, updated_vif, ignored_keys)

View File

@ -108,7 +108,7 @@ class _TestVirtualInterface(object):
vif.address = '00:00:00:00:00:00'
vif.network_id = 123
vif.instance_uuid = uuids.instance_uuid
vif.uuid = uuids.vif_uuid
vif.uuid = '4c461286-ff41-4e8c-a592-6afdc8f345fd'
vif.tag = 'foo'
vif.create()
@ -116,8 +116,9 @@ class _TestVirtualInterface(object):
update.return_value = fake_vif
vif.tag = 'bar'
vif.save()
update.assert_called_once_with(self.context, '00:00:00:00:00:00',
{'tag': 'bar'})
update.assert_called_once_with(self.context,
'4c461286-ff41-4e8c-a592-6afdc8f345fd',
{'tag': 'bar'})
def test_delete_by_instance_uuid(self):
with mock.patch.object(db,