Merge pull request #10565 from bcoca/with_sequence_expand

made sequence more flexible
This commit is contained in:
Toshio Kuratomi
2015-05-21 08:05:17 -07:00
2 changed files with 37 additions and 7 deletions

View File

@@ -151,15 +151,26 @@ class LookupModule(object):
)
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:
@@ -193,12 +204,13 @@ class LookupModule(object):
self.sanity_check()
results.extend(self.generate_sequence())
if self.start != self.end:
results.extend(self.generate_sequence())
except AnsibleError:
raise
except Exception:
except Exception, e:
raise AnsibleError(
"unknown error generating sequence"
"unknown error generating sequence: %s" % str(e)
)
return results