Merge "Ensure image['..'] does not throw KeyError"

This commit is contained in:
Jenkins 2016-02-02 20:29:48 +00:00 committed by Gerrit Code Review
commit cc5794c395
2 changed files with 12 additions and 11 deletions

View File

@ -256,6 +256,12 @@ def _get_validated_image(config, clients, param_name):
image_id = types.ImageResourceType.transform(
clients=clients, resource_config=image_args)
image = clients.glance().images.get(image=image_id).to_dict()
if not image.get("size"):
image["size"] = 0
if not image.get("min_ram"):
image["min_ram"] = 0
if not image.get("min_disk"):
image["min_disk"] = 0
return (ValidationResult(True), image)
except (glance_exc.HTTPNotFound, exceptions.InvalidScenarioArgument):
message = _("Image '%s' not found") % image_args
@ -349,18 +355,18 @@ def image_valid_on_flavor(config, clients, deployment, flavor_name,
if not valid_result.is_valid:
return valid_result
if flavor.ram < (image["min_ram"] or 0):
if flavor.ram < image["min_ram"]:
message = _("The memory size for flavor '%s' is too small "
"for requested image '%s'") % (flavor.id, image["id"])
return ValidationResult(False, message)
if flavor.disk:
if (image["size"] or 0) > flavor.disk * (1024 ** 3):
if image["size"] > flavor.disk * (1024 ** 3):
message = _("The disk size for flavor '%s' is too small "
"for requested image '%s'") % (flavor.id, image["id"])
return ValidationResult(False, message)
if (image["min_disk"] or 0) > flavor.disk:
if image["min_disk"] > flavor.disk:
message = _("The disk size for flavor '%s' is too small "
"for requested image '%s'") % (flavor.id, image["id"])
return ValidationResult(False, message)

View File

@ -264,7 +264,9 @@ class ValidatorsTestCase(test.TestCase):
"image_name": "foo"}},
clients, "a")
self.assertTrue(result[0].is_valid, result[0].msg)
self.assertEqual(result[1], {"image": "image_id"})
self.assertEqual({"image": "image_id", "min_disk": 0,
"min_ram": 0, "size": 0},
result[1])
mock_image_resource_type_transform.assert_called_once_with(
clients=clients, resource_config="test")
clients.glance().images.get.assert_called_with(image="image_id")
@ -426,9 +428,6 @@ class ValidatorsTestCase(test.TestCase):
# test ram
flavor.disk = None
flavor.ram = 2
image["min_ram"] = None
result = validator(None, None, None)
self.assertTrue(result.is_valid, result.msg)
image["min_ram"] = 4
result = validator(None, None, None)
self.assertFalse(result.is_valid, result.msg)
@ -475,10 +474,6 @@ class ValidatorsTestCase(test.TestCase):
}
# test ram
image["min_ram"] = None
result = validator(config, clients, None)
self.assertTrue(result.is_valid, result.msg)
image["min_ram"] = 64
result = validator(config, clients, None)
self.assertFalse(result.is_valid, result.msg)