Skip to content

Commit 973b3f5

Browse files
committed
fix: upgraded Zabbix template to version 3.0
1 parent be0aa67 commit 973b3f5

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

mamonsu/lib/zbx_template.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class ZbxTemplate(object):
99
plg_type = 'all'
1010
mainTemplate = """<?xml version="1.0" encoding="UTF-8"?>
1111
<zabbix_export>
12-
<version>2.0</version>
12+
<version>3.0</version>
1313
<groups>
1414
<group>
1515
<name>Templates</name>
@@ -19,6 +19,7 @@ class ZbxTemplate(object):
1919
<template>
2020
<template>{template}</template>
2121
<name>{template}</name>
22+
<description/>
2223
<groups>
2324
<group>
2425
<name>Templates</name>
@@ -63,6 +64,10 @@ class ZbxTemplate(object):
6364
('privatekey', None), ('port', None), ('description', None)
6465
]
6566

67+
item_prototype_defaults = [
68+
('application_prototypes', None)
69+
]
70+
6671
trigger_defaults = [
6772
('expression', None), ('name', None), ('url', None),
6873
('status', 0), ('priority', 3), ('description', None),
@@ -107,7 +112,7 @@ class ZbxTemplate(object):
107112
('ipmi_sensor', None), ('authtype', 0),
108113
('username', None), ('password', None), ('publickey', None),
109114
('privatekey', None), ('port', None), ('lifetime', 7),
110-
('description', None), ('key', None)
115+
('description', None), ('key', None), ('host_prototypes', None)
111116
]
112117

113118
dashboard_defaults = [
@@ -303,11 +308,11 @@ def _macro(self, xml_key='macro'):
303308
result += '<{1}>{0}</{1}>'.format(self._format_args(self.macro_defaults, value), xml_key)
304309
return result
305310

306-
def item(self, args=None, xml_key='item'):
311+
def item(self, args=None, xml_key='item', prototype=False):
307312
if args is None:
308313
args = {}
309314
return '<{2}>{0}{1}</{2}>'.format(
310-
self._format_args(self.item_defaults, args),
315+
self._format_args(self.item_defaults if not prototype else self.item_defaults + self.item_prototype_defaults, args),
311316
self._application(), xml_key)
312317

313318
def trigger(self, args=None, xml_key='trigger', defaults=None):
@@ -371,7 +376,6 @@ def condition(self, args=None, xml_key='condition'):
371376
return res
372377

373378
def discovery_rule(self, rule=None, conditions=None, items=None, triggers=None, graphs=None):
374-
375379
if rule is None:
376380
rule = {}
377381
if conditions is None:
@@ -384,7 +388,7 @@ def discovery_rule(self, rule=None, conditions=None, items=None, triggers=None,
384388
graphs = []
385389
result_items = '<item_prototypes>'
386390
for item in items:
387-
result_items += self.item(item, xml_key='item_prototype')
391+
result_items += self.item(item, xml_key='item_prototype', prototype=True)
388392
result_items += '</item_prototypes>'
389393

390394
result_triggers = '<trigger_prototypes>'
@@ -437,4 +441,5 @@ def _format_args(self, defaults, override):
437441
else:
438442
row = '<{0}>{1}</{0}>'.format(key, val)
439443
result += row
444+
440445
return result

0 commit comments

Comments
 (0)