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 00000000000..f2fb054c927 --- /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 59446455076..35f466df6ae 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_template.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_template.py @@ -605,6 +605,14 @@ class Template(object): 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: