Cast is_public, protected, deleted to bool

To keep a consistent view of an image, is_public, protected, and
deleted need to be cast to a bool when being parsed from headers.

Fix bug 1036299

Change-Id: I2730a0f2d705d26ebc0ba883e99c1caf44d70b51
This commit is contained in:
Brian Waldon
2012-08-13 10:30:43 -07:00
parent 1e539dfdbe
commit 8f0d5c4f2c
2 changed files with 19 additions and 0 deletions
+5
View File
@@ -57,6 +57,11 @@ class ImageManager(base.Manager):
elif key.startswith('x-image-meta-'):
_key = key[13:]
meta[_key] = value
for key in ['is_public', 'protected', 'deleted']:
if key in meta:
meta[key] = utils.string_to_bool(meta[key])
return self._format_image_meta_for_user(meta)
def _image_meta_to_headers(self, fields):
+14
View File
@@ -39,6 +39,9 @@ fixtures = {
'min_ram': '512',
'min_disk': '10',
'properties': {'a': 'b', 'c': 'd'},
'is_public': False,
'protected': False,
'deleted': False,
}},
),
),
@@ -141,6 +144,9 @@ fixtures = {
'x-image-meta-id': '1',
'x-image-meta-name': 'image-1',
'x-image-meta-property-arch': 'x86_64',
'x-image-meta-is_public': 'false',
'x-image-meta-protected': 'false',
'x-image-meta-deleted': 'false',
},
None),
'GET': (
@@ -160,6 +166,8 @@ fixtures = {
'min_ram': '512',
'min_disk': '10',
'properties': {'a': 'b', 'c': 'd'},
'is_public': False,
'protected': False,
}},
),
),
@@ -246,6 +254,9 @@ class ImageManagerTest(unittest.TestCase):
self.assertEqual(self.api.calls, expect)
self.assertEqual(image.id, '1')
self.assertEqual(image.name, 'image-1')
self.assertEqual(image.is_public, False)
self.assertEqual(image.protected, False)
self.assertEqual(image.deleted, False)
def test_data(self):
data = ''.join([b for b in self.mgr.data('1', do_checksum=False)])
@@ -328,6 +339,9 @@ class ImageManagerTest(unittest.TestCase):
self.assertEqual(image.size, 1024)
self.assertEqual(image.min_ram, 512)
self.assertEqual(image.min_disk, 10)
self.assertEqual(image.is_public, False)
self.assertEqual(image.protected, False)
self.assertEqual(image.deleted, False)
self.assertEqual(image.properties, {'a': 'b', 'c': 'd'})
def test_create_with_data(self):