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

Now this disassociates EIPs from instances inside a VPC correctly. Time

for a PR.
This commit is contained in:
Peter Sankauskas 2013-10-18 15:12:49 -07:00
parent 0e459f65f0
commit b793248df4

View file

@ -154,15 +154,22 @@ def associate_ip_and_instance(ec2, address, instance_id, module):
module.fail_json(msg="association failed") module.fail_json(msg="association failed")
def disassociate_ip_and_instance(ec2, public_ip, instance_id, module): def disassociate_ip_and_instance(ec2, address, instance_id, module):
if not ip_is_associated_with_instance(ec2, public_ip, instance_id, module): if not ip_is_associated_with_instance(ec2, address.public_ip, instance_id, module):
module.exit_json(changed=False, public_ip=public_ip) module.exit_json(changed=False, public_ip=address.public_ip)
# If we're in check mode, nothing else to do # If we're in check mode, nothing else to do
if module.check_mode: if module.check_mode:
module.exit_json(changed=True) module.exit_json(changed=True)
res = ec2.disassociate_address(public_ip) try:
if address.domain == "vpc":
res = ec2.disassociate_address(association_id=address.association_id)
else:
res = ec2.disassociate_address(public_ip=address.public_ip)
except boto.exception.EC2ResponseError, e:
module.fail_json(msg=str(e))
if res: if res:
module.exit_json(changed=True) module.exit_json(changed=True)
else: else:
@ -279,7 +286,8 @@ def main():
if instance_id is None: if instance_id is None:
release_address(ec2, public_ip, module) release_address(ec2, public_ip, module)
else: else:
disassociate_ip_and_instance(ec2, public_ip, instance_id, module) address = find_address(ec2, public_ip, module)
disassociate_ip_and_instance(ec2, address, instance_id, module)