From 055cf91d026c237ee71f30e22f4139313e4f5204 Mon Sep 17 00:00:00 2001 From: Markus Fischbacher <453368+rockaut@users.noreply.github.com> Date: Mon, 27 Jan 2020 15:20:45 +0100 Subject: [PATCH] zabbix_template - enable new update rule to delete missing linked templates (#66747) * enable new update rule to delete missing linked templates New update rule is available from 4.0.16 and 4.4.4 up. Add check for version and enable new update rule. fixes #66720 * adding fragment file * Update zabbix_template.py * Update zabbix_template.py --- ...template-newupdaterule-deletemissinglinkedtemplate.yml | 3 +++ lib/ansible/modules/monitoring/zabbix/zabbix_template.py | 8 ++++++++ 2 files changed, 11 insertions(+) create mode 100644 changelogs/fragments/66747-zabbix_template-newupdaterule-deletemissinglinkedtemplate.yml diff --git a/changelogs/fragments/66747-zabbix_template-newupdaterule-deletemissinglinkedtemplate.yml b/changelogs/fragments/66747-zabbix_template-newupdaterule-deletemissinglinkedtemplate.yml new file mode 100644 index 00000000000000..f2fb054c927cba --- /dev/null +++ b/changelogs/fragments/66747-zabbix_template-newupdaterule-deletemissinglinkedtemplate.yml @@ -0,0 +1,3 @@ +minor_changes: + - zabbix_template - adding new update rule templateLinkage.deleteMissing for newer zabbix versions (https://github.com/ansible/ansible/pull/66747). + diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_template.py b/lib/ansible/modules/monitoring/zabbix/zabbix_template.py index 59446455076cd5..35f466df6aeeef 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_template.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_template.py @@ -605,6 +605,14 @@ def import_template(self, template_content, template_type='json'): if LooseVersion(api_version).version[:2] <= LooseVersion('3.2').version: update_rules['applications']['updateExisting'] = True + # templateLinkage.deleteMissing only available in 4.0 branch higher .16 and higher 4.4.4 + # it's not available in 4.2 branches or lower 4.0.16 + if LooseVersion(api_version).version[:2] == LooseVersion('4.0').version and \ + LooseVersion(api_version).version[:3] >= LooseVersion('4.0.16').version: + update_rules['templateLinkage']['deleteMissing'] = True + if LooseVersion(api_version).version[:3] >= LooseVersion('4.4.4').version: + update_rules['templateLinkage']['deleteMissing'] = True + import_data = {'format': template_type, 'source': template_content, 'rules': update_rules} self._zapi.configuration.import_(import_data) except ZabbixAPIException as e: