@@ -9,7 +9,7 @@ class ZbxTemplate(object):
9
9
plg_type = 'all'
10
10
mainTemplate = """<?xml version="1.0" encoding="UTF-8"?>
11
11
<zabbix_export>
12
- <version>2 .0</version>
12
+ <version>3 .0</version>
13
13
<groups>
14
14
<group>
15
15
<name>Templates</name>
@@ -19,6 +19,7 @@ class ZbxTemplate(object):
19
19
<template>
20
20
<template>{template}</template>
21
21
<name>{template}</name>
22
+ <description/>
22
23
<groups>
23
24
<group>
24
25
<name>Templates</name>
@@ -63,6 +64,10 @@ class ZbxTemplate(object):
63
64
('privatekey' , None ), ('port' , None ), ('description' , None )
64
65
]
65
66
67
+ item_prototype_defaults = [
68
+ ('application_prototypes' , None )
69
+ ]
70
+
66
71
trigger_defaults = [
67
72
('expression' , None ), ('name' , None ), ('url' , None ),
68
73
('status' , 0 ), ('priority' , 3 ), ('description' , None ),
@@ -107,7 +112,7 @@ class ZbxTemplate(object):
107
112
('ipmi_sensor' , None ), ('authtype' , 0 ),
108
113
('username' , None ), ('password' , None ), ('publickey' , None ),
109
114
('privatekey' , None ), ('port' , None ), ('lifetime' , 7 ),
110
- ('description' , None ), ('key' , None )
115
+ ('description' , None ), ('key' , None ), ( 'host_prototypes' , None )
111
116
]
112
117
113
118
dashboard_defaults = [
@@ -303,11 +308,11 @@ def _macro(self, xml_key='macro'):
303
308
result += '<{1}>{0}</{1}>' .format (self ._format_args (self .macro_defaults , value ), xml_key )
304
309
return result
305
310
306
- def item (self , args = None , xml_key = 'item' ):
311
+ def item (self , args = None , xml_key = 'item' , prototype = False ):
307
312
if args is None :
308
313
args = {}
309
314
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 ),
311
316
self ._application (), xml_key )
312
317
313
318
def trigger (self , args = None , xml_key = 'trigger' , defaults = None ):
@@ -371,7 +376,6 @@ def condition(self, args=None, xml_key='condition'):
371
376
return res
372
377
373
378
def discovery_rule (self , rule = None , conditions = None , items = None , triggers = None , graphs = None ):
374
-
375
379
if rule is None :
376
380
rule = {}
377
381
if conditions is None :
@@ -384,7 +388,7 @@ def discovery_rule(self, rule=None, conditions=None, items=None, triggers=None,
384
388
graphs = []
385
389
result_items = '<item_prototypes>'
386
390
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 )
388
392
result_items += '</item_prototypes>'
389
393
390
394
result_triggers = '<trigger_prototypes>'
@@ -437,4 +441,5 @@ def _format_args(self, defaults, override):
437
441
else :
438
442
row = '<{0}>{1}</{0}>' .format (key , val )
439
443
result += row
444
+
440
445
return result
0 commit comments