azure_rm_networkinterface: support the multiple ip configuration (#32882)

* support the mutilple ip configuration

* Update azure_rm_networkinterface.py

* add test

* fix spell

* make the virtual network name more flexiable

* add test

* fix

* fix lint

* add test

* fix parameter

* deprecate the flatten ip configuration

* fix lint

* fix encoding

* fix mirror

* fix

* load model from common
This commit is contained in:
Yuwei Zhou 2018-01-24 12:57:08 +08:00 committed by Jordan Borean
commit 6f67d68f5a
6 changed files with 416 additions and 213 deletions

View file

@ -0,0 +1,3 @@
cloud/azure
posix/ci/cloud/group2/azure
destructive

View file

@ -0,0 +1,2 @@
dependencies:
- setup_azure

View file

@ -0,0 +1,169 @@
- name: Create virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group_secondary }}"
name: testnic001
address_prefixes: "10.10.0.0/16"
register: vn
- name: Add subnet
azure_rm_subnet:
resource_group: "{{ resource_group_secondary }}"
name: testnic001
address_prefix: "10.10.0.0/24"
virtual_network: testnic001
- name: Create NIC (check mode)
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: testnic001
virtual_network: "{{ vn.state.id }}"
subnet: testnic001
public_ip_name: testnic001
public_ip_allocation_method: Static
security_group: testnic001
register: output
check_mode: yes
- assert:
that:
- output.changed
- name: Create NIC
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: testnic001
virtual_network: "{{ vn.state.id }}"
subnet: testnic001
public_ip_name: testnic001
public_ip_allocation_method: Static
security_group: testnic001
register: output
- assert:
that:
- output.changed
- output.state.ip_configuration.subnet.name == 'testnic001'
- name: Update the NIC with mutilple ip configurations (check mode)
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: testnic001
security_group: testnic001
virtual_network: "{{ vn.state.id }}"
subnet: testnic001
ip_configurations:
- name: ipconfig-add
public_ip_name: testnic002
- name: default
public_ip_name: testnic001
primary: True
public_ip_allocation_method: Static
- name: ipconfig1
public_ip_name: testnic003
register: output
check_mode: yes
- assert:
that:
- output.changed
- name: Update the NIC with mutilple ip configurations
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: testnic001
security_group: testnic001
virtual_network: "{{ vn.state.id }}"
subnet: testnic001
ip_configurations:
- name: ipconfig-add
public_ip_name: testnic002
- name: default
public_ip_name: testnic001
primary: True
public_ip_allocation_method: Static
- name: ipconfig1
public_ip_name: testnic003
register: output
- assert:
that:
- output.changed
- not output.state.ip_configuration
- output.state.ip_configurations | length == 3
- name: Update the NIC with mutilple ip configurations (idempotent)
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: testnic001
security_group: testnic001
virtual_network: "{{ vn.state.id }}"
subnet: testnic001
ip_configurations:
- name: ipconfig-add
public_ip_name: testnic002
- name: default
public_ip_name: testnic001
primary: True
public_ip_allocation_method: Static
- name: ipconfig1
public_ip_name: testnic003
register: output
- assert:
that:
- not output.changed
- name: Remove one ip configuration
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: testnic001
security_group: testnic001
virtual_network: "{{ vn.state.id }}"
subnet: testnic001
ip_configurations:
- name: ipconfig-add
public_ip_name: testnic002
- name: default
public_ip_name: testnic001
public_ip_allocation_method: Static
primary: True
register: output
- assert:
that:
- not output.state.ip_configuration
- output.state.ip_configurations | length == 2
- name: Delete the NIC (check mode)
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: testnic001
state: absent
check_mode: yes
register: output
- assert:
that:
- output.changed
- name: Delete the NIC
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: testnic001
state: absent
register: output
- assert:
that:
- output.changed
- name: Delete the NIC (idempotent)
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: testnic001
state: absent
register: output
- assert:
that:
- not output.changed