VMware: Support instance_uuid to find the vm for vmware_guest_network module (#62818)

This commit is contained in:
Pavan Bidkar 2019-10-17 12:23:13 +05:30 committed by Abhijeet Kasurde
parent d615d7ea19
commit b6ea43efc3
2 changed files with 84 additions and 4 deletions

View file

@ -39,6 +39,12 @@ options:
- UUID of the instance to gather info if known, this is VMware's unique identifier.
- This is a required parameter, if parameter C(name) or C(moid) is not supplied.
type: str
use_instance_uuid:
description:
- Whether to use the VMware instance UUID rather than the BIOS UUID.
default: False
type: bool
version_added: '2.10'
moid:
description:
- Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.
@ -154,6 +160,21 @@ EXAMPLES = '''
- state: absent
mac: "00:50:56:44:55:77"
delegate_to: localhost
- name: Change network adapter settings of virtual machine using instance UUID
vmware_guest_network:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
validate_certs: no
uuid: 5003b4f5-c705-2f37-ccf6-dfc0b40afeb7
use_instance_uuid: True
gather_network_info: false
networks:
- state: absent
mac: "00:50:56:44:55:77"
delegate_to: localhost
'''
RETURN = """
@ -453,6 +474,7 @@ def main():
argument_spec.update(
name=dict(type='str'),
uuid=dict(type='str'),
use_instance_uuid=dict(type='bool', default=False),
moid=dict(type='str'),
folder=dict(type='str'),
datacenter=dict(type='str', default='ha-datacenter'),

View file

@ -71,8 +71,10 @@
state: new
device_type: e1000e
manual_mac: "aa:50:56:58:59:60"
connected: True
- name: "VM Network"
state: new
connected: True
device_type: vmxnet3
manual_mac: "aa:50:56:58:59:61"
register: add_netadapter
@ -82,7 +84,7 @@
- name: assert the new netowrk adapters were added to VM
assert:
that:
- "add_netadapter.changed == true"
- add_netadapter is changed
- "{{ add_netadapter.network_data | length | int }} == {{ netadapter_num | int + 2 }}"
- name: delete one specified network adapter
@ -102,9 +104,65 @@
- name: assert the network adapter was removed
assert:
that:
- "del_netadapter.changed == true"
- del_netadapter is changed
- "{{ del_netadapter.network_data | length | int }} == {{ netadapter_num | int + 1 }}"
- name: get instance uuid of virtual machines
vmware_guest_info:
validate_certs: False
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
name: "{{ virtual_machines[0].name }}"
datacenter: '{{ dc1 }}'
register: guest_info
- set_fact: vm1_instance_uuid="{{ guest_info['instance']['instance_uuid'] }}"
- name: add new network adapters to virtual machine with instance uuid
vmware_guest_network:
validate_certs: False
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
uuid: "{{ vm1_instance_uuid }}"
use_instance_uuid: True
networks:
- name: "VM Network"
state: new
connected: True
device_type: e1000e
manual_mac: "00:50:56:58:59:60"
register: add_netadapter_instanceuuid
- debug: var=add_netadapter_instanceuuid
- name: assert the new netowrk adapters were added to VM
assert:
that:
- add_netadapter_instanceuuid is changed
- "{{ add_netadapter_instanceuuid.network_data | length | int }} == {{ netadapter_num | int + 2 }}"
- name: delete again one specified network adapter
vmware_guest_network:
validate_certs: False
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
name: "{{ virtual_machines[0].name }}"
networks:
- state: absent
mac: "00:50:56:58:59:60"
register: del_again_netadapter
- debug: var=del_again_netadapter
- name: assert the network adapter was removed
assert:
that:
- del_again_netadapter is changed
- "{{ del_again_netadapter.network_data | length | int }} == {{ netadapter_num | int + 1 }}"
- name: disconnect one specified network adapter
vmware_guest_network:
validate_certs: False
@ -123,7 +181,7 @@
- name: assert the network adapter was disconnected
assert:
that:
- "disc_netadapter.changed == true"
- disc_netadapter is changed
- "{{ disc_netadapter.network_data[netadapter_num]['connected'] }} == false"
- name: Check if network does not exists
@ -145,5 +203,5 @@
- name: Check if network does not exists
assert:
that:
- not no_nw_details.changed
- not (no_nw_details is changed)
- no_nw_details.failed