mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
[PR #6981/f9448574 backport][stable-6] [proxmox_kvm] Don't create VM if name is used without vmid (#7003)
* [proxmox_kvm] Don't create VM if name is used without vmid (#6981)
* [proxmox_kvm] Don't create VM if name is used without vmid
* Add changelog and unit tests
(cherry picked from commit f9448574bd
)
* Remove semantic markup
This commit is contained in:
parent
201f49acd9
commit
43c1d9f66c
2 changed files with 13 additions and 6 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- proxmox_kvm - when ``name`` option is provided without ``vmid`` and VM with that name already exists then no new VM will be created (https://github.com/ansible-collections/community.general/issues/6911, https://github.com/ansible-collections/community.general/pull/6981).
|
|
@ -281,8 +281,9 @@ options:
|
||||||
type: int
|
type: int
|
||||||
name:
|
name:
|
||||||
description:
|
description:
|
||||||
- Specifies the VM name. Only used on the configuration web interface.
|
- Specifies the VM name. Name could be non-unique across the cluster.
|
||||||
- Required only for C(state=present).
|
- Required only for I(state=present).
|
||||||
|
- With I(state=present) if I(vmid) not provided and VM with name exists in the cluster then no changes will be made.
|
||||||
type: str
|
type: str
|
||||||
nameservers:
|
nameservers:
|
||||||
description:
|
description:
|
||||||
|
@ -1210,10 +1211,14 @@ def main():
|
||||||
# the cloned vm name or retrieve the next free VM id from ProxmoxAPI.
|
# the cloned vm name or retrieve the next free VM id from ProxmoxAPI.
|
||||||
if not vmid:
|
if not vmid:
|
||||||
if state == 'present' and not update and not clone and not delete and not revert:
|
if state == 'present' and not update and not clone and not delete and not revert:
|
||||||
try:
|
existing_vmid = proxmox.get_vmid(name, ignore_missing=True)
|
||||||
vmid = proxmox.get_nextvmid()
|
if existing_vmid:
|
||||||
except Exception:
|
vmid = existing_vmid
|
||||||
module.fail_json(msg="Can't get the next vmid for VM {0} automatically. Ensure your cluster state is good".format(name))
|
else:
|
||||||
|
try:
|
||||||
|
vmid = proxmox.get_nextvmid()
|
||||||
|
except Exception:
|
||||||
|
module.fail_json(msg="Can't get the next vmid for VM {0} automatically. Ensure your cluster state is good".format(name))
|
||||||
else:
|
else:
|
||||||
clone_target = clone or name
|
clone_target = clone or name
|
||||||
vmid = proxmox.get_vmid(clone_target, ignore_missing=True)
|
vmid = proxmox.get_vmid(clone_target, ignore_missing=True)
|
||||||
|
|
Loading…
Reference in a new issue