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

Add rule group_name parameter whose value can reference containing group name.

This commit is contained in:
David Hummel 2013-12-20 16:06:55 -05:00
parent 95d1cda5d2
commit bd67c6756a

View file

@ -87,7 +87,10 @@ EXAMPLES = '''
- proto: udp - proto: udp
from_port: 10051 from_port: 10051
to_port: 10051 to_port: 10051
group_id: abcdef group_id: sg-12345678
- proto: all
# the containing group name may be specified here
group_name: example
''' '''
try: try:
@ -152,6 +155,7 @@ def main():
groups = {} groups = {}
for curGroup in ec2.get_all_security_groups(): for curGroup in ec2.get_all_security_groups():
groups[curGroup.id] = curGroup groups[curGroup.id] = curGroup
groups[curGroup.name] = curGroup
if curGroup.name == name and curGroup.vpc_id == vpc_id: if curGroup.name == name and curGroup.vpc_id == vpc_id:
group = curGroup group = curGroup
@ -203,11 +207,22 @@ def main():
if rules: if rules:
for rule in rules: for rule in rules:
group_id = None group_id = None
group_name = None
ip = None ip = None
if 'group_id' in rule and 'cidr_ip' in rule: if 'group_id' in rule and 'cidr_ip' in rule:
module.fail_json(msg="Specify group_id OR cidr_ip, not both") module.fail_json(msg="Specify group_id OR cidr_ip, not both")
elif 'group_id' in rule and 'group_name' in rule:
module.fail_json(msg="Specify group_id OR group_name, not both")
elif 'group_id' in rule: elif 'group_id' in rule:
group_id = rule['group_id'] group_id = rule['group_id']
elif 'group_name' in rule:
group_name = rule['group_name']
if group_name in groups:
group_id = groups[group_name].id
elif group_name == name:
group_id = group.id
groups[group_id] = group
groups[group_name] = group
elif 'cidr_ip' in rule: elif 'cidr_ip' in rule:
ip = rule['cidr_ip'] ip = rule['cidr_ip']