1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

proxmox_kvm: fix undefined local variable status (#1847)

* proxmox_kvm: undefined local variable status

* proxmox_kvm: Add a changelog fragment

* Update changelogs/fragments/1847-proxmox-kvm-fix-status.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

* proxmox_kvm: fix the RETURN document

* proxmox_kvm: fix name variable when state=current

The variable name is not always defined as the module can be called with
just a vmid.

Before:

> "msg": "VM None with vmid = 118 is stopped"

After:

> "msg": "VM test-instance with vmid = 118 is stopped"

Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
Tristan Le Guern 2021-02-17 21:25:05 +01:00 committed by GitHub
parent e0dd4b240f
commit 5135587c16
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 13 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- proxmox_kvm - fix undefined local variable ``status`` when the parameter ``state`` is either ``stopped``, ``started``, ``restarted`` or ``absent`` (https://github.com/ansible-collections/community.general/pull/1847).

View file

@ -734,20 +734,20 @@ EXAMPLES = '''
RETURN = ''' RETURN = '''
vmid: vmid:
description: The VM vmid. description: The VM vmid.
returned: success returned: success
type: int type: int
sample: 115 sample: 115
status: status:
description: description: The current virtual machine status.
- The current virtual machine status. returned: success, not clone, not absent, not update
returned: success type: str
type: dict sample: running
sample: '{ msg:
"changed": false, description: A short message
"msg": "VM kropta with vmid = 110 is running", returned: always
"status": "running" type: str
}' sample: "VM kropta with vmid = 110 is running"
''' '''
import re import re
@ -1297,12 +1297,14 @@ def main():
module.fail_json(vmid=vmid, msg="creation of qemu VM %s with vmid %s failed with exception=%s" % (name, vmid, e)) module.fail_json(vmid=vmid, msg="creation of qemu VM %s with vmid %s failed with exception=%s" % (name, vmid, e))
elif state == 'started': elif state == 'started':
status = {}
try: try:
if -1 == vmid: if -1 == vmid:
module.fail_json(msg='VM with name = %s does not exist in cluster' % name) module.fail_json(msg='VM with name = %s does not exist in cluster' % name)
vm = get_vm(proxmox, vmid) vm = get_vm(proxmox, vmid)
if not vm: if not vm:
module.fail_json(vmid=vmid, msg='VM with vmid <%s> does not exist in cluster' % vmid) module.fail_json(vmid=vmid, msg='VM with vmid <%s> does not exist in cluster' % vmid)
status['status'] = vm[0]['status']
if vm[0]['status'] == 'running': if vm[0]['status'] == 'running':
module.exit_json(changed=False, vmid=vmid, msg="VM %s is already running" % vmid, **status) module.exit_json(changed=False, vmid=vmid, msg="VM %s is already running" % vmid, **status)
@ -1312,6 +1314,7 @@ def main():
module.fail_json(vmid=vmid, msg="starting of VM %s failed with exception: %s" % (vmid, e), **status) module.fail_json(vmid=vmid, msg="starting of VM %s failed with exception: %s" % (vmid, e), **status)
elif state == 'stopped': elif state == 'stopped':
status = {}
try: try:
if -1 == vmid: if -1 == vmid:
module.fail_json(msg='VM with name = %s does not exist in cluster' % name) module.fail_json(msg='VM with name = %s does not exist in cluster' % name)
@ -1320,6 +1323,7 @@ def main():
if not vm: if not vm:
module.fail_json(vmid=vmid, msg='VM with vmid = %s does not exist in cluster' % vmid) module.fail_json(vmid=vmid, msg='VM with vmid = %s does not exist in cluster' % vmid)
status['status'] = vm[0]['status']
if vm[0]['status'] == 'stopped': if vm[0]['status'] == 'stopped':
module.exit_json(changed=False, vmid=vmid, msg="VM %s is already stopped" % vmid, **status) module.exit_json(changed=False, vmid=vmid, msg="VM %s is already stopped" % vmid, **status)
@ -1329,6 +1333,7 @@ def main():
module.fail_json(vmid=vmid, msg="stopping of VM %s failed with exception: %s" % (vmid, e), **status) module.fail_json(vmid=vmid, msg="stopping of VM %s failed with exception: %s" % (vmid, e), **status)
elif state == 'restarted': elif state == 'restarted':
status = {}
try: try:
if -1 == vmid: if -1 == vmid:
module.fail_json(msg='VM with name = %s does not exist in cluster' % name) module.fail_json(msg='VM with name = %s does not exist in cluster' % name)
@ -1336,6 +1341,7 @@ def main():
vm = get_vm(proxmox, vmid) vm = get_vm(proxmox, vmid)
if not vm: if not vm:
module.fail_json(vmid=vmid, msg='VM with vmid = %s does not exist in cluster' % vmid) module.fail_json(vmid=vmid, msg='VM with vmid = %s does not exist in cluster' % vmid)
status['status'] = vm[0]['status']
if vm[0]['status'] == 'stopped': if vm[0]['status'] == 'stopped':
module.exit_json(changed=False, vmid=vmid, msg="VM %s is not running" % vmid, **status) module.exit_json(changed=False, vmid=vmid, msg="VM %s is not running" % vmid, **status)
@ -1345,12 +1351,14 @@ def main():
module.fail_json(vmid=vmid, msg="restarting of VM %s failed with exception: %s" % (vmid, e), **status) module.fail_json(vmid=vmid, msg="restarting of VM %s failed with exception: %s" % (vmid, e), **status)
elif state == 'absent': elif state == 'absent':
status = {}
try: try:
vm = get_vm(proxmox, vmid) vm = get_vm(proxmox, vmid)
if not vm: if not vm:
module.exit_json(changed=False, vmid=vmid) module.exit_json(changed=False, vmid=vmid)
proxmox_node = proxmox.nodes(vm[0]['node']) proxmox_node = proxmox.nodes(vm[0]['node'])
status['status'] = vm[0]['status']
if vm[0]['status'] == 'running': if vm[0]['status'] == 'running':
if module.params['force']: if module.params['force']:
stop_vm(module, proxmox, vm, True) stop_vm(module, proxmox, vm, True)
@ -1372,6 +1380,8 @@ def main():
vm = get_vm(proxmox, vmid) vm = get_vm(proxmox, vmid)
if not vm: if not vm:
module.fail_json(msg='VM with vmid = %s does not exist in cluster' % vmid) module.fail_json(msg='VM with vmid = %s does not exist in cluster' % vmid)
if not name:
name = vm[0]['name']
current = proxmox.nodes(vm[0]['node']).qemu(vmid).status.current.get()['status'] current = proxmox.nodes(vm[0]['node']).qemu(vmid).status.current.get()['status']
status['status'] = current status['status'] = current
if status: if status: