/
ruby.rb
94 lines (83 loc) · 2.6 KB
/
ruby.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'zabbix'))
Puppet::Type.type(:zabbix_template).provide(:ruby, :parent => Puppet::Provider::Zabbix) do
def create
zabbix_url = @resource[:zabbix_url]
if zabbix_url != ''
self.class.require_zabbix
end
# Set some vars
template_name = @resource[:template_name]
template_source = @resource[:template_source]
zabbix_url = @resource[:zabbix_url]
zabbix_user = @resource[:zabbix_user]
zabbix_pass = @resource[:zabbix_pass]
apache_use_ssl = @resource[:apache_use_ssl]
# Connect to zabbix api
zbx = self.class.create_connection(zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl)
zbx.configurations.import(
:format => "xml",
:rules => {
:applications => {
:createMissing => true,
:updateExisting => true
},
:discoveryRules => {
:createMissing => true,
:updateExisting => true
},
:graphs =>{
:createMissing => true,
:updateExisting => true
},
:groups => {
:createMissing => true
},
:image => {
:createMissing => true,
:updateExisting => true
},
:items => {
:createMissing => true,
:updateExisting => true
},
:maps => {
:createMissing => true,
:updateExisting => true
},
:screens => {
:createMissing => true,
:updateExisting => true
},
:templateLinkage => {
:createMissing => true
},
:templates => {
:createMissing => true,
:updateExisting => true
},
:templateScreens => {
:createMissing => true,
:updateExisting => true
},
:triggers => {
:createMissing => true,
:updateExisting => true
}
},
:source => template_source
)
end
def exists?
zabbix_url = @resource[:zabbix_url]
if zabbix_url != ''
self.class.require_zabbix
end
template_name = @resource[:template_name]
template_source = @resource[:template_source]
zabbix_user = @resource[:zabbix_user]
zabbix_pass = @resource[:zabbix_pass]
apache_use_ssl = @resource[:apache_use_ssl]
zbx = self.class.create_connection(zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl)
self.class.check_template_is_equal(template_name,template_source,zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl)
end
end