VMware: Return Disk UUID information (#45157)

This fix adds feature of disk uuid for given virtual machine disk.

Fixes: #45149

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
This commit is contained in:
Abhijeet Kasurde 2018-09-05 10:35:13 +05:30 committed by GitHub
parent 65c9090714
commit 9c1ba18607
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 6 deletions

View file

@ -25,7 +25,8 @@ version_added: 2.6
author: author:
- Abhijeet Kasurde (@Akasurde) <akasurde@redhat.com> - Abhijeet Kasurde (@Akasurde) <akasurde@redhat.com>
notes: notes:
- Tested on vSphere 6.0 and 6.5 - Tested on vSphere 6.0 and 6.5.
- Disk UUID information is added in version 2.8.
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- PyVmomi - PyVmomi
@ -149,6 +150,7 @@ class PyVmomiHelper(PyVmomi):
backing_disk_mode=disk.backing.diskMode, backing_disk_mode=disk.backing.diskMode,
backing_writethrough=disk.backing.writeThrough, backing_writethrough=disk.backing.writeThrough,
backing_thinprovisioned=disk.backing.thinProvisioned, backing_thinprovisioned=disk.backing.thinProvisioned,
backing_uuid=disk.backing.uuid,
backing_eagerlyscrub=bool(disk.backing.eagerlyScrub), backing_eagerlyscrub=bool(disk.backing.eagerlyScrub),
controller_key=disk.controllerKey, controller_key=disk.controllerKey,
unit_number=disk.unitNumber, unit_number=disk.unitNumber,
@ -167,8 +169,11 @@ def main():
folder=dict(type='str'), folder=dict(type='str'),
datacenter=dict(type='str', required=True), datacenter=dict(type='str', required=True),
) )
module = AnsibleModule(argument_spec=argument_spec, module = AnsibleModule(
required_one_of=[['name', 'uuid']]) argument_spec=argument_spec,
required_one_of=[['name', 'uuid']],
supports_check_mode=True,
)
if module.params['folder']: if module.params['folder']:
# FindByInventoryPath() does not require an absolute path # FindByInventoryPath() does not require an absolute path

View file

@ -37,16 +37,37 @@
- debug: var=vm1 - debug: var=vm1
- name: create new VMs with non-existent network - name: Gather facts about virtual machine disks
vmware_guest_disk_facts: vmware_guest_disk_facts:
validate_certs: False validate_certs: no
hostname: "{{ vcsim }}" hostname: "{{ vcsim }}"
username: "{{ vcsim_instance['json']['username'] }}" username: "{{ vcsim_instance['json']['username'] }}"
password: "{{ vcsim_instance['json']['password'] }}" password: "{{ vcsim_instance['json']['password'] }}"
name: "{{ vm1 }}" name: "{{ vm1 }}"
datacenter: "{{ (vm1 | basename).split('_')[0] }}" datacenter: "{{ (vm1 | basename).split('_')[0] }}"
register: disk_facts register: disk_facts
- debug: var=disk_facts
- debug:
msg: '{{ disk_facts }}'
- name: assert that no changes were made
assert:
that:
- "not disk_facts.changed"
- name: Gather facts about virtual machine disks in check mode
vmware_guest_disk_facts:
validate_certs: no
hostname: "{{ vcsim }}"
username: "{{ vcsim_instance['json']['username'] }}"
password: "{{ vcsim_instance['json']['password'] }}"
name: "{{ vm1 }}"
datacenter: "{{ (vm1 | basename).split('_')[0] }}"
register: disk_facts
check_mode: yes
- debug:
msg: '{{ disk_facts }}'
- name: assert that no changes were made - name: assert that no changes were made
assert: assert: