diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-10-04 01:41:04 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-10-04 01:41:05 +0000 |
commit | 22fdd39ef98bbbeecb73cfd35544ef51c9921937 (patch) | |
tree | 20bc9c10cfb2185df95fc969c2eb0be47d882360 | |
parent | 35b2132723cf2412e42bb5e52f72abaef31dadbd (diff) | |
parent | 388e5db308e7ca3bd75d772688fa46ffab30d545 (diff) | |
download | nova-22fdd39ef98bbbeecb73cfd35544ef51c9921937.tar.gz |
Merge "claims: Do not assume image-meta is a dict" into stable/mitaka
-rw-r--r-- | nova/compute/claims.py | 7 | ||||
-rw-r--r-- | nova/tests/unit/compute/test_claims.py | 15 |
2 files changed, 17 insertions, 5 deletions
diff --git a/nova/compute/claims.py b/nova/compute/claims.py index 1b9e059e12..04cb55c3e6 100644 --- a/nova/compute/claims.py +++ b/nova/compute/claims.py @@ -268,6 +268,8 @@ class MoveClaim(Claim): resources, overhead=None, limits=None): self.context = context self.instance_type = instance_type + if isinstance(image_meta, dict): + image_meta = objects.ImageMeta.from_dict(image_meta) self.image_meta = image_meta super(MoveClaim, self).__init__(context, instance, tracker, resources, overhead=overhead, @@ -289,9 +291,8 @@ class MoveClaim(Claim): @property def numa_topology(self): - image_meta = objects.ImageMeta.from_dict(self.image_meta) - return hardware.numa_get_constraints( - self.instance_type, image_meta) + return hardware.numa_get_constraints(self.instance_type, + self.image_meta) def _test_pci(self): pci_requests = objects.InstancePCIRequests.\ diff --git a/nova/tests/unit/compute/test_claims.py b/nova/tests/unit/compute/test_claims.py index 455667a0cf..57a1957460 100644 --- a/nova/tests/unit/compute/test_claims.py +++ b/nova/tests/unit/compute/test_claims.py @@ -364,9 +364,11 @@ class ClaimTestCase(test.NoDBTestCase): class MoveClaimTestCase(ClaimTestCase): - def _claim(self, limits=None, overhead=None, requests=None, **kwargs): + def _claim(self, limits=None, overhead=None, requests=None, + image_meta=None, **kwargs): instance_type = self._fake_instance_type(**kwargs) numa_topology = kwargs.pop('numa_topology', None) + image_meta = image_meta or {} self.instance = self._fake_instance(**kwargs) self.instance.numa_topology = None if numa_topology: @@ -391,7 +393,7 @@ class MoveClaimTestCase(ClaimTestCase): return_value=self.db_numa_topology) def get_claim(mock_extra_get, mock_numa_get, mock_pci_get): return claims.MoveClaim(self.context, self.instance, instance_type, - {}, self.tracker, self.resources, + image_meta, self.tracker, self.resources, overhead=overhead, limits=limits) return get_claim() @@ -427,3 +429,12 @@ class MoveClaimTestCase(ClaimTestCase): objects.InstanceNUMATopology) self.assertEqual(migration, claim.migration) _test() + + def test_image_meta(self): + claim = self._claim() + self.assertIsInstance(claim.image_meta, objects.ImageMeta) + + def test_image_meta_object_passed(self): + image_meta = objects.ImageMeta() + claim = self._claim(image_meta=image_meta) + self.assertIsInstance(claim.image_meta, objects.ImageMeta) |