From d665911bab1e657169843e3fce99058902d213a8 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Mon, 14 Mar 2016 10:32:50 -0700 Subject: [PATCH] Allow FieldAttribute lists and sets to be set from a comma separated string --- lib/ansible/playbook/base.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/ansible/playbook/base.py b/lib/ansible/playbook/base.py index d3752adf2f3..c9fd2e84b45 100644 --- a/lib/ansible/playbook/base.py +++ b/lib/ansible/playbook/base.py @@ -334,7 +334,10 @@ class Base: if value is None: value = [] elif not isinstance(value, list): - value = [ value ] + if isinstance(value, string_types): + value = value.split(',') + else: + value = [ value ] if attribute.listof is not None: for item in value: if not isinstance(item, attribute.listof): @@ -346,11 +349,15 @@ class Base: elif attribute.isa == 'set': if value is None: value = set() - else: - if not isinstance(value, (list, set)): + elif not isinstance(value, (list, set)): + if isinstance(value, string_types): + value = value.split(',') + else: + # Making a list like this handles strings of + # text and bytes properly value = [ value ] - if not isinstance(value, set): - value = set(value) + if not isinstance(value, set): + value = set(value) elif attribute.isa == 'dict': if value is None: value = dict()