Merge "Clean up reservations in migrate_task call path"

This commit is contained in:
Zuul 2018-02-09 01:44:02 +00:00 committed by Gerrit Code Review
commit 5caca24dc7
4 changed files with 16 additions and 22 deletions

View File

@ -239,6 +239,8 @@ class ComputeTaskManager(base.Base):
# TODO(tdurakov): remove `live` parameter here on compute task api RPC
# version bump to 2.x
# TODO(danms): remove the `reservations` parameter here on compute task api
# RPC version bump to 2.x
@messaging.expected_exceptions(
exception.NoValidHost,
exception.ComputeServiceUnavailable,
@ -282,13 +284,13 @@ class ComputeTaskManager(base.Base):
instance_uuid):
self._cold_migrate(context, instance, flavor,
scheduler_hint['filter_properties'],
reservations, clean_shutdown, request_spec,
clean_shutdown, request_spec,
host_list)
else:
raise NotImplementedError()
def _cold_migrate(self, context, instance, flavor, filter_properties,
reservations, clean_shutdown, request_spec, host_list):
clean_shutdown, request_spec, host_list):
image = utils.get_image_from_system_metadata(
instance.system_metadata)
@ -309,7 +311,7 @@ class ComputeTaskManager(base.Base):
request_spec.flavor = flavor
task = self._build_cold_migrate_task(context, instance, flavor,
request_spec, reservations, clean_shutdown, host_list)
request_spec, clean_shutdown, host_list)
try:
task.execute()
except exception.NoValidHost as ex:
@ -463,10 +465,10 @@ class ComputeTaskManager(base.Base):
request_spec)
def _build_cold_migrate_task(self, context, instance, flavor, request_spec,
reservations, clean_shutdown, host_list):
clean_shutdown, host_list):
return migrate.MigrationTask(context, instance, flavor,
request_spec,
reservations, clean_shutdown,
clean_shutdown,
self.compute_rpcapi,
self.scheduler_client, host_list)

View File

@ -110,12 +110,11 @@ def should_do_migration_allocation(context):
class MigrationTask(base.TaskBase):
def __init__(self, context, instance, flavor,
request_spec, reservations, clean_shutdown, compute_rpcapi,
request_spec, clean_shutdown, compute_rpcapi,
scheduler_client, host_list):
super(MigrationTask, self).__init__(context, instance)
self.clean_shutdown = clean_shutdown
self.request_spec = request_spec
self.reservations = reservations
self.flavor = flavor
self.compute_rpcapi = compute_rpcapi

View File

@ -53,7 +53,7 @@ class MigrationTaskTestCase(test.NoDBTestCase):
def _generate_task(self):
return migrate.MigrationTask(self.context, self.instance, self.flavor,
self.request_spec, self.reservations,
self.request_spec,
self.clean_shutdown,
compute_rpcapi.ComputeAPI(),
scheduler_client.SchedulerClient(),

View File

@ -2186,7 +2186,6 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
pci_requests=None,
numa_topology=None,
project_id=self.context.project_id)
resvs = 'fake-resvs'
image = 'fake-image'
fake_spec = objects.RequestSpec(image=objects.ImageMeta())
spec_fc_mock.return_value = fake_spec
@ -2203,7 +2202,7 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
self.assertRaises(exc.NoValidHost,
self.conductor._cold_migrate,
self.context, inst_obj,
flavor, {}, [resvs],
flavor, {},
True, None, None)
metadata_mock.assert_called_with({})
sig_mock.assert_called_once_with(self.context, fake_spec)
@ -2238,7 +2237,6 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
availability_zone=None,
project_id=self.context.project_id)
image = 'fake-image'
resvs = 'fake-resvs'
fake_spec = objects.RequestSpec(image=objects.ImageMeta())
spec_fc_mock.return_value = fake_spec
@ -2255,7 +2253,7 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
self.assertRaises(exc.NoValidHost,
self.conductor._cold_migrate,
self.context, inst_obj,
flavor, {}, [resvs],
flavor, {},
True, None, None)
metadata_mock.assert_called_with({})
sig_mock.assert_called_once_with(self.context, fake_spec)
@ -2275,7 +2273,6 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
uuid=uuids.instance,
user_id=fakes.FAKE_USER_ID)
fake_spec = fake_request_spec.fake_spec_obj()
resvs = 'fake-resvs'
image = 'fake-image'
with test.nested(
@ -2290,7 +2287,7 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
task_rollback_mock):
nvh = self.assertRaises(exc.NoValidHost,
self.conductor._cold_migrate, self.context,
inst_obj, flavor, {}, [resvs],
inst_obj, flavor, {},
True, fake_spec, None)
self.assertIn('cold migrate', nvh.message)
@ -2318,7 +2315,6 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
numa_topology=None,
pci_requests=None,
availability_zone=None)
resvs = 'fake-resvs'
image = 'fake-image'
exception = exc.UnsupportedPolicyException(reason='')
fake_spec = fake_request_spec.fake_spec_obj()
@ -2329,7 +2325,7 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
self.assertRaises(exc.UnsupportedPolicyException,
self.conductor._cold_migrate, self.context,
inst_obj, flavor, {}, [resvs], True, None, None)
inst_obj, flavor, {}, True, None, None)
updates = {'vm_state': vm_states.STOPPED, 'task_state': None}
set_vm_mock.assert_called_once_with(self.context, inst_obj.uuid,
@ -2363,7 +2359,6 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
numa_topology=None,
project_id=self.context.project_id)
image = 'fake-image'
resvs = 'fake-resvs'
fake_spec = objects.RequestSpec(image=objects.ImageMeta())
legacy_request_spec = fake_spec.to_legacy_request_spec_dict()
spec_fc_mock.return_value = fake_spec
@ -2383,7 +2378,7 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
self.assertRaises(test.TestingException,
self.conductor._cold_migrate,
self.context, inst_obj, flavor,
{}, [resvs], True, None, None)
{}, True, None, None)
# Filter properties are populated during code execution
legacy_filter_props = {'retry': {'num_attempts': 1,
@ -2425,7 +2420,6 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
availability_zone=None,
pci_requests=None,
numa_topology=None)
resvs = 'fake-resvs'
image = 'fake-image'
fake_spec = fake_request_spec.fake_spec_obj()
@ -2434,7 +2428,7 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
# the new one
self.assertNotEqual(flavor, fake_spec.flavor)
self.conductor._cold_migrate(self.context, inst_obj, flavor, {},
[resvs], True, fake_spec, None)
True, fake_spec, None)
# Now the RequestSpec should be updated...
self.assertEqual(flavor, fake_spec.flavor)
@ -2453,7 +2447,6 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
user_id=fakes.FAKE_USER_ID)
fake_spec = fake_request_spec.fake_spec_obj()
resvs = 'fake-resvs'
image = 'fake-image'
with test.nested(
@ -2471,7 +2464,7 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
nvh = self.assertRaises(exc.NoValidHost,
self.conductor._cold_migrate, self.context,
inst_obj, flavor_new, {},
[resvs], True, fake_spec, None)
True, fake_spec, None)
self.assertIn('resize', nvh.message)
@mock.patch('nova.objects.BuildRequest.get_by_instance_uuid')