mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
proxmox_template: small refactor in get_template() (#8516)
* proxmox_template: small refactor in get_template() * add changelog frag * Update plugins/modules/proxmox_template.py Co-authored-by: Felix Fontein <felix@fontein.de> * rename function as per PR suggestion --------- Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
1053545870
commit
70c8042c99
2 changed files with 10 additions and 8 deletions
2
changelogs/fragments/8516-proxmox-template-refactor.yml
Normal file
2
changelogs/fragments/8516-proxmox-template-refactor.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
minor_changes:
|
||||||
|
- proxmox_template - small refactor in logic for determining whether a template exists or not (https://github.com/ansible-collections/community.general/pull/8516).
|
|
@ -144,12 +144,12 @@ except ImportError:
|
||||||
|
|
||||||
|
|
||||||
class ProxmoxTemplateAnsible(ProxmoxAnsible):
|
class ProxmoxTemplateAnsible(ProxmoxAnsible):
|
||||||
def get_template(self, node, storage, content_type, template):
|
def has_template(self, node, storage, content_type, template):
|
||||||
|
volid = '%s:%s/%s' % (storage, content_type, template)
|
||||||
try:
|
try:
|
||||||
return [True for tmpl in self.proxmox_api.nodes(node).storage(storage).content.get()
|
return any(tmpl['volid'] == volid for tmpl in self.proxmox_api.nodes(node).storage(storage).content.get())
|
||||||
if tmpl['volid'] == '%s:%s/%s' % (storage, content_type, template)]
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.module.fail_json(msg="Failed to retrieve template '%s:%s/%s': %s" % (storage, content_type, template, e))
|
self.module.fail_json(msg="Failed to retrieve template '%s': %s" % (volid, e))
|
||||||
|
|
||||||
def task_status(self, node, taskid, timeout):
|
def task_status(self, node, taskid, timeout):
|
||||||
"""
|
"""
|
||||||
|
@ -190,7 +190,7 @@ class ProxmoxTemplateAnsible(ProxmoxAnsible):
|
||||||
volid = '%s:%s/%s' % (storage, content_type, template)
|
volid = '%s:%s/%s' % (storage, content_type, template)
|
||||||
self.proxmox_api.nodes(node).storage(storage).content.delete(volid)
|
self.proxmox_api.nodes(node).storage(storage).content.delete(volid)
|
||||||
while timeout:
|
while timeout:
|
||||||
if not self.get_template(node, storage, content_type, template):
|
if not self.has_template(node, storage, content_type, template):
|
||||||
return True
|
return True
|
||||||
timeout = timeout - 1
|
timeout = timeout - 1
|
||||||
if timeout == 0:
|
if timeout == 0:
|
||||||
|
@ -239,14 +239,14 @@ def main():
|
||||||
if not template:
|
if not template:
|
||||||
module.fail_json(msg='template param for downloading appliance template is mandatory')
|
module.fail_json(msg='template param for downloading appliance template is mandatory')
|
||||||
|
|
||||||
if proxmox.get_template(node, storage, content_type, template) and not module.params['force']:
|
if proxmox.has_template(node, storage, content_type, template) and not module.params['force']:
|
||||||
module.exit_json(changed=False, msg='template with volid=%s:%s/%s already exists' % (storage, content_type, template))
|
module.exit_json(changed=False, msg='template with volid=%s:%s/%s already exists' % (storage, content_type, template))
|
||||||
|
|
||||||
if proxmox.download_template(node, storage, template, timeout):
|
if proxmox.download_template(node, storage, template, timeout):
|
||||||
module.exit_json(changed=True, msg='template with volid=%s:%s/%s downloaded' % (storage, content_type, template))
|
module.exit_json(changed=True, msg='template with volid=%s:%s/%s downloaded' % (storage, content_type, template))
|
||||||
|
|
||||||
template = os.path.basename(src)
|
template = os.path.basename(src)
|
||||||
if proxmox.get_template(node, storage, content_type, template) and not module.params['force']:
|
if proxmox.has_template(node, storage, content_type, template) and not module.params['force']:
|
||||||
module.exit_json(changed=False, msg='template with volid=%s:%s/%s is already exists' % (storage, content_type, template))
|
module.exit_json(changed=False, msg='template with volid=%s:%s/%s is already exists' % (storage, content_type, template))
|
||||||
elif not src:
|
elif not src:
|
||||||
module.fail_json(msg='src param to uploading template file is mandatory')
|
module.fail_json(msg='src param to uploading template file is mandatory')
|
||||||
|
@ -261,7 +261,7 @@ def main():
|
||||||
content_type = module.params['content_type']
|
content_type = module.params['content_type']
|
||||||
template = module.params['template']
|
template = module.params['template']
|
||||||
|
|
||||||
if not proxmox.get_template(node, storage, content_type, template):
|
if not proxmox.has_template(node, storage, content_type, template):
|
||||||
module.exit_json(changed=False, msg='template with volid=%s:%s/%s is already deleted' % (storage, content_type, template))
|
module.exit_json(changed=False, msg='template with volid=%s:%s/%s is already deleted' % (storage, content_type, template))
|
||||||
|
|
||||||
if proxmox.delete_template(node, storage, content_type, template, timeout):
|
if proxmox.delete_template(node, storage, content_type, template, timeout):
|
||||||
|
|
Loading…
Reference in a new issue