mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-23 13:20:23 -07:00
VMWare: update documentation for linked_clone (#42881)
linked_clone requires snapshot_src parameter. This fix makes them required_together and update documentation. Also, testcase is added. Fixes: #42349 Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
This commit is contained in:
parent
97d4e53131
commit
cadbd6ea9c
3 changed files with 145 additions and 5 deletions
|
@ -208,10 +208,12 @@ options:
|
|||
description:
|
||||
- Name of the existing snapshot to use to create a clone of a virtual machine.
|
||||
- This parameter is case sensitive.
|
||||
- While creating linked clone using C(linked_clone) parameter, this parameter is required.
|
||||
version_added: '2.4'
|
||||
linked_clone:
|
||||
description:
|
||||
- Whether to create a linked clone from the snapshot specified.
|
||||
- If specified, then C(snapshot_src) is required parameter.
|
||||
default: 'no'
|
||||
type: bool
|
||||
version_added: '2.4'
|
||||
|
@ -2012,17 +2014,25 @@ class PyVmomiHelper(PyVmomi):
|
|||
# > pool: For a clone operation from a template to a virtual machine, this argument is required.
|
||||
relospec.pool = resource_pool
|
||||
|
||||
if self.params['snapshot_src'] is not None and self.params['linked_clone']:
|
||||
relospec.diskMoveType = vim.vm.RelocateSpec.DiskMoveOptions.createNewChildDiskBacking
|
||||
linked_clone = self.params.get('linked_clone')
|
||||
snapshot_src = self.params.get('snapshot_src', None)
|
||||
if linked_clone:
|
||||
if snapshot_src is not None:
|
||||
relospec.diskMoveType = vim.vm.RelocateSpec.DiskMoveOptions.createNewChildDiskBacking
|
||||
else:
|
||||
self.module.fail_json(msg="Parameter 'linked_src' and 'snapshot_src' are"
|
||||
" required together for linked clone operation.")
|
||||
|
||||
clonespec = vim.vm.CloneSpec(template=self.params['is_template'], location=relospec)
|
||||
if self.customspec:
|
||||
clonespec.customization = self.customspec
|
||||
|
||||
if self.params['snapshot_src'] is not None:
|
||||
snapshot = self.get_snapshots_by_name_recursively(snapshots=vm_obj.snapshot.rootSnapshotList, snapname=self.params['snapshot_src'])
|
||||
if snapshot_src is not None:
|
||||
snapshot = self.get_snapshots_by_name_recursively(snapshots=vm_obj.snapshot.rootSnapshotList,
|
||||
snapname=snapshot_src)
|
||||
if len(snapshot) != 1:
|
||||
self.module.fail_json(msg='virtual machine "%(template)s" does not contain snapshot named "%(snapshot_src)s"' % self.params)
|
||||
self.module.fail_json(msg='virtual machine "%(template)s" does not contain'
|
||||
' snapshot named "%(snapshot_src)s"' % self.params)
|
||||
|
||||
clonespec.snapshot = snapshot[0].snapshot
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue