From 1acb29ff9b684d168de3e14c2a0f5fdf0ee2b9eb Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Tue, 18 Aug 2015 02:33:23 -0400 Subject: [PATCH] sequence will now run once for start=end, added test to suite fixes #11979 --- lib/ansible/plugins/lookup/sequence.py | 12 +++--------- test/integration/roles/test_iterators/tasks/main.yml | 8 +++++++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/ansible/plugins/lookup/sequence.py b/lib/ansible/plugins/lookup/sequence.py index 280f9ec851..a6d133b3f9 100644 --- a/lib/ansible/plugins/lookup/sequence.py +++ b/lib/ansible/plugins/lookup/sequence.py @@ -142,13 +142,9 @@ class LookupModule(LookupBase): def sanity_check(self): if self.count is None and self.end is None: - raise AnsibleError( - "must specify count or end in with_sequence" - ) + raise AnsibleError( "must specify count or end in with_sequence") elif self.count is not None and self.end is not None: - raise AnsibleError( - "can't specify both count and end in with_sequence" - ) + raise AnsibleError( "can't specify both count and end in with_sequence") elif self.count is not None: # convert count to end if self.count != 0: @@ -166,7 +162,7 @@ class LookupModule(LookupBase): raise AnsibleError("bad formatting string: %s" % self.format) def generate_sequence(self): - if self.stride > 0: + if self.stride >= 0: adjust = 1 else: adjust = -1 @@ -187,8 +183,6 @@ class LookupModule(LookupBase): for term in terms: try: self.reset() # clear out things for this iteration - - term = self._templar.template(term) try: if not self.parse_simple_args(term): self.parse_kv_args(parse_kv(term)) diff --git a/test/integration/roles/test_iterators/tasks/main.yml b/test/integration/roles/test_iterators/tasks/main.yml index b324da7932..3f8d8b2848 100644 --- a/test/integration/roles/test_iterators/tasks/main.yml +++ b/test/integration/roles/test_iterators/tasks/main.yml @@ -81,6 +81,11 @@ with_sequence: count=0 register: count_of_zero +- name: test with_sequence does 1 when start == end + debug: msg='should run once' + with_sequence: start=1 end=1 + register: start_equal_end + - name: test with_sequence count 1 set_fact: "{{ 'x' + item }}={{ item }}" with_sequence: count=1 @@ -88,6 +93,7 @@ - assert: that: + - not start_equal_end| skipped - count_of_zero | skipped - not count_of_one | skipped @@ -97,7 +103,7 @@ set_fact: "random={{ item }}" with_random_choice: - "foo" - - "bar" + - "bar" - name: verify with_random_choice assert: