From 92945d8bf8795ae51694df60d4dd0fb764c37325 Mon Sep 17 00:00:00 2001 From: Markus Fischbacher <453368+rockaut@users.noreply.github.com> Date: Fri, 24 Jan 2020 08:45:59 +0100 Subject: [PATCH 1/4] 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 --- lib/ansible/modules/monitoring/zabbix/zabbix_template.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_template.py b/lib/ansible/modules/monitoring/zabbix/zabbix_template.py index 59446455076cd5..aefec04742fe3f 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_template.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_template.py @@ -605,6 +605,10 @@ def import_template(self, template_content, template_type='json'): if LooseVersion(api_version).version[:2] <= LooseVersion('3.2').version: update_rules['applications']['updateExisting'] = True + if ( LooseVersion(api_version).version[:3] >= LooseVersion('4.0.16').version ) or \ + ( 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: From 62a8e5de66d9318845d7f07337a569530ab96f5f Mon Sep 17 00:00:00 2001 From: Markus Fischbacher <453368+rockaut@users.noreply.github.com> Date: Fri, 24 Jan 2020 08:54:50 +0100 Subject: [PATCH 2/4] adding fragment file --- ...bbix_template-newupdaterule-deletemissinglinkedtemplate.yml | 3 +++ 1 file changed, 3 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). + From 00f180f1bc88c454f2625bf41b4b5f55e926af52 Mon Sep 17 00:00:00 2001 From: Markus Fischbacher <453368+rockaut@users.noreply.github.com> Date: Fri, 24 Jan 2020 09:20:53 +0100 Subject: [PATCH 3/4] Update zabbix_template.py --- lib/ansible/modules/monitoring/zabbix/zabbix_template.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_template.py b/lib/ansible/modules/monitoring/zabbix/zabbix_template.py index aefec04742fe3f..4a446712a081dc 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_template.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_template.py @@ -605,9 +605,9 @@ def import_template(self, template_content, template_type='json'): if LooseVersion(api_version).version[:2] <= LooseVersion('3.2').version: update_rules['applications']['updateExisting'] = True - if ( LooseVersion(api_version).version[:3] >= LooseVersion('4.0.16').version ) or \ - ( LooseVersion(api_version).version[:3] >= LooseVersion('4.4.4').version ): - update_rules['templateLinkage']['deleteMissing'] = True + if (LooseVersion(api_version).version[:3] >= LooseVersion('4.0.16').version) or \ + (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) From c12b26c2aa0b52c77b66521858179362e2558531 Mon Sep 17 00:00:00 2001 From: Markus Fischbacher <453368+rockaut@users.noreply.github.com> Date: Sat, 25 Jan 2020 14:09:25 +0100 Subject: [PATCH 4/4] Update zabbix_template.py --- lib/ansible/modules/monitoring/zabbix/zabbix_template.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_template.py b/lib/ansible/modules/monitoring/zabbix/zabbix_template.py index 4a446712a081dc..35f466df6aeeef 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_template.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_template.py @@ -605,8 +605,12 @@ def import_template(self, template_content, template_type='json'): if LooseVersion(api_version).version[:2] <= LooseVersion('3.2').version: update_rules['applications']['updateExisting'] = True - if (LooseVersion(api_version).version[:3] >= LooseVersion('4.0.16').version) or \ - (LooseVersion(api_version).version[:3] >= LooseVersion('4.4.4').version): + # 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}