From 01ae60d5240370359e97a8a79759a3c80eea46a0 Mon Sep 17 00:00:00 2001 From: Victor Salgado Date: Thu, 17 Sep 2015 13:50:40 -0300 Subject: [PATCH 1/2] Add more tests for _split_pattern for when the input is a list --- test/units/inventory/test_inventory.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/units/inventory/test_inventory.py b/test/units/inventory/test_inventory.py index 3869e15b58..e397143390 100644 --- a/test/units/inventory/test_inventory.py +++ b/test/units/inventory/test_inventory.py @@ -44,6 +44,14 @@ class TestInventory(unittest.TestCase): ' a : b ': ['a', 'b'], 'foo:bar:baz[1:2]': ['foo', 'bar', 'baz[1:2]'], } + pattern_lists = [ + [['a'], ['a']], + [['a', 'b'], ['a', 'b']], + [['a, b'], ['a', 'b']], + [['9a01:7f8:191:7701::9', '9a01:7f8:191:7701::9,foo'], + ['9a01:7f8:191:7701::9', '9a01:7f8:191:7701::9','foo']] + ] + def setUp(self): v = VariableManager() @@ -56,3 +64,6 @@ class TestInventory(unittest.TestCase): for p in self.patterns: r = self.patterns[p] self.assertEqual(r, self.i._split_pattern(p)) + + for p, r in self.pattern_lists: + self.assertEqual(r, self.i._split_pattern(p)) From 14fefebaad0d5a6fc70cb913b138da78345818f9 Mon Sep 17 00:00:00 2001 From: Victor Salgado Date: Thu, 17 Sep 2015 13:52:54 -0300 Subject: [PATCH 2/2] Modify _split_pattern to use map when working with list input --- lib/ansible/inventory/__init__.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/ansible/inventory/__init__.py b/lib/ansible/inventory/__init__.py index 079243b0cd..643f12d8fd 100644 --- a/lib/ansible/inventory/__init__.py +++ b/lib/ansible/inventory/__init__.py @@ -24,6 +24,7 @@ import os import sys import re import stat +import itertools from ansible import constants as C from ansible.errors import AnsibleError @@ -185,9 +186,7 @@ class Inventory(object): """ if isinstance(pattern, list): - pattern = ','.join(pattern) - - patterns = [] + return list(itertools.chain(*map(self._split_pattern, pattern))) if ';' in pattern: display.deprecated("Use ',' instead of ':' or ';' to separate host patterns", version=2.0, removed=True)