1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Support specifying cidr_ip as a list

Update/fix to Support specifying cidr_ip as a list

Unicode isn't compatible with python2, so we needed some other
solution to this problem. The simplest approach is if the ip item
isn't already a list, simply convert it to one, and we're done.
Thanks to @mspiegle for this suggestion.
This commit is contained in:
(@cewood) 2014-09-30 10:26:06 +10:00 committed by Matt Clay
parent 1ba2e34ae1
commit 17b5d851f2

View file

@ -295,8 +295,13 @@ def main():
rule['from_port'] = None rule['from_port'] = None
rule['to_port'] = None rule['to_port'] = None
# Convert ip to list we can iterate over
if not isinstance(ip, list):
ip = [ip]
# If rule already exists, don't later delete it # If rule already exists, don't later delete it
ruleId = make_rule_key('in', rule, group_id, ip) for thisip in ip:
ruleId = make_rule_key('in', rule, group_id, thisip)
if ruleId in groupRules: if ruleId in groupRules:
del groupRules[ruleId] del groupRules[ruleId]
# Otherwise, add new rule # Otherwise, add new rule
@ -306,7 +311,7 @@ def main():
grantGroup = groups[group_id] grantGroup = groups[group_id]
if not module.check_mode: if not module.check_mode:
group.authorize(rule['proto'], rule['from_port'], rule['to_port'], ip, grantGroup) group.authorize(rule['proto'], rule['from_port'], rule['to_port'], thisip, grantGroup)
changed = True changed = True
# Finally, remove anything left in the groupRules -- these will be defunct rules # Finally, remove anything left in the groupRules -- these will be defunct rules
@ -335,8 +340,13 @@ def main():
rule['from_port'] = None rule['from_port'] = None
rule['to_port'] = None rule['to_port'] = None
# Convert ip to list we can iterate over
if not isinstance(ip, list):
ip = [ip]
# If rule already exists, don't later delete it # If rule already exists, don't later delete it
ruleId = make_rule_key('out', rule, group_id, ip) for thisip in ip:
ruleId = make_rule_key('out', rule, group_id, thisip)
if ruleId in groupRules: if ruleId in groupRules:
del groupRules[ruleId] del groupRules[ruleId]
# Otherwise, add new rule # Otherwise, add new rule
@ -352,7 +362,7 @@ def main():
from_port=rule['from_port'], from_port=rule['from_port'],
to_port=rule['to_port'], to_port=rule['to_port'],
src_group_id=grantGroup, src_group_id=grantGroup,
cidr_ip=ip) cidr_ip=thisip)
changed = True changed = True
elif vpc_id and not module.check_mode: elif vpc_id and not module.check_mode:
# when using a vpc, but no egress rules are specified, # when using a vpc, but no egress rules are specified,