Merge "Fix config drive code logical error." into milestone-proposed

This commit is contained in:
Jenkins 2013-05-30 09:08:49 +00:00 committed by Gerrit Code Review
commit 8ca2724f78
2 changed files with 7 additions and 19 deletions

View File

@ -479,19 +479,15 @@ class API(base.Base):
return instance
def _check_config_drive(self, context, config_drive):
bool_like = True
try:
strutils.bool_from_string(config_drive, strict=True)
bool_like = strutils.bool_from_string(config_drive, strict=True)
except ValueError:
bool_like = False
if config_drive is None:
return None, None
elif bool_like and config_drive not in (0, 1, '0', '1'):
# NOTE(sirp): '0' and '1' could be a bool value or an ID. Since
# there are many other ways to specify bools (e.g. 't', 'f'), it's
# better to treat as an ID.
return None, config_drive
elif bool_like:
return None, bool_like
else:
cd_image_service, config_drive_id = \
glance.get_remote_image_service(context, config_drive)

View File

@ -8989,21 +8989,13 @@ class CheckConfigDriveTestCase(test.TestCase):
self.assertCheck((None, None), None)
self.assertFalse(self.called['show'])
def test_value_is_bool_like_string(self):
self.assertCheck((None, 'True'), 'True')
self.assertCheck((None, 'yes'), 'yes')
def test_bool_string_or_id(self):
# NOTE(sirp): '0' and '1' could be a bool value or an ID. Since there
# are many other ways to specify bools (e.g. 't', 'f'), it's better to
# treat as an ID.
self.assertCheck((0, None), 0)
self.assertCheck((1, None), 1)
self.assertCheck(('0', None), '0')
self.assertCheck(('1', None), '1')
self.assertCheck((None, True), "true")
self.assertCheck((None, True), 1)
self.assertCheck((None, True), 't')
def test_value_is_image_id(self):
self.assertCheck((2, None), 2)
self.assertCheck(("fake-uuid", None), "fake-uuid")
class CheckRequestedImageTestCase(test.TestCase):