Remove unnecessary retrieval of Migration object
This has already been retrieved with an elevated context. There's no need to retrieve it again. Change-Id: I5fa7786523bc1b6001247c6daaee7e984e9a3b65 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
parent
a9e0b0573d
commit
6ae11a0bcf
|
@ -4171,29 +4171,19 @@ class ComputeManager(manager.Manager):
|
|||
source host.
|
||||
"""
|
||||
@utils.synchronized(instance.uuid)
|
||||
def do_confirm_resize(context, instance, migration_id):
|
||||
# NOTE(wangpan): Get the migration status from db, if it has been
|
||||
# confirmed, we do nothing and return here
|
||||
LOG.debug("Going to confirm migration %s", migration_id,
|
||||
def do_confirm_resize(context, instance, migration):
|
||||
LOG.debug("Going to confirm migration %s", migration.id,
|
||||
instance=instance)
|
||||
try:
|
||||
# TODO(russellb) Why are we sending the migration object just
|
||||
# to turn around and look it up from the db again?
|
||||
migration = objects.Migration.get_by_id(
|
||||
context.elevated(), migration_id)
|
||||
except exception.MigrationNotFound:
|
||||
LOG.error("Migration %s is not found during confirmation",
|
||||
migration_id, instance=instance)
|
||||
return
|
||||
|
||||
if migration.status == 'confirmed':
|
||||
LOG.info("Migration %s is already confirmed",
|
||||
migration_id, instance=instance)
|
||||
migration.id, instance=instance)
|
||||
return
|
||||
elif migration.status not in ('finished', 'confirming'):
|
||||
|
||||
if migration.status not in ('finished', 'confirming'):
|
||||
LOG.warning("Unexpected confirmation status '%(status)s' "
|
||||
"of migration %(id)s, exit confirmation process",
|
||||
{"status": migration.status, "id": migration_id},
|
||||
{"status": migration.status, "id": migration.id},
|
||||
instance=instance)
|
||||
return
|
||||
|
||||
|
@ -4237,7 +4227,7 @@ class ComputeManager(manager.Manager):
|
|||
self._delete_scheduler_instance_info(
|
||||
context, instance.uuid)
|
||||
|
||||
do_confirm_resize(context, instance, migration.id)
|
||||
do_confirm_resize(context, instance, migration)
|
||||
|
||||
def _get_updated_nw_info_with_pci_mapping(self, nw_info, pci_mapping):
|
||||
# NOTE(adrianc): This method returns a copy of nw_info if modifications
|
||||
|
|
|
@ -8110,21 +8110,6 @@ class ComputeTestCase(BaseTestCase,
|
|||
event.EVENT_LIFECYCLE_STOPPED)
|
||||
self.compute.handle_events(event_instance)
|
||||
|
||||
@mock.patch.object(objects.Migration, 'get_by_id')
|
||||
def test_confirm_resize_roll_back_quota_migration_not_found(self,
|
||||
mock_get_by_id):
|
||||
instance = self._create_fake_instance_obj()
|
||||
|
||||
migration = objects.Migration()
|
||||
migration.instance_uuid = instance.uuid
|
||||
migration.status = 'finished'
|
||||
migration.id = 0
|
||||
|
||||
mock_get_by_id.side_effect = exception.MigrationNotFound(
|
||||
migration_id=0)
|
||||
self.compute.confirm_resize(self.context, instance=instance,
|
||||
migration=migration)
|
||||
|
||||
@mock.patch.object(instance_obj.Instance, 'get_by_uuid')
|
||||
def test_confirm_resize_roll_back_quota_instance_not_found(self,
|
||||
mock_get_by_id):
|
||||
|
|
|
@ -8615,20 +8615,18 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase,
|
|||
|
||||
@mock.patch('nova.objects.MigrationContext.get_pci_mapping_for_migration')
|
||||
@mock.patch('nova.compute.utils.add_instance_fault_from_exc')
|
||||
@mock.patch('nova.objects.Migration.get_by_id')
|
||||
@mock.patch('nova.objects.Instance.get_by_uuid')
|
||||
@mock.patch('nova.compute.utils.notify_about_instance_usage')
|
||||
@mock.patch('nova.compute.utils.notify_about_instance_action')
|
||||
@mock.patch('nova.objects.Instance.save')
|
||||
def test_confirm_resize_driver_confirm_migration_fails(
|
||||
self, instance_save, notify_action, notify_usage,
|
||||
instance_get_by_uuid, migration_get_by_id, add_fault, get_mapping):
|
||||
instance_get_by_uuid, add_fault, get_mapping):
|
||||
"""Tests the scenario that driver.confirm_migration raises some error
|
||||
to make sure the error is properly handled, like the instance and
|
||||
migration status is set to 'error'.
|
||||
"""
|
||||
self.migration.status = 'confirming'
|
||||
migration_get_by_id.return_value = self.migration
|
||||
instance_get_by_uuid.return_value = self.instance
|
||||
self.instance.migration_context = objects.MigrationContext()
|
||||
|
||||
|
@ -8667,7 +8665,6 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase,
|
|||
confirm_migration.assert_called_once()
|
||||
network_api.setup_networks_on_host.assert_called_once()
|
||||
instance_get_by_uuid.assert_called_once()
|
||||
migration_get_by_id.assert_called_once()
|
||||
|
||||
def test_confirm_resize_calls_virt_driver_with_old_pci(self):
|
||||
@mock.patch.object(self.migration, 'save')
|
||||
|
|
Loading…
Reference in New Issue