iteh-zabbixapi 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,166 @@
1
+ module Zabbix
2
+
3
+ class ZabbixApi
4
+ def get_screen_id(screen_name)
5
+
6
+ message = {
7
+ 'method' => 'screen.get',
8
+ 'params' => {
9
+ 'filter' => {
10
+ 'name' => screen_name
11
+ }
12
+ }
13
+ }
14
+
15
+ response = send_request(message)
16
+
17
+ unless response.empty? then
18
+ result = response[0]['screenid']
19
+ else
20
+ result = nil
21
+ end
22
+ end
23
+
24
+ def get_screen_parameter(screen_name, param_name)
25
+
26
+ message = {
27
+ 'method' => 'screen.get',
28
+ 'params' => {
29
+ 'extendoutput' => '1',
30
+ 'filter' => {
31
+ 'name' => screen_name
32
+ }
33
+ }
34
+ }
35
+
36
+ response = send_request(message)
37
+
38
+ unless response.empty? then
39
+ result = response[0][param_name]
40
+ else
41
+ result nil
42
+ end
43
+ end
44
+
45
+ def get_screen_graph_ids(screen_id)
46
+
47
+ message = {
48
+ 'method' => 'screen.get',
49
+ 'params' => {
50
+ 'extendoutput' => '1',
51
+ 'select_screenitems' => '1',
52
+ 'screenids' => [ screen_id ]
53
+ }
54
+ }
55
+
56
+ response = send_request(message)
57
+
58
+ unless ( response.empty?) then
59
+ result = []
60
+ screenitems = response[0]['screenitems']
61
+ screenitems.each() do |item|
62
+ if ( item['resourcetype'].to_i == 0 ) then
63
+ result << item['resourceid']
64
+ end
65
+ end
66
+ else
67
+ result = nil
68
+ end
69
+
70
+ return result
71
+ end
72
+
73
+ def set_screen_parameter(screen_id, param_name, param_value)
74
+
75
+ message = {
76
+ 'method' => 'screen.update',
77
+ 'params' => {
78
+ param_name => param_value,
79
+ 'screenid' => screen_id
80
+ }
81
+ }
82
+
83
+ response = send_request(message)
84
+
85
+ if not ( response.empty? ) then
86
+ result = true
87
+ else
88
+ result = false
89
+ end
90
+
91
+ return result
92
+ end
93
+
94
+ def del_all_graphs_from_screen(screen_id)
95
+
96
+ message = {
97
+ 'method' => 'screen.deleteItems',
98
+ 'params' => {
99
+ 'screenids' => [ screen_id ],
100
+ }
101
+ }
102
+
103
+ response = send_request(message)
104
+
105
+ if ( response ) then
106
+ return response
107
+ else
108
+ return nil
109
+ end
110
+ end
111
+
112
+ def add_graph_to_screen(screen_id, graph_id, x, y)
113
+
114
+ message = {
115
+ 'method' => 'screen.addItems',
116
+ 'params' => {
117
+ 'screenids' => [ screen_id ],
118
+ 'screenitems' => [
119
+ {
120
+ 'resourcetype' => 'graph',
121
+ 'resourceid' => graph_id,
122
+ 'width' => '800',
123
+ 'height' => '200',
124
+ 'x' => x,
125
+ 'y' => y,
126
+ 'valign' => 'Middle',
127
+ 'halign' => 'Centre',
128
+ 'colspan' => '0',
129
+ 'rowspan' => '0',
130
+ 'elements' => '0',
131
+ 'dynamic' => '0',
132
+ 'url' => '0',
133
+ 'style' => '0'
134
+ }
135
+ ]
136
+ }
137
+ }
138
+
139
+ response = send_request(message)
140
+
141
+ return response
142
+ end
143
+
144
+ def add_screen(screen_name, hsize, vsize)
145
+
146
+ message = {
147
+ 'method' => 'screen.create',
148
+ 'params' => {
149
+ 'name' => screen_name,
150
+ 'hsize' => hsize,
151
+ 'vsize' => vsize
152
+ }
153
+ }
154
+
155
+ response = send_request(message)
156
+
157
+ unless response.empty? then
158
+ result = response['screenids'][0]
159
+ else
160
+ result = nil
161
+ end
162
+
163
+ return result
164
+ end
165
+ end
166
+ end
@@ -0,0 +1,158 @@
1
+ module Zabbix
2
+
3
+ class ZabbixApi
4
+ def add_template(template_options)
5
+
6
+ template_default = {
7
+ 'host' => nil,
8
+ 'groups' => [],
9
+ }
10
+
11
+ template_options['groups'].map! { |group_id| {'groupid' => group_id} }
12
+
13
+ template = merge_opt(template_default, template_options)
14
+
15
+ message = {
16
+ 'method' => 'template.create',
17
+ 'params' => template
18
+ }
19
+
20
+ response = send_request(message)
21
+
22
+ if not ( response.empty? ) then
23
+ result = response['templateids'][0].to_i
24
+ else
25
+ result = nil
26
+ end
27
+
28
+ return result
29
+ end
30
+
31
+ def get_template_ids_by_host(host_id)
32
+
33
+ message = {
34
+ 'method' => 'template.get',
35
+ 'params' => {
36
+ 'hostids' => [ host_id ]
37
+ }
38
+ }
39
+
40
+ response = send_request(message)
41
+
42
+ unless ( response.empty? ) then
43
+ result = []
44
+ response.each_key() do |template_id|
45
+ result << template_id
46
+ end
47
+ else
48
+ result = nil
49
+ end
50
+
51
+ return result
52
+ end
53
+
54
+ def get_templates()
55
+
56
+ message = {
57
+ 'method' => 'template.get',
58
+ 'params' => {
59
+ 'extendoutput' => '0'
60
+ }
61
+ }
62
+
63
+ response = send_request(message)
64
+
65
+ unless response.empty? then
66
+ template_ids = response.keys()
67
+ result = {}
68
+
69
+ template_ids.each() do |template_id|
70
+ template_name = response[template_id]['host']
71
+ result[template_id] = template_name
72
+ end
73
+ else
74
+ result = nil
75
+ end
76
+
77
+ return result
78
+ end
79
+
80
+ def get_template_id(template_name)
81
+
82
+ message = {
83
+ 'method' => 'template.get',
84
+ 'params' => {
85
+ 'filter' => {
86
+ 'host' => template_name
87
+ }
88
+ }
89
+ }
90
+
91
+ response = send_request(message)
92
+
93
+ unless response.empty? then
94
+ result = response.keys[0]
95
+ else
96
+ result = nil
97
+ end
98
+
99
+ return result
100
+
101
+ end
102
+
103
+ def link_templates_with_hosts(templates_id, hosts_id)
104
+
105
+ if templates_id.class == Array then
106
+ message_templates_id = templates_id
107
+ else
108
+ message_templates_id = [ templates_id ]
109
+ end
110
+
111
+ if hosts_id == Array then
112
+ message_hosts_id = hosts_id
113
+ else
114
+ message_hosts_id = [ hosts_id ]
115
+ end
116
+
117
+ message = {
118
+ 'method' => 'template.massAdd',
119
+ 'params' => {
120
+ 'hosts' => message_hosts_id,
121
+ 'templates' => message_templates_id
122
+ }
123
+ }
124
+
125
+ response = send_request(message)
126
+
127
+ return response
128
+ end
129
+
130
+ def unlink_templates_from_hosts(templates_id, hosts_id)
131
+
132
+ if templates_id.class == Array then
133
+ message_templates_id = templates_id
134
+ else
135
+ message_templates_id = [ templates_id ]
136
+ end
137
+
138
+ if hosts_id == Array then
139
+ message_hosts_id = hosts_id
140
+ else
141
+ message_hosts_id = [ hosts_id ]
142
+ end
143
+
144
+ message = {
145
+ 'method' => 'template.massRemove',
146
+ 'params' => {
147
+ 'hosts' => message_hosts_id,
148
+ 'templates' => message_templates_id,
149
+ 'force' => '1'
150
+ }
151
+ }
152
+
153
+ response = send_request(message)
154
+
155
+ return response
156
+ end
157
+ end
158
+ end
@@ -0,0 +1,95 @@
1
+ module Zabbix
2
+
3
+ class ZabbixApi
4
+ def add_trigger(trigger)
5
+
6
+ message = {
7
+ 'method' => 'trigger.create',
8
+ 'params' => [ trigger ]
9
+ }
10
+
11
+ response = send_request(message)
12
+
13
+ unless response.empty? then
14
+ result = response['triggerids'][0]
15
+ else
16
+ result = nil
17
+ end
18
+
19
+ return result
20
+
21
+ end
22
+
23
+ def get_trigger_id(host_id, trigger_name)
24
+
25
+ message = {
26
+ 'method' => 'trigger.get',
27
+ 'params' => {
28
+ 'filter' => {
29
+ 'hostid' => host_id,
30
+ 'description' => trigger_name
31
+ }
32
+ }
33
+ }
34
+
35
+ response = send_request(message)
36
+
37
+ unless response.empty? then
38
+ result = response[0]['triggerid']
39
+ else
40
+ result = nil
41
+ end
42
+
43
+ return result
44
+ end
45
+
46
+ def get_triggers_by_host(host_id)
47
+
48
+ message = {
49
+ 'method' => 'trigger.get',
50
+ 'params' => {
51
+ 'filter' => {
52
+ 'hostid' => host_id,
53
+ },
54
+ 'extendoutput' => '1'
55
+ }
56
+ }
57
+
58
+ response = send_request(message)
59
+
60
+ unless response.empty? then
61
+ result = {}
62
+ response.each do |trigger|
63
+ trigger_id = trigger['triggerid']
64
+ description = trigger['description']
65
+ result[trigger_id] = description
66
+ end
67
+ else
68
+ result = {}
69
+ end
70
+
71
+ return result
72
+ end
73
+
74
+ def update_trigger_status(trigger_id, status)
75
+
76
+ message = {
77
+ 'method' => 'trigger.update_status',
78
+ 'params' => {
79
+ 'triggerid' => trigger_id,
80
+ 'status' => status
81
+ }
82
+ }
83
+
84
+ response = send_request(message)
85
+
86
+ unless response.empty? then
87
+ result = response['triggerids'][0]
88
+ else
89
+ result = nil
90
+ end
91
+
92
+ return result
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,74 @@
1
+ module Zabbix
2
+
3
+ class ZabbixApi
4
+ def add_macro(host_id, macro_name, macro_value)
5
+
6
+ message = {
7
+ 'method' => 'Usermacro.create',
8
+ 'params' => {
9
+ 'hostid' => host_id,
10
+ 'macro' => macro_name,
11
+ 'value'=> macro_value
12
+ }
13
+ }
14
+
15
+ response = send_request(message)
16
+
17
+ if hostmacroids = response['hostmacroids'] then
18
+ result = hostmacroids
19
+ else
20
+ result = nil
21
+ end
22
+
23
+ return result
24
+ end
25
+
26
+ def get_macro(host_id, macro_name)
27
+
28
+ message = {
29
+ 'method' => 'Usermacro.get',
30
+ 'params' => {
31
+ 'hostids' => host_id,
32
+ 'macros' => macro_name,
33
+ 'extendoutput' => '1'
34
+ }
35
+ }
36
+
37
+ response = send_request(message)
38
+
39
+ unless response.empty? then
40
+ if hostmacroid = response[0]['hostmacroid'] then
41
+ macro_id = hostmacroid
42
+ macro_value = response[0]['value']
43
+
44
+ result = {
45
+ 'id' => macro_id,
46
+ 'value'=> macro_value
47
+ }
48
+ else
49
+ result = nil
50
+ end
51
+ else
52
+ result = nil
53
+ end
54
+
55
+ return result
56
+ end
57
+
58
+ def set_macro_value(host_id, macro_name, macro_value)
59
+
60
+ message = {
61
+ 'method' => 'usermacro.updateValue',
62
+ 'params' => {
63
+ 'hostid' => host_id,
64
+ 'macro' => macro_name,
65
+ 'value' => macro_value
66
+ }
67
+ }
68
+
69
+ response = send_request(message)
70
+
71
+ return true
72
+ end
73
+ end
74
+ end