diff options
author | Zuul <zuul@review.openstack.org> | 2017-12-22 19:48:47 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-12-22 19:48:47 +0000 |
commit | 506e4f5fce02c743e149c051e0d2924291aa51aa (patch) | |
tree | 9bc299ddf1a7e81cb19e7df5d25bed49645689ab | |
parent | d67cfbc8ca60c7820883daa2d0917dedc0958d65 (diff) | |
parent | 99b9cff2e49c42b4ba7fbaad8393fd89268f1f6b (diff) | |
download | nova-506e4f5fce02c743e149c051e0d2924291aa51aa.tar.gz |
Merge "Use instance.project_id when creating request specs for old instances" into stable/newton
-rw-r--r-- | nova/objects/request_spec.py | 9 | ||||
-rw-r--r-- | nova/tests/functional/db/test_request_spec.py | 7 |
2 files changed, 11 insertions, 5 deletions
diff --git a/nova/objects/request_spec.py b/nova/objects/request_spec.py index 99fcea6a3b..660bc5a21b 100644 --- a/nova/objects/request_spec.py +++ b/nova/objects/request_spec.py @@ -365,7 +365,7 @@ class RequestSpec(base.NovaObject): @classmethod def from_components(cls, context, instance_uuid, image, flavor, numa_topology, pci_requests, filter_properties, instance_group, - availability_zone): + availability_zone, project_id=None): """Returns a new RequestSpec object hydrated by various components. This helper is useful in creating the RequestSpec from the various @@ -382,6 +382,8 @@ class RequestSpec(base.NovaObject): :param filter_properties: a dict of properties for scheduling :param instance_group: None or an instance group NovaObject :param availability_zone: an availability_zone string + :param project_id: The project_id for the requestspec (should match + the instance project_id). """ spec_obj = cls(context) spec_obj.num_instances = 1 @@ -389,7 +391,7 @@ class RequestSpec(base.NovaObject): spec_obj.instance_group = instance_group if spec_obj.instance_group is None and filter_properties: spec_obj._populate_group_info(filter_properties) - spec_obj.project_id = context.project_id + spec_obj.project_id = project_id or context.project_id spec_obj._image_meta_from_image(image) spec_obj._from_flavor(flavor) spec_obj._from_instance_pci_requests(pci_requests) @@ -555,7 +557,8 @@ def _create_minimal_request_spec(context, instance): context, instance.uuid, image, instance.flavor, instance.numa_topology, instance.pci_requests, - filter_properties, None, instance.availability_zone + filter_properties, None, instance.availability_zone, + project_id=instance.project_id ) request_spec.create() diff --git a/nova/tests/functional/db/test_request_spec.py b/nova/tests/functional/db/test_request_spec.py index c012172bf1..a5c560d162 100644 --- a/nova/tests/functional/db/test_request_spec.py +++ b/nova/tests/functional/db/test_request_spec.py @@ -138,9 +138,12 @@ class RequestSpecInstanceMigrationTestCase( self.assertEqual(0, done) # Make sure all instances have now a related RequestSpec - for uuid in [instance.uuid for instance in self.instances]: + for instance in self.instances: + uuid = instance.uuid try: - objects.RequestSpec.get_by_instance_uuid(self.context, uuid) + spec = objects.RequestSpec.get_by_instance_uuid( + self.context, uuid) + self.assertEqual(instance.project_id, spec.project_id) except exception.RequestSpecNotFound: self.fail("RequestSpec not found for instance UUID :%s ", uuid) |