ported missing sequence updates from 1.9

This commit is contained in:
Brian Coca 2015-07-03 13:54:31 -04:00
parent 8c29bba2b1
commit 5122455db8
2 changed files with 25 additions and 9 deletions

View file

@ -152,15 +152,26 @@ class LookupModule(LookupBase):
)
elif self.count is not None:
# convert count to end
self.end = self.start + self.count * self.stride - 1
if self.count != 0:
self.end = self.start + self.count * self.stride - 1
else:
self.start = 0
self.end = 0
self.stride = 0
del self.count
if self.end < self.start:
raise AnsibleError("can't count backwards")
if self.stride > 0 and self.end < self.start:
raise AnsibleError("to count backwards make stride negative")
if self.stride < 0 and self.end > self.start:
raise AnsibleError("to count forward don't make stride negative")
if self.format.count('%') != 1:
raise AnsibleError("bad formatting string: %s" % self.format)
def generate_sequence(self):
numbers = xrange(self.start, self.end + 1, self.stride)
if self.stride > 0:
adjust = 1
else:
adjust = -1
numbers = xrange(self.start, self.end + adjust, self.stride)
for i in numbers:
try:
@ -191,13 +202,13 @@ class LookupModule(LookupBase):
raise AnsibleError("unknown error parsing with_sequence arguments: %r. Error was: %s" % (term, e))
self.sanity_check()
results.extend(self.generate_sequence())
if self.stride != 0:
results.extend(self.generate_sequence())
except AnsibleError:
raise
except Exception:
except Exception as e:
raise AnsibleError(
"unknown error generating sequence"
"unknown error generating sequence: %s" % e
)
return results

View file

@ -81,10 +81,15 @@
with_sequence: count=0
register: count_of_zero
- name: test with_sequence count 1
set_fact: "{{ 'x' + item }}={{ item }}"
with_sequence: count=1
register: count_of_one
- assert:
that:
- count_of_zero | skipped
- not count_of_zero | failed
- not count_of_one | skipped
# WITH_RANDOM_CHOICE