Fix ec2_vpc_net tags (#34725)

* Fix ec2_vpc_net tags

PR #33105 broke the tags returned by ec2_vpc_net - it was returning the raw boto3 list instead of a dict as expected.

* Add a test for tags
This commit is contained in:
Brandon Davidson 2018-01-16 17:47:58 -05:00 committed by Sloane Hertel
parent bf69f987f9
commit 240024ea4a
2 changed files with 25 additions and 1 deletions

View file

@ -165,7 +165,8 @@ except ImportError:
pass # Handled by AnsibleAWSModule pass # Handled by AnsibleAWSModule
from ansible.module_utils.aws.core import AnsibleAWSModule from ansible.module_utils.aws.core import AnsibleAWSModule
from ansible.module_utils.ec2 import boto3_conn, get_aws_connection_info, ec2_argument_spec, ansible_dict_to_boto3_tag_list, camel_dict_to_snake_dict from ansible.module_utils.ec2 import (boto3_conn, get_aws_connection_info, ec2_argument_spec, camel_dict_to_snake_dict,
ansible_dict_to_boto3_tag_list, boto3_tag_list_to_ansible_dict)
from ansible.module_utils.six import string_types from ansible.module_utils.six import string_types
@ -356,6 +357,7 @@ def main():
module.fail_json_aws(e, "Failed to update enabled dns hostnames attribute") module.fail_json_aws(e, "Failed to update enabled dns hostnames attribute")
final_state = camel_dict_to_snake_dict(get_vpc(module, connection, vpc_id)) final_state = camel_dict_to_snake_dict(get_vpc(module, connection, vpc_id))
final_state['tags'] = boto3_tag_list_to_ansible_dict(final_state.get('tags', []))
final_state['id'] = final_state.pop('vpc_id') final_state['id'] = final_state.pop('vpc_id')
module.exit_json(changed=changed, vpc=final_state) module.exit_json(changed=changed, vpc=final_state)

View file

@ -250,6 +250,28 @@
# ============================================================ # ============================================================
- name: modify tags
ec2_vpc_net:
cidr_block: 20.0.0.0/24
name: "{{ resource_prefix }}"
dns_support: True
dns_hostnames: True
state: present
multi_ok: no
tags:
Ansible: Test
<<: *aws_connection_info
register: result
- name: assert the VPC has Name and Ansible tags
assert:
that:
- result.vpc.tags|length == 2
- 'result.vpc.tags.Ansible == "Test"'
- 'result.vpc.tags.Name == "{{ resource_prefix }}"'
# ============================================================
- name: test check mode to delete a VPC - name: test check mode to delete a VPC
ec2_vpc_net: ec2_vpc_net:
cidr_block: 20.0.0.0/24 cidr_block: 20.0.0.0/24