diff --git a/ironic/api/controllers/v1/types.py b/ironic/api/controllers/v1/types.py index fdd45fb4da..ffcaa7b7f1 100644 --- a/ironic/api/controllers/v1/types.py +++ b/ironic/api/controllers/v1/types.py @@ -196,12 +196,12 @@ class ListType(wtypes.UserType): """Validate and convert the input to a ListType. :param value: A comma separated string of values - :returns: A list of values. + :returns: A list of unique values, whose order is not guaranteed. """ items = [v.strip().lower() for v in six.text_type(value).split(',')] # filter() to remove empty items # set() to remove duplicated items - return set(filter(None, items)) + return list(set(filter(None, items))) @staticmethod def frombasetype(value): diff --git a/ironic/tests/unit/api/v1/test_types.py b/ironic/tests/unit/api/v1/test_types.py index 9fb7747c57..ac7ce73e95 100644 --- a/ironic/tests/unit/api/v1/test_types.py +++ b/ironic/tests/unit/api/v1/test_types.py @@ -277,3 +277,4 @@ class TestListType(base.TestCase): v.validate("foo, ,,bar")) self.assertItemsEqual(['foo', 'bar'], v.validate("foo,foo,foo,bar")) + self.assertIsInstance(v.validate('foo,bar'), list)