summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-10-04 01:41:04 +0000
committerGerrit Code Review <review@openstack.org>2016-10-04 01:41:05 +0000
commit22fdd39ef98bbbeecb73cfd35544ef51c9921937 (patch)
tree20bc9c10cfb2185df95fc969c2eb0be47d882360
parent35b2132723cf2412e42bb5e52f72abaef31dadbd (diff)
parent388e5db308e7ca3bd75d772688fa46ffab30d545 (diff)
downloadnova-22fdd39ef98bbbeecb73cfd35544ef51c9921937.tar.gz
Merge "claims: Do not assume image-meta is a dict" into stable/mitaka
-rw-r--r--nova/compute/claims.py7
-rw-r--r--nova/tests/unit/compute/test_claims.py15
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)