From 3981a218da0c201a89158cf9a95400e44f9c6eb2 Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Mon, 26 Sep 2011 13:13:33 -0400 Subject: [PATCH] Ensure minRam and minDisk are always integers Fixing bug 859149 Change-Id: I52bcb442225e8e3cb4aecc6d993e1c3a774cdf84 --- nova/api/openstack/views/images.py | 17 +++++++++++++---- nova/tests/api/openstack/fakes.py | 3 ++- nova/tests/api/openstack/test_images.py | 10 ++++++---- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/nova/api/openstack/views/images.py b/nova/api/openstack/views/images.py index 4e8584badee..67364b115a1 100644 --- a/nova/api/openstack/views/images.py +++ b/nova/api/openstack/views/images.py @@ -197,11 +197,20 @@ def build(self, image_obj, detail=False): if detail: image["metadata"] = image_obj.get("properties", {}) - if 'min_ram' in image_obj: - image["minRam"] = image_obj.get("min_ram") or 0 - if 'min_disk' in image_obj: - image["minDisk"] = image_obj.get("min_disk") or 0 + min_ram = image_obj.get('min_ram') or 0 + try: + min_ram = int(min_ram) + except ValueError: + min_ram = 0 + image['minRam'] = min_ram + + min_disk = image_obj.get('min_disk') or 0 + try: + min_disk = int(min_disk) + except ValueError: + min_disk = 0 + image['minDisk'] = min_disk return image diff --git a/nova/tests/api/openstack/fakes.py b/nova/tests/api/openstack/fakes.py index a1c956324ad..767e95165d2 100644 --- a/nova/tests/api/openstack/fakes.py +++ b/nova/tests/api/openstack/fakes.py @@ -219,7 +219,8 @@ def add_fixture(**kwargs): # Public image add_fixture(id=image_id, name='public image', is_public=True, - status='active', properties={'key1': 'value1'}) + status='active', properties={'key1': 'value1'}, + min_ram="128", min_disk="10") image_id += 1 # Snapshot for User 1 diff --git a/nova/tests/api/openstack/test_images.py b/nova/tests/api/openstack/test_images.py index 430215a638b..5b83bbd9621 100644 --- a/nova/tests/api/openstack/test_images.py +++ b/nova/tests/api/openstack/test_images.py @@ -659,8 +659,8 @@ def test_get_image_details_v1_1(self): 'created': NOW_API_FORMAT, 'status': 'ACTIVE', 'progress': 100, - 'minDisk': 0, - 'minRam': 0, + 'minDisk': 10, + 'minRam': 128, "links": [{ "rel": "self", "href": "http://localhost/v1.1/fake/images/123", @@ -950,9 +950,9 @@ def test_get_image_details_with_limit_v1_1(self): 'updated': NOW_API_FORMAT, 'created': NOW_API_FORMAT, 'status': 'ACTIVE', - 'minDisk': 0, + 'minDisk': 10, 'progress': 100, - 'minRam': 0, + 'minRam': 128, "links": [{ "rel": "self", "href": "http://localhost/v1.1/fake/images/123", @@ -1371,6 +1371,8 @@ def test_show(self): 'updated': self.TIMESTAMP, 'status': 'ACTIVE', 'progress': 80, + 'minRam': 10, + 'minDisk': 100, 'server': { 'id': '1', 'links': [