zabbixapi 0.5.1b10 → 0.5.1b11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/lib/zabbixapi/basic/basic_func.rb +6 -3
- data/lib/zabbixapi/basic/basic_logic.rb +12 -12
- data/lib/zabbixapi/classes/applications.rb +1 -1
- data/lib/zabbixapi/classes/templates.rb +1 -1
- data/lib/zabbixapi/classes/triggers.rb +4 -0
- data/lib/zabbixapi/client.rb +3 -3
- data/lib/zabbixapi/version.rb +1 -1
- data/spec/localhost.rb +114 -75
- data/spec/run.rb +119 -75
- data/zabbixapi.gemspec +3 -1
- metadata +20 -4
@@ -1,8 +1,7 @@
|
|
1
1
|
class Hash
|
2
2
|
|
3
|
-
def deep_include?(sub_hash
|
3
|
+
def deep_include?(sub_hash)
|
4
4
|
sub_hash.keys.all? do |key|
|
5
|
-
next if key == without_key
|
6
5
|
self.has_key?(key) && if sub_hash[key].is_a?(Hash)
|
7
6
|
self[key].is_a?(Hash) && self[key].deep_include?(sub_hash[key])
|
8
7
|
else
|
@@ -16,10 +15,14 @@ end
|
|
16
15
|
class ZabbixApi
|
17
16
|
class Basic
|
18
17
|
|
18
|
+
def log(message)
|
19
|
+
puts "#{message}" if @client.options[:debug]
|
20
|
+
end
|
21
|
+
|
19
22
|
def symbolize_keys(obj)
|
20
23
|
return obj.inject({}){|memo,(k,v)| memo[k.to_sym] = symbolize_keys(v); memo} if obj.is_a? Hash
|
21
24
|
return obj.inject([]){|memo,v | memo << symbolize_keys(v); memo} if obj.is_a? Array
|
22
|
-
|
25
|
+
obj
|
23
26
|
end
|
24
27
|
|
25
28
|
def parse_keys(data)
|
@@ -2,7 +2,7 @@ class ZabbixApi
|
|
2
2
|
class Basic
|
3
3
|
|
4
4
|
def create(data)
|
5
|
-
|
5
|
+
log "[DEBUG] Call create with parametrs: #{data.inspect}"
|
6
6
|
|
7
7
|
data_with_default = default_options.empty? ? data : merge_params(data)
|
8
8
|
data_create = array_flag ? [data_with_default] : data_with_default
|
@@ -11,7 +11,7 @@ class ZabbixApi
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def delete(data)
|
14
|
-
|
14
|
+
log "[DEBUG] Call delete with parametrs: #{data.inspect}"
|
15
15
|
|
16
16
|
data_delete = array_flag ? [data] : [key.to_sym => data]
|
17
17
|
result = @client.api_request(:method => "#{method_name}.delete", :params => data_delete)
|
@@ -19,14 +19,14 @@ class ZabbixApi
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def create_or_update(data)
|
22
|
-
|
22
|
+
log "[DEBUG] Call create_or_update with parametrs: #{data.inspect}"
|
23
23
|
|
24
24
|
id = get_id(indentify.to_sym => data[indentify.to_sym])
|
25
25
|
id ? update(data.merge(key.to_sym => id.to_s)) : create(data)
|
26
26
|
end
|
27
27
|
|
28
28
|
def update(data)
|
29
|
-
|
29
|
+
log "[DEBUG] Call update with parametrs: #{data.inspect}"
|
30
30
|
|
31
31
|
dump = {}
|
32
32
|
item_id = data[key.to_sym].to_i
|
@@ -34,18 +34,18 @@ class ZabbixApi
|
|
34
34
|
dump = symbolize_keys(item) if item[key].to_i == data[key.to_sym].to_i
|
35
35
|
end
|
36
36
|
|
37
|
-
|
37
|
+
if dump.deep_include?(data)
|
38
|
+
item_id
|
39
|
+
else
|
38
40
|
data_update = array_flag ? [data] : data
|
39
41
|
result = @client.api_request(:method => "#{method_name}.update", :params => data_update)
|
40
42
|
parse_keys result
|
41
|
-
else
|
42
|
-
item_id
|
43
43
|
end
|
44
44
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def get_full_data(data)
|
48
|
-
|
48
|
+
log "[DEBUG] Call get_full_data with parametrs: #{data.inspect}"
|
49
49
|
|
50
50
|
@client.api_request(
|
51
51
|
:method => "#{method_name}.get",
|
@@ -59,7 +59,7 @@ class ZabbixApi
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def dump_by_id(data)
|
62
|
-
|
62
|
+
log "[DEBUG] Call dump_by_id with parametrs: #{data.inspect}"
|
63
63
|
|
64
64
|
@client.api_request(
|
65
65
|
:method => "#{method_name}.get",
|
@@ -81,7 +81,7 @@ class ZabbixApi
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def get_id(data)
|
84
|
-
|
84
|
+
log "[DEBUG] Call get_id with parametrs: #{data.inspect}"
|
85
85
|
|
86
86
|
result = symbolize_keys( get_full_data(data) )
|
87
87
|
id = nil
|
@@ -90,9 +90,9 @@ class ZabbixApi
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def get_or_create(data)
|
93
|
-
|
93
|
+
log "[DEBUG] Call get_or_create with parametrs: #{data.inspect}"
|
94
94
|
|
95
|
-
unless id = get_id(data)
|
95
|
+
unless (id = get_id(data))
|
96
96
|
id = create(data)
|
97
97
|
end
|
98
98
|
id
|
data/lib/zabbixapi/client.rb
CHANGED
@@ -48,10 +48,10 @@ class ZabbixApi
|
|
48
48
|
|
49
49
|
def http_request(body)
|
50
50
|
uri = URI.parse(@options[:url])
|
51
|
-
|
52
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
53
|
-
else
|
51
|
+
if @proxy_uri.nil?
|
54
52
|
http = Net::HTTP.Proxy(@proxy_host, @proxy_port, @proxy_user, @proxy_pass).new(uri.host, uri.port)
|
53
|
+
else
|
54
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
55
55
|
end
|
56
56
|
request = Net::HTTP::Post.new(uri.request_uri)
|
57
57
|
request.basic_auth @options[:http_user], @options[:http_password] if @options[:http_user]
|
data/lib/zabbixapi/version.rb
CHANGED
data/spec/localhost.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
1
3
|
require 'zabbixapi'
|
2
4
|
|
3
5
|
# settings
|
@@ -11,7 +13,7 @@ zbx = ZabbixApi.connect(
|
|
11
13
|
:url => api_url,
|
12
14
|
:user => api_login,
|
13
15
|
:password => api_password,
|
14
|
-
:debug =>
|
16
|
+
:debug => false
|
15
17
|
)
|
16
18
|
|
17
19
|
hostgroup = "hostgroup______1"
|
@@ -26,21 +28,34 @@ usergroup = "SomeUserGroup"
|
|
26
28
|
graph = "graph___a"
|
27
29
|
mediatype = "somemediatype"
|
28
30
|
|
31
|
+
hostgroupid = 0
|
32
|
+
templateid = 0
|
33
|
+
applicationid = 0
|
34
|
+
itemid = 0
|
35
|
+
hostid = 0
|
36
|
+
triggerid = 0
|
37
|
+
userid = 0
|
38
|
+
usergroupid = 0
|
39
|
+
graphid = 0
|
40
|
+
screenid = 0
|
41
|
+
mediatypeid = 0
|
42
|
+
|
29
43
|
|
30
44
|
puts "### Zabbix API server version #{zbx.server.version} ###"
|
31
45
|
|
32
|
-
describe ZabbixApi
|
46
|
+
describe ZabbixApi do
|
33
47
|
|
34
48
|
it "SERVER: Get version api" do
|
35
49
|
zbx.server.version.should be_kind_of(String)
|
36
50
|
end
|
37
51
|
|
38
52
|
it "HOSTGROUP: Create" do
|
39
|
-
zbx.hostgroups.create(:name => hostgroup)
|
53
|
+
hostgroupid = zbx.hostgroups.create(:name => hostgroup)
|
54
|
+
hostgroupid.should be_kind_of(Integer)
|
40
55
|
end
|
41
56
|
|
42
57
|
it "HOSTGROUP: Find" do
|
43
|
-
zbx.hostgroups.get_id(:name => hostgroup).should
|
58
|
+
zbx.hostgroups.get_id(:name => hostgroup).should eq hostgroupid
|
44
59
|
end
|
45
60
|
|
46
61
|
it "HOSTGROUP: Find unknown" do
|
@@ -48,37 +63,38 @@ describe ZabbixApi, "test_api" do
|
|
48
63
|
end
|
49
64
|
|
50
65
|
it "HOSTGROUP: Create or get" do
|
51
|
-
zbx.hostgroups.get_or_create(:name => hostgroup).should
|
66
|
+
zbx.hostgroups.get_or_create(:name => hostgroup).should eq hostgroupid
|
52
67
|
end
|
53
68
|
|
54
69
|
it "HOSTGROUP: Create or update" do
|
55
|
-
zbx.hostgroups.create_or_update(:name => hostgroup).should
|
70
|
+
zbx.hostgroups.create_or_update(:name => hostgroup).should eq hostgroupid
|
56
71
|
end
|
57
72
|
|
58
73
|
it "HOSTGROUP: Get all" do
|
59
|
-
zbx.hostgroups.all.should
|
74
|
+
zbx.hostgroups.all.should include(hostgroup=>hostgroupid.to_s)
|
60
75
|
end
|
61
76
|
|
62
77
|
it "TEMPLATE: Create" do
|
63
|
-
zbx.templates.create(
|
78
|
+
templateid = zbx.templates.create(
|
64
79
|
:host => template,
|
65
80
|
:groups => [:groupid => zbx.hostgroups.get_id(:name => hostgroup)]
|
66
|
-
)
|
81
|
+
)
|
82
|
+
templateid.should be_kind_of(Integer)
|
67
83
|
end
|
68
84
|
|
69
85
|
it "TEMPLATE: Get get or create" do
|
70
86
|
zbx.templates.get_or_create(
|
71
87
|
:host => template,
|
72
88
|
:groups => [:groupid => zbx.hostgroups.get_id(:name => hostgroup)]
|
73
|
-
).should
|
89
|
+
).should eq templateid
|
74
90
|
end
|
75
91
|
|
76
92
|
it "TEMPLATE: Check full data" do
|
77
|
-
zbx.templates.get_full_data(:host => template)[0]
|
93
|
+
zbx.templates.get_full_data(:host => template)[0].should include("host"=>template)
|
78
94
|
end
|
79
95
|
|
80
96
|
it "TEMPLATE: Find" do
|
81
|
-
zbx.templates.get_id(:host => template).should
|
97
|
+
zbx.templates.get_id(:host => template).should eq templateid
|
82
98
|
end
|
83
99
|
|
84
100
|
it "TEMPLATE: Find unknown" do
|
@@ -86,25 +102,26 @@ describe ZabbixApi, "test_api" do
|
|
86
102
|
end
|
87
103
|
|
88
104
|
it "APPLICATION: Create" do
|
89
|
-
zbx.applications.create(
|
105
|
+
applicationid = zbx.applications.create(
|
90
106
|
:name => application,
|
91
107
|
:hostid => zbx.templates.get_id(:host => template)
|
92
108
|
)
|
109
|
+
applicationid.should be_kind_of(Integer)
|
93
110
|
end
|
94
111
|
|
95
112
|
it "APPLICATION: Get or create" do
|
96
113
|
zbx.applications.get_or_create(
|
97
114
|
:name => application,
|
98
115
|
:hostid => zbx.templates.get_id(:host => template)
|
99
|
-
)
|
116
|
+
).should eq applicationid
|
100
117
|
end
|
101
118
|
|
102
119
|
it "APPLICATION: Full info check" do
|
103
|
-
zbx.applications.get_full_data(:name => application)[0]
|
120
|
+
zbx.applications.get_full_data(:name => application)[0].should include("name"=>application)
|
104
121
|
end
|
105
122
|
|
106
123
|
it "APPLICATION: Find" do
|
107
|
-
zbx.applications.get_id(:name => application).should
|
124
|
+
zbx.applications.get_id(:name => application).should eq applicationid
|
108
125
|
end
|
109
126
|
|
110
127
|
it "APPLICATION: Find unknown" do
|
@@ -112,57 +129,69 @@ describe ZabbixApi, "test_api" do
|
|
112
129
|
end
|
113
130
|
|
114
131
|
it "ITEM: Create" do
|
115
|
-
zbx.items.create(
|
132
|
+
itemid = zbx.items.create(
|
116
133
|
:description => item,
|
117
134
|
:key_ => "proc.num[aaa]",
|
118
135
|
:hostid => zbx.templates.get_id(:host => template),
|
119
136
|
:applications => [zbx.applications.get_id(:name => application)]
|
120
|
-
)
|
137
|
+
)
|
138
|
+
itemid.should be_kind_of(Integer)
|
121
139
|
end
|
122
140
|
|
123
141
|
it "ITEM: Full info check" do
|
124
|
-
zbx.items.get_full_data(:description => item)[0]
|
142
|
+
zbx.items.get_full_data(:description => item)[0].should include("description"=>item)
|
125
143
|
end
|
126
144
|
|
127
145
|
it "ITEM: Find" do
|
128
|
-
zbx.items.get_id(:description => item).should
|
146
|
+
zbx.items.get_id(:description => item).should eq itemid
|
129
147
|
end
|
130
148
|
|
131
149
|
it "ITEM: Update" do
|
132
150
|
zbx.items.update(
|
133
151
|
:itemid => zbx.items.get_id(:description => item),
|
134
|
-
:status =>
|
135
|
-
).should
|
152
|
+
:status => 1
|
153
|
+
).should eq itemid
|
136
154
|
end
|
137
155
|
|
138
|
-
it "ITEM: Create or update" do
|
156
|
+
it "ITEM: Create or update (update)" do
|
139
157
|
zbx.items.create_or_update(
|
140
158
|
:description => item,
|
141
159
|
:key_ => "proc.num[aaa]",
|
142
160
|
:status => 0,
|
143
161
|
:hostid => zbx.templates.get_id(:host => template),
|
144
162
|
:applications => [zbx.applications.get_id(:name => application)]
|
145
|
-
).should
|
163
|
+
).should eq itemid
|
164
|
+
end
|
165
|
+
|
166
|
+
it "ITEM: Create or update (create)" do
|
167
|
+
zbx.items.create_or_update(
|
168
|
+
:description => item + "____1",
|
169
|
+
:key_ => "proc.num[aaabb]",
|
170
|
+
:status => 0,
|
171
|
+
:hostid => zbx.templates.get_id(:host => template),
|
172
|
+
:applications => [zbx.applications.get_id(:name => application)]
|
173
|
+
).should eq itemid + 1
|
146
174
|
end
|
147
175
|
|
148
176
|
it "ITEM: Get unknown" do
|
149
|
-
zbx.items.get_id(:description => "#{item}_____")
|
177
|
+
zbx.items.get_id(:description => "#{item}_____").should be_kind_of(NilClass)
|
150
178
|
end
|
151
179
|
|
152
180
|
it "HOST: Create" do
|
153
|
-
zbx.hosts.create(
|
181
|
+
hostid = zbx.hosts.create(
|
154
182
|
:host => host,
|
155
183
|
:ip => "10.20.48.88",
|
156
184
|
:groups => [:groupid => zbx.hostgroups.get_id(:name => hostgroup)]
|
157
|
-
)
|
185
|
+
)
|
186
|
+
hostid.should be_kind_of(Integer)
|
158
187
|
end
|
159
188
|
|
160
|
-
it "HOST: Update or create" do
|
189
|
+
it "HOST: Update or create (update)" do
|
161
190
|
zbx.hosts.create_or_update(
|
162
191
|
:host => host,
|
163
192
|
:ip => "10.20.48.89",
|
164
193
|
:groups => [:groupid => zbx.hostgroups.get_id(:name => hostgroup)]
|
165
|
-
).should
|
194
|
+
).should eq hostid
|
166
195
|
end
|
167
196
|
|
168
197
|
it "HOST: Find unknown" do
|
@@ -170,20 +199,29 @@ describe ZabbixApi, "test_api" do
|
|
170
199
|
end
|
171
200
|
|
172
201
|
it "HOST: Find" do
|
173
|
-
zbx.hosts.get_id(:host => host).should
|
202
|
+
zbx.hosts.get_id(:host => host).should eq hostid
|
174
203
|
end
|
175
204
|
|
176
205
|
it "HOST: Update" do
|
177
206
|
zbx.hosts.update(
|
178
207
|
:hostid => zbx.hosts.get_id(:host => host),
|
179
208
|
:status => 0
|
180
|
-
)
|
209
|
+
).should eq hostid
|
210
|
+
end
|
211
|
+
|
212
|
+
it "TEMPLATE: Update hosts with templates" do
|
213
|
+
zbx.templates.mass_update(
|
214
|
+
:hosts_id => [zbx.hosts.get_id(:host => host)],
|
215
|
+
:templates_id => [zbx.templates.get_id(:host => template)]
|
216
|
+
).should be_kind_of(TrueClass)
|
181
217
|
end
|
182
218
|
|
183
219
|
it "TEMPLATE: Get all templates linked with host" do
|
184
|
-
zbx.templates.get_ids_by_host(
|
220
|
+
tmpl_array = zbx.templates.get_ids_by_host(
|
185
221
|
:hostids => [zbx.hosts.get_id(:host => host)]
|
186
|
-
)
|
222
|
+
)
|
223
|
+
tmpl_array.should be_kind_of(Array)
|
224
|
+
tmpl_array.should include templateid.to_s
|
187
225
|
end
|
188
226
|
|
189
227
|
it "TEMPLATE: Linked hosts with templates" do
|
@@ -193,19 +231,12 @@ describe ZabbixApi, "test_api" do
|
|
193
231
|
).should be_kind_of(TrueClass)
|
194
232
|
end
|
195
233
|
|
196
|
-
it "TEMPLATE: Update hosts with templates" do
|
197
|
-
zbx.templates.mass_update(
|
198
|
-
:hosts_id => [zbx.hosts.get_id(:host => host)],
|
199
|
-
:templates_id => [zbx.templates.get_id(:host => template)]
|
200
|
-
).should be_kind_of(TrueClass)
|
201
|
-
end
|
202
|
-
|
203
234
|
it "TEMPLATE: Get all" do
|
204
|
-
zbx.templates.all.should
|
235
|
+
zbx.templates.all.should include(template=>templateid.to_s)
|
205
236
|
end
|
206
237
|
|
207
238
|
it "TRIGGER: Create" do
|
208
|
-
zbx.triggers.create(
|
239
|
+
triggerid = zbx.triggers.create(
|
209
240
|
:description => trigger,
|
210
241
|
:expression => "{#{template}:proc.num[aaa].last(0)}<1",
|
211
242
|
:comments => "Bla-bla is faulty (disaster)",
|
@@ -213,11 +244,12 @@ describe ZabbixApi, "test_api" do
|
|
213
244
|
:status => 0,
|
214
245
|
:templateid => 0,
|
215
246
|
:type => 0
|
216
|
-
)
|
247
|
+
)
|
248
|
+
triggerid.should be_kind_of(Integer)
|
217
249
|
end
|
218
250
|
|
219
251
|
it "TRIGGER: Find" do
|
220
|
-
zbx.triggers.get_id(:description => trigger).should
|
252
|
+
zbx.triggers.get_id(:description => trigger).should eq triggerid + 1 # вау блять
|
221
253
|
end
|
222
254
|
|
223
255
|
it "GRAPH: Create" do
|
@@ -227,13 +259,14 @@ describe ZabbixApi, "test_api" do
|
|
227
259
|
:type => "0",
|
228
260
|
:periods_cnt => "5"
|
229
261
|
}
|
230
|
-
zbx.graphs.create(
|
262
|
+
graphid = zbx.graphs.create(
|
231
263
|
:gitems => [gitems],
|
232
264
|
:show_triggers => "0",
|
233
265
|
:name => graph,
|
234
266
|
:width => "900",
|
235
267
|
:height => "200"
|
236
|
-
)
|
268
|
+
)
|
269
|
+
graphid.should be_kind_of(Integer)
|
237
270
|
end
|
238
271
|
|
239
272
|
it "GRAPH: Create or get" do
|
@@ -249,7 +282,7 @@ describe ZabbixApi, "test_api" do
|
|
249
282
|
:name => graph,
|
250
283
|
:width => "900",
|
251
284
|
:height => "200"
|
252
|
-
).should
|
285
|
+
).should eq graphid
|
253
286
|
end
|
254
287
|
|
255
288
|
it "GRAPH: Find gititems" do
|
@@ -257,11 +290,13 @@ describe ZabbixApi, "test_api" do
|
|
257
290
|
end
|
258
291
|
|
259
292
|
it "GRAPH: Find" do
|
260
|
-
zbx.graphs.get_id( :name => graph ).should
|
293
|
+
zbx.graphs.get_id( :name => graph ).should eq graphid
|
261
294
|
end
|
262
295
|
|
263
296
|
it "GRAPH: get_ids_by_host" do
|
264
|
-
zbx.graphs.get_ids_by_host( :host => host )
|
297
|
+
graph_array = zbx.graphs.get_ids_by_host( :host => host )
|
298
|
+
graph_array.should be_kind_of(Array)
|
299
|
+
graph_array.should include(graphid.to_s)
|
265
300
|
end
|
266
301
|
|
267
302
|
it "GRAPH: Update" do
|
@@ -271,7 +306,7 @@ describe ZabbixApi, "test_api" do
|
|
271
306
|
:hostid => zbx.hosts.get_id(:host => host)
|
272
307
|
),
|
273
308
|
:ymax_type => 1
|
274
|
-
).should
|
309
|
+
).should eq graphid
|
275
310
|
end
|
276
311
|
|
277
312
|
it "GRAPH: Create or Update" do
|
@@ -287,14 +322,15 @@ describe ZabbixApi, "test_api" do
|
|
287
322
|
:name => graph,
|
288
323
|
:width => "900",
|
289
324
|
:height => "200"
|
290
|
-
).should
|
325
|
+
).should eq graphid
|
291
326
|
end
|
292
327
|
|
293
328
|
it "SCREEN: Get or create for host" do
|
294
|
-
zbx.screens.get_or_create_for_host(
|
329
|
+
screenid = zbx.screens.get_or_create_for_host(
|
295
330
|
:host => host,
|
296
331
|
:graphids => zbx.graphs.get_ids_by_host(:host => host)
|
297
|
-
)
|
332
|
+
)
|
333
|
+
screenid.should be_kind_of(Integer)
|
298
334
|
end
|
299
335
|
|
300
336
|
it "TEMPLATE: Unlink hosts from templates" do
|
@@ -307,7 +343,7 @@ describe ZabbixApi, "test_api" do
|
|
307
343
|
it "SCREEN: Delete" do
|
308
344
|
zbx.screens.delete(
|
309
345
|
[zbx.screens.get_id(:name => "#{host}_graphs")]
|
310
|
-
).should
|
346
|
+
).should eq screenid
|
311
347
|
end
|
312
348
|
|
313
349
|
it "GRAPH: Delete" do
|
@@ -315,40 +351,41 @@ describe ZabbixApi, "test_api" do
|
|
315
351
|
end
|
316
352
|
|
317
353
|
it "TRIGGER: Delete" do
|
318
|
-
zbx.triggers.delete( zbx.triggers.get_id(:description => trigger) ).should
|
354
|
+
zbx.triggers.delete( zbx.triggers.get_id(:description => trigger) ).should eq triggerid + 1
|
319
355
|
end
|
320
356
|
|
321
357
|
it "HOST: Delete" do
|
322
|
-
zbx.hosts.delete( zbx.hosts.get_id(:host => host) ).should
|
358
|
+
zbx.hosts.delete( zbx.hosts.get_id(:host => host) ).should eq hostid
|
323
359
|
end
|
324
360
|
|
325
361
|
it "ITEM: Delete" do
|
326
362
|
zbx.items.delete(
|
327
363
|
zbx.items.get_id(:description => item)
|
328
|
-
).should
|
364
|
+
).should eq itemid
|
329
365
|
end
|
330
366
|
|
331
367
|
it "APPLICATION: Delete" do
|
332
|
-
zbx.applications.delete( zbx.applications.get_id(:name => application) )
|
368
|
+
zbx.applications.delete( zbx.applications.get_id(:name => application) ).should eq applicationid
|
333
369
|
end
|
334
370
|
|
335
371
|
it "TEMPLATE: Delete" do
|
336
|
-
zbx.templates.delete(zbx.templates.get_id(:host => template))
|
372
|
+
zbx.templates.delete(zbx.templates.get_id(:host => template)).should eq templateid
|
337
373
|
end
|
338
374
|
|
339
375
|
it "HOSTGROUP: Delete" do
|
340
376
|
zbx.hostgroups.delete(
|
341
377
|
zbx.hostgroups.get_id(:name => hostgroup)
|
342
|
-
).should
|
378
|
+
).should eq hostgroupid
|
343
379
|
end
|
344
380
|
|
345
381
|
it "USER: Create" do
|
346
|
-
zbx.users.create(
|
382
|
+
userid = zbx.users.create(
|
347
383
|
:alias => "Test #{user}",
|
348
384
|
:name => user,
|
349
385
|
:surname => user,
|
350
386
|
:passwd => user
|
351
|
-
)
|
387
|
+
)
|
388
|
+
userid.should be_kind_of(Integer)
|
352
389
|
end
|
353
390
|
|
354
391
|
it "USER: Create or update" do
|
@@ -357,7 +394,7 @@ describe ZabbixApi, "test_api" do
|
|
357
394
|
:name => user,
|
358
395
|
:surname => user,
|
359
396
|
:passwd => user
|
360
|
-
).should
|
397
|
+
).should eq userid
|
361
398
|
end
|
362
399
|
|
363
400
|
it "USER: Find" do
|
@@ -369,22 +406,23 @@ describe ZabbixApi, "test_api" do
|
|
369
406
|
end
|
370
407
|
|
371
408
|
it "USER: Find unknown" do
|
372
|
-
zbx.users.get_id(:name => "#{user}_____")
|
409
|
+
zbx.users.get_id(:name => "#{user}_____").should be_kind_of(NilClass)
|
373
410
|
end
|
374
411
|
|
375
412
|
it "USERGROUPS: Create" do
|
376
|
-
zbx.usergroups.create(:name => usergroup)
|
413
|
+
usergroupid = zbx.usergroups.create(:name => usergroup)
|
414
|
+
usergroupid.should be_kind_of(Integer)
|
377
415
|
end
|
378
416
|
|
379
417
|
it "USERGROUPS: Create or update" do
|
380
|
-
zbx.usergroups.get_or_create(:name => usergroup).should
|
418
|
+
zbx.usergroups.get_or_create(:name => usergroup).should eq usergroupid
|
381
419
|
end
|
382
420
|
|
383
421
|
it "USERGROUPS: Add user" do
|
384
422
|
zbx.usergroups.add_user(
|
385
423
|
:usrgrpids => [zbx.usergroups.get_id(:name => usergroup)],
|
386
424
|
:userids => [zbx.users.get_id(:name => user2)]
|
387
|
-
).should
|
425
|
+
).should eq usergroupid
|
388
426
|
end
|
389
427
|
|
390
428
|
it "USERGROUPS: Set UserGroup read & write perm" do
|
@@ -392,23 +430,24 @@ describe ZabbixApi, "test_api" do
|
|
392
430
|
:usrgrpid => zbx.usergroups.get_or_create(:name => usergroup).to_s,
|
393
431
|
:hostgroupids => zbx.hostgroups.all.values,
|
394
432
|
:permission => 3
|
395
|
-
).should
|
433
|
+
).should eq usergroupid
|
396
434
|
end
|
397
435
|
|
398
436
|
it "MEDIATYPE: Create" do
|
399
|
-
zbx.mediatypes.create(
|
437
|
+
mediatypeid = zbx.mediatypes.create(
|
400
438
|
:description => mediatype,
|
401
439
|
:type => 0,
|
402
440
|
:smtp_server => "127.0.0.1",
|
403
441
|
:smtp_email => "zabbix@test.com"
|
404
|
-
)
|
442
|
+
)
|
443
|
+
mediatypeid.should be_kind_of(Integer)
|
405
444
|
end
|
406
445
|
|
407
446
|
it "MEDIATYPE: Update or create" do
|
408
447
|
zbx.mediatypes.create_or_update(
|
409
448
|
:description => mediatype,
|
410
449
|
:smtp_email => "zabbix2@test.com"
|
411
|
-
).should
|
450
|
+
).should eq mediatypeid
|
412
451
|
end
|
413
452
|
|
414
453
|
it "USER: Add mediatype" do
|
@@ -423,21 +462,21 @@ describe ZabbixApi, "test_api" do
|
|
423
462
|
:severity => "56"
|
424
463
|
}
|
425
464
|
]
|
426
|
-
).should
|
465
|
+
).should eq userid
|
427
466
|
end
|
428
467
|
|
429
468
|
it "MEDIATYPE: Delete" do
|
430
469
|
zbx.mediatypes.delete(
|
431
470
|
zbx.mediatypes.get_id(:description => mediatype)
|
432
|
-
).should
|
471
|
+
).should eq mediatypeid
|
433
472
|
end
|
434
473
|
|
435
474
|
it "USER: Delete" do
|
436
|
-
zbx.users.delete(zbx.users.get_id(:name => user2)).should
|
475
|
+
zbx.users.delete(zbx.users.get_id(:name => user2)).should eq userid
|
437
476
|
end
|
438
477
|
|
439
478
|
it "USERGROUPS: Delete" do
|
440
|
-
zbx.usergroups.delete([zbx.usergroups.get_id(:name => usergroup)]).should
|
479
|
+
zbx.usergroups.delete([zbx.usergroups.get_id(:name => usergroup)]).should eq usergroupid
|
441
480
|
end
|
442
481
|
|
443
482
|
it "QUERY" do
|
data/spec/run.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
1
3
|
require 'zabbixapi'
|
2
4
|
|
3
5
|
# settings
|
@@ -24,20 +26,34 @@ usergroup = "SomeUserGroup"
|
|
24
26
|
graph = "graph"
|
25
27
|
mediatype = "somemediatype"
|
26
28
|
|
29
|
+
hostgroupid = 0
|
30
|
+
templateid = 0
|
31
|
+
applicationid = 0
|
32
|
+
itemid = 0
|
33
|
+
hostid = 0
|
34
|
+
triggerid = 0
|
35
|
+
userid = 0
|
36
|
+
usergroupid = 0
|
37
|
+
graphid = 0
|
38
|
+
screenid = 0
|
39
|
+
mediatypeid = 0
|
40
|
+
|
41
|
+
|
27
42
|
puts "### Zabbix API server version #{zbx.server.version} ###"
|
28
43
|
|
29
|
-
describe ZabbixApi
|
44
|
+
describe ZabbixApi do
|
30
45
|
|
31
46
|
it "SERVER: Get version api" do
|
32
47
|
zbx.server.version.should be_kind_of(String)
|
33
48
|
end
|
34
49
|
|
35
50
|
it "HOSTGROUP: Create" do
|
36
|
-
zbx.hostgroups.create(:name => hostgroup)
|
51
|
+
hostgroupid = zbx.hostgroups.create(:name => hostgroup)
|
52
|
+
hostgroupid.should be_kind_of(Integer)
|
37
53
|
end
|
38
54
|
|
39
55
|
it "HOSTGROUP: Find" do
|
40
|
-
zbx.hostgroups.get_id(:name => hostgroup).should
|
56
|
+
zbx.hostgroups.get_id(:name => hostgroup).should eq hostgroupid
|
41
57
|
end
|
42
58
|
|
43
59
|
it "HOSTGROUP: Find unknown" do
|
@@ -45,33 +61,38 @@ describe ZabbixApi, "test_api" do
|
|
45
61
|
end
|
46
62
|
|
47
63
|
it "HOSTGROUP: Create or get" do
|
48
|
-
zbx.hostgroups.get_or_create(:name => hostgroup).should
|
64
|
+
zbx.hostgroups.get_or_create(:name => hostgroup).should eq hostgroupid
|
65
|
+
end
|
66
|
+
|
67
|
+
it "HOSTGROUP: Create or update" do
|
68
|
+
zbx.hostgroups.create_or_update(:name => hostgroup).should eq hostgroupid
|
49
69
|
end
|
50
70
|
|
51
71
|
it "HOSTGROUP: Get all" do
|
52
|
-
zbx.hostgroups.all.should
|
72
|
+
zbx.hostgroups.all.should include(hostgroup=>hostgroupid.to_s)
|
53
73
|
end
|
54
74
|
|
55
75
|
it "TEMPLATE: Create" do
|
56
|
-
zbx.templates.create(
|
76
|
+
templateid = zbx.templates.create(
|
57
77
|
:host => template,
|
58
78
|
:groups => [:groupid => zbx.hostgroups.get_id(:name => hostgroup)]
|
59
|
-
)
|
79
|
+
)
|
80
|
+
templateid.should be_kind_of(Integer)
|
60
81
|
end
|
61
82
|
|
62
83
|
it "TEMPLATE: Get get or create" do
|
63
84
|
zbx.templates.get_or_create(
|
64
85
|
:host => template,
|
65
86
|
:groups => [:groupid => zbx.hostgroups.get_id(:name => hostgroup)]
|
66
|
-
).should
|
87
|
+
).should eq templateid
|
67
88
|
end
|
68
89
|
|
69
90
|
it "TEMPLATE: Check full data" do
|
70
|
-
zbx.templates.get_full_data(:host => template)[0]
|
91
|
+
zbx.templates.get_full_data(:host => template)[0].should include("host"=>template)
|
71
92
|
end
|
72
93
|
|
73
94
|
it "TEMPLATE: Find" do
|
74
|
-
zbx.templates.get_id(:host => template).should
|
95
|
+
zbx.templates.get_id(:host => template).should eq templateid
|
75
96
|
end
|
76
97
|
|
77
98
|
it "TEMPLATE: Find unknown" do
|
@@ -79,25 +100,26 @@ describe ZabbixApi, "test_api" do
|
|
79
100
|
end
|
80
101
|
|
81
102
|
it "APPLICATION: Create" do
|
82
|
-
zbx.applications.create(
|
103
|
+
applicationid = zbx.applications.create(
|
83
104
|
:name => application,
|
84
105
|
:hostid => zbx.templates.get_id(:host => template)
|
85
106
|
)
|
107
|
+
applicationid.should be_kind_of(Integer)
|
86
108
|
end
|
87
109
|
|
88
110
|
it "APPLICATION: Get or create" do
|
89
111
|
zbx.applications.get_or_create(
|
90
112
|
:name => application,
|
91
113
|
:hostid => zbx.templates.get_id(:host => template)
|
92
|
-
)
|
114
|
+
).should eq applicationid
|
93
115
|
end
|
94
116
|
|
95
117
|
it "APPLICATION: Full info check" do
|
96
|
-
zbx.applications.get_full_data(:name => application)[0]
|
118
|
+
zbx.applications.get_full_data(:name => application)[0].should include("name"=>application)
|
97
119
|
end
|
98
120
|
|
99
121
|
it "APPLICATION: Find" do
|
100
|
-
zbx.applications.get_id(:name => application).should
|
122
|
+
zbx.applications.get_id(:name => application).should eq applicationid
|
101
123
|
end
|
102
124
|
|
103
125
|
it "APPLICATION: Find unknown" do
|
@@ -105,57 +127,69 @@ describe ZabbixApi, "test_api" do
|
|
105
127
|
end
|
106
128
|
|
107
129
|
it "ITEM: Create" do
|
108
|
-
zbx.items.create(
|
130
|
+
itemid = zbx.items.create(
|
109
131
|
:description => item,
|
110
132
|
:key_ => "proc.num[aaa]",
|
111
133
|
:hostid => zbx.templates.get_id(:host => template),
|
112
134
|
:applications => [zbx.applications.get_id(:name => application)]
|
113
|
-
)
|
135
|
+
)
|
136
|
+
itemid.should be_kind_of(Integer)
|
114
137
|
end
|
115
138
|
|
116
139
|
it "ITEM: Full info check" do
|
117
|
-
zbx.items.get_full_data(:description => item)[0]
|
140
|
+
zbx.items.get_full_data(:description => item)[0].should include("description"=>item)
|
118
141
|
end
|
119
142
|
|
120
143
|
it "ITEM: Find" do
|
121
|
-
zbx.items.get_id(:description => item).should
|
144
|
+
zbx.items.get_id(:description => item).should eq itemid
|
122
145
|
end
|
123
146
|
|
124
147
|
it "ITEM: Update" do
|
125
148
|
zbx.items.update(
|
126
149
|
:itemid => zbx.items.get_id(:description => item),
|
127
|
-
:status =>
|
128
|
-
).should
|
150
|
+
:status => 1
|
151
|
+
).should eq itemid
|
129
152
|
end
|
130
153
|
|
131
|
-
it "ITEM: Create or update" do
|
154
|
+
it "ITEM: Create or update (update)" do
|
132
155
|
zbx.items.create_or_update(
|
133
156
|
:description => item,
|
134
157
|
:key_ => "proc.num[aaa]",
|
135
|
-
:
|
158
|
+
:status => 0,
|
136
159
|
:hostid => zbx.templates.get_id(:host => template),
|
137
160
|
:applications => [zbx.applications.get_id(:name => application)]
|
138
|
-
).should
|
161
|
+
).should eq itemid
|
162
|
+
end
|
163
|
+
|
164
|
+
it "ITEM: Create or update (create)" do
|
165
|
+
zbx.items.create_or_update(
|
166
|
+
:description => item + "____1",
|
167
|
+
:key_ => "proc.num[aaabb]",
|
168
|
+
:status => 0,
|
169
|
+
:hostid => zbx.templates.get_id(:host => template),
|
170
|
+
:applications => [zbx.applications.get_id(:name => application)]
|
171
|
+
).should eq itemid + 1
|
139
172
|
end
|
140
173
|
|
141
174
|
it "ITEM: Get unknown" do
|
142
|
-
zbx.items.get_id(:description => "#{item}_____")
|
175
|
+
zbx.items.get_id(:description => "#{item}_____").should be_kind_of(NilClass)
|
143
176
|
end
|
144
177
|
|
145
178
|
it "HOST: Create" do
|
146
|
-
zbx.hosts.create(
|
179
|
+
hostid = zbx.hosts.create(
|
147
180
|
:host => host,
|
148
181
|
:ip => "10.20.48.88",
|
149
182
|
:groups => [:groupid => zbx.hostgroups.get_id(:name => hostgroup)]
|
150
|
-
)
|
183
|
+
)
|
184
|
+
hostid.should be_kind_of(Integer)
|
151
185
|
end
|
152
186
|
|
153
|
-
it "HOST: Update or create" do
|
187
|
+
it "HOST: Update or create (update)" do
|
154
188
|
zbx.hosts.create_or_update(
|
155
189
|
:host => host,
|
156
190
|
:ip => "10.20.48.89",
|
157
191
|
:groups => [:groupid => zbx.hostgroups.get_id(:name => hostgroup)]
|
158
|
-
).should
|
192
|
+
).should eq hostid
|
159
193
|
end
|
160
194
|
|
161
195
|
it "HOST: Find unknown" do
|
@@ -163,20 +197,29 @@ describe ZabbixApi, "test_api" do
|
|
163
197
|
end
|
164
198
|
|
165
199
|
it "HOST: Find" do
|
166
|
-
zbx.hosts.get_id(:host => host).should
|
200
|
+
zbx.hosts.get_id(:host => host).should eq hostid
|
167
201
|
end
|
168
202
|
|
169
203
|
it "HOST: Update" do
|
170
204
|
zbx.hosts.update(
|
171
205
|
:hostid => zbx.hosts.get_id(:host => host),
|
172
206
|
:status => 0
|
173
|
-
)
|
207
|
+
).should eq hostid
|
208
|
+
end
|
209
|
+
|
210
|
+
it "TEMPLATE: Update hosts with templates" do
|
211
|
+
zbx.templates.mass_update(
|
212
|
+
:hosts_id => [zbx.hosts.get_id(:host => host)],
|
213
|
+
:templates_id => [zbx.templates.get_id(:host => template)]
|
214
|
+
).should be_kind_of(TrueClass)
|
174
215
|
end
|
175
216
|
|
176
217
|
it "TEMPLATE: Get all templates linked with host" do
|
177
|
-
zbx.templates.get_ids_by_host(
|
218
|
+
tmpl_array = zbx.templates.get_ids_by_host(
|
178
219
|
:hostids => [zbx.hosts.get_id(:host => host)]
|
179
|
-
)
|
220
|
+
)
|
221
|
+
tmpl_array.should be_kind_of(Array)
|
222
|
+
tmpl_array.should include templateid.to_s
|
180
223
|
end
|
181
224
|
|
182
225
|
it "TEMPLATE: Linked hosts with templates" do
|
@@ -186,19 +229,12 @@ describe ZabbixApi, "test_api" do
|
|
186
229
|
).should be_kind_of(TrueClass)
|
187
230
|
end
|
188
231
|
|
189
|
-
it "TEMPLATE: Update hosts with templates" do
|
190
|
-
zbx.templates.mass_update(
|
191
|
-
:hosts_id => [zbx.hosts.get_id(:host => host)],
|
192
|
-
:templates_id => [zbx.templates.get_id(:host => template)]
|
193
|
-
).should be_kind_of(TrueClass)
|
194
|
-
end
|
195
|
-
|
196
232
|
it "TEMPLATE: Get all" do
|
197
|
-
zbx.templates.all.should
|
233
|
+
zbx.templates.all.should include(template=>templateid.to_s)
|
198
234
|
end
|
199
235
|
|
200
236
|
it "TRIGGER: Create" do
|
201
|
-
zbx.triggers.create(
|
237
|
+
triggerid = zbx.triggers.create(
|
202
238
|
:description => trigger,
|
203
239
|
:expression => "{#{template}:proc.num[aaa].last(0)}<1",
|
204
240
|
:comments => "Bla-bla is faulty (disaster)",
|
@@ -206,11 +242,12 @@ describe ZabbixApi, "test_api" do
|
|
206
242
|
:status => 0,
|
207
243
|
:templateid => 0,
|
208
244
|
:type => 0
|
209
|
-
)
|
245
|
+
)
|
246
|
+
triggerid.should be_kind_of(Integer)
|
210
247
|
end
|
211
248
|
|
212
249
|
it "TRIGGER: Find" do
|
213
|
-
zbx.triggers.get_id(:description => trigger).should
|
250
|
+
zbx.triggers.get_id(:description => trigger).should eq triggerid + 1 # вау блять
|
214
251
|
end
|
215
252
|
|
216
253
|
it "GRAPH: Create" do
|
@@ -220,13 +257,14 @@ describe ZabbixApi, "test_api" do
|
|
220
257
|
:type => "0",
|
221
258
|
:periods_cnt => "5"
|
222
259
|
}
|
223
|
-
zbx.graphs.create(
|
260
|
+
graphid = zbx.graphs.create(
|
224
261
|
:gitems => [gitems],
|
225
262
|
:show_triggers => "0",
|
226
263
|
:name => graph,
|
227
264
|
:width => "900",
|
228
265
|
:height => "200"
|
229
|
-
)
|
266
|
+
)
|
267
|
+
graphid.should be_kind_of(Integer)
|
230
268
|
end
|
231
269
|
|
232
270
|
it "GRAPH: Create or get" do
|
@@ -242,7 +280,7 @@ describe ZabbixApi, "test_api" do
|
|
242
280
|
:name => graph,
|
243
281
|
:width => "900",
|
244
282
|
:height => "200"
|
245
|
-
).should
|
283
|
+
).should eq graphid
|
246
284
|
end
|
247
285
|
|
248
286
|
it "GRAPH: Find gititems" do
|
@@ -250,11 +288,13 @@ describe ZabbixApi, "test_api" do
|
|
250
288
|
end
|
251
289
|
|
252
290
|
it "GRAPH: Find" do
|
253
|
-
zbx.graphs.get_id( :name => graph ).should
|
291
|
+
zbx.graphs.get_id( :name => graph ).should eq graphid
|
254
292
|
end
|
255
293
|
|
256
294
|
it "GRAPH: get_ids_by_host" do
|
257
|
-
zbx.graphs.get_ids_by_host( :host => host )
|
295
|
+
graph_array = zbx.graphs.get_ids_by_host( :host => host )
|
296
|
+
graph_array.should be_kind_of(Array)
|
297
|
+
graph_array.should include(graphid.to_s)
|
258
298
|
end
|
259
299
|
|
260
300
|
it "GRAPH: Update" do
|
@@ -264,7 +304,7 @@ describe ZabbixApi, "test_api" do
|
|
264
304
|
:hostid => zbx.hosts.get_id(:host => host)
|
265
305
|
),
|
266
306
|
:ymax_type => 1
|
267
|
-
).should
|
307
|
+
).should eq graphid
|
268
308
|
end
|
269
309
|
|
270
310
|
it "GRAPH: Create or Update" do
|
@@ -280,14 +320,15 @@ describe ZabbixApi, "test_api" do
|
|
280
320
|
:name => graph,
|
281
321
|
:width => "900",
|
282
322
|
:height => "200"
|
283
|
-
).should
|
323
|
+
).should eq graphid
|
284
324
|
end
|
285
325
|
|
286
326
|
it "SCREEN: Get or create for host" do
|
287
|
-
zbx.screens.get_or_create_for_host(
|
327
|
+
screenid = zbx.screens.get_or_create_for_host(
|
288
328
|
:host => host,
|
289
329
|
:graphids => zbx.graphs.get_ids_by_host(:host => host)
|
290
|
-
)
|
330
|
+
)
|
331
|
+
screenid.should be_kind_of(Integer)
|
291
332
|
end
|
292
333
|
|
293
334
|
it "TEMPLATE: Unlink hosts from templates" do
|
@@ -300,48 +341,49 @@ describe ZabbixApi, "test_api" do
|
|
300
341
|
it "SCREEN: Delete" do
|
301
342
|
zbx.screens.delete(
|
302
343
|
[zbx.screens.get_id(:name => "#{host}_graphs")]
|
303
|
-
).should
|
344
|
+
).should eq screenid
|
304
345
|
end
|
305
346
|
|
306
347
|
it "GRAPH: Delete" do
|
307
|
-
zbx.graphs.delete(zbx.graphs.get_id(:name => graph)).should be_kind_of(
|
348
|
+
zbx.graphs.delete(zbx.graphs.get_id(:name => graph)).should be_kind_of(TrueClass)
|
308
349
|
end
|
309
350
|
|
310
351
|
it "TRIGGER: Delete" do
|
311
|
-
zbx.triggers.delete( zbx.triggers.get_id(:description => trigger) ).should
|
352
|
+
zbx.triggers.delete( zbx.triggers.get_id(:description => trigger) ).should eq triggerid + 1
|
312
353
|
end
|
313
354
|
|
314
355
|
it "HOST: Delete" do
|
315
|
-
zbx.hosts.delete( zbx.hosts.get_id(:host => host) ).should
|
356
|
+
zbx.hosts.delete( zbx.hosts.get_id(:host => host) ).should eq hostid
|
316
357
|
end
|
317
358
|
|
318
359
|
it "ITEM: Delete" do
|
319
360
|
zbx.items.delete(
|
320
361
|
zbx.items.get_id(:description => item)
|
321
|
-
).should
|
362
|
+
).should eq itemid
|
322
363
|
end
|
323
364
|
|
324
365
|
it "APPLICATION: Delete" do
|
325
|
-
zbx.applications.delete( zbx.applications.get_id(:name => application) )
|
366
|
+
zbx.applications.delete( zbx.applications.get_id(:name => application) ).should eq applicationid
|
326
367
|
end
|
327
368
|
|
328
369
|
it "TEMPLATE: Delete" do
|
329
|
-
zbx.templates.delete(zbx.templates.get_id(:host => template))
|
370
|
+
zbx.templates.delete(zbx.templates.get_id(:host => template)).should eq templateid
|
330
371
|
end
|
331
372
|
|
332
373
|
it "HOSTGROUP: Delete" do
|
333
374
|
zbx.hostgroups.delete(
|
334
375
|
zbx.hostgroups.get_id(:name => hostgroup)
|
335
|
-
).should
|
376
|
+
).should eq hostgroupid
|
336
377
|
end
|
337
378
|
|
338
379
|
it "USER: Create" do
|
339
|
-
zbx.users.create(
|
380
|
+
userid = zbx.users.create(
|
340
381
|
:alias => "Test #{user}",
|
341
382
|
:name => user,
|
342
383
|
:surname => user,
|
343
384
|
:passwd => user
|
344
|
-
)
|
385
|
+
)
|
386
|
+
userid.should be_kind_of(Integer)
|
345
387
|
end
|
346
388
|
|
347
389
|
it "USER: Create or update" do
|
@@ -350,7 +392,7 @@ describe ZabbixApi, "test_api" do
|
|
350
392
|
:name => user,
|
351
393
|
:surname => user,
|
352
394
|
:passwd => user
|
353
|
-
).should
|
395
|
+
).should eq userid
|
354
396
|
end
|
355
397
|
|
356
398
|
it "USER: Find" do
|
@@ -362,22 +404,23 @@ describe ZabbixApi, "test_api" do
|
|
362
404
|
end
|
363
405
|
|
364
406
|
it "USER: Find unknown" do
|
365
|
-
zbx.users.get_id(:name => "#{user}_____")
|
407
|
+
zbx.users.get_id(:name => "#{user}_____").should be_kind_of(NilClass)
|
366
408
|
end
|
367
409
|
|
368
410
|
it "USERGROUPS: Create" do
|
369
|
-
zbx.usergroups.create(:name => usergroup)
|
411
|
+
usergroupid = zbx.usergroups.create(:name => usergroup)
|
412
|
+
usergroupid.should be_kind_of(Integer)
|
370
413
|
end
|
371
414
|
|
372
415
|
it "USERGROUPS: Create or update" do
|
373
|
-
zbx.usergroups.get_or_create(:name => usergroup).should
|
416
|
+
zbx.usergroups.get_or_create(:name => usergroup).should eq usergroupid
|
374
417
|
end
|
375
418
|
|
376
419
|
it "USERGROUPS: Add user" do
|
377
420
|
zbx.usergroups.add_user(
|
378
421
|
:usrgrpids => [zbx.usergroups.get_id(:name => usergroup)],
|
379
422
|
:userids => [zbx.users.get_id(:name => user2)]
|
380
|
-
).should
|
423
|
+
).should eq usergroupid
|
381
424
|
end
|
382
425
|
|
383
426
|
it "USERGROUPS: Set UserGroup read & write perm" do
|
@@ -385,23 +428,24 @@ describe ZabbixApi, "test_api" do
|
|
385
428
|
:usrgrpid => zbx.usergroups.get_or_create(:name => usergroup).to_s,
|
386
429
|
:hostgroupids => zbx.hostgroups.all.values,
|
387
430
|
:permission => 3
|
388
|
-
).should
|
431
|
+
).should eq usergroupid
|
389
432
|
end
|
390
433
|
|
391
434
|
it "MEDIATYPE: Create" do
|
392
|
-
zbx.mediatypes.create(
|
435
|
+
mediatypeid = zbx.mediatypes.create(
|
393
436
|
:description => mediatype,
|
394
437
|
:type => 0,
|
395
438
|
:smtp_server => "127.0.0.1",
|
396
439
|
:smtp_email => "zabbix@test.com"
|
397
|
-
)
|
440
|
+
)
|
441
|
+
mediatypeid.should be_kind_of(Integer)
|
398
442
|
end
|
399
443
|
|
400
444
|
it "MEDIATYPE: Update or create" do
|
401
445
|
zbx.mediatypes.create_or_update(
|
402
446
|
:description => mediatype,
|
403
447
|
:smtp_email => "zabbix2@test.com"
|
404
|
-
).should
|
448
|
+
).should eq mediatypeid
|
405
449
|
end
|
406
450
|
|
407
451
|
it "USER: Add mediatype" do
|
@@ -416,21 +460,21 @@ describe ZabbixApi, "test_api" do
|
|
416
460
|
:severity => "56"
|
417
461
|
}
|
418
462
|
]
|
419
|
-
).should
|
463
|
+
).should eq userid
|
420
464
|
end
|
421
465
|
|
422
466
|
it "MEDIATYPE: Delete" do
|
423
467
|
zbx.mediatypes.delete(
|
424
468
|
zbx.mediatypes.get_id(:description => mediatype)
|
425
|
-
).should
|
469
|
+
).should eq mediatypeid
|
426
470
|
end
|
427
471
|
|
428
472
|
it "USER: Delete" do
|
429
|
-
zbx.users.delete(zbx.users.get_id(:name => user2)).should
|
473
|
+
zbx.users.delete(zbx.users.get_id(:name => user2)).should eq userid
|
430
474
|
end
|
431
475
|
|
432
476
|
it "USERGROUPS: Delete" do
|
433
|
-
zbx.usergroups.delete([zbx.usergroups.get_id(:name => usergroup)]).should
|
477
|
+
zbx.usergroups.delete([zbx.usergroups.get_id(:name => usergroup)]).should eq usergroupid
|
434
478
|
end
|
435
479
|
|
436
480
|
it "QUERY" do
|
data/zabbixapi.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require
|
3
|
+
require 'zabbixapi/version'
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "zabbixapi"
|
@@ -11,6 +11,8 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.summary = %q{Realization for Zabbix API.}
|
12
12
|
s.description = %q{Allows you to work with zabbix api from ruby.}
|
13
13
|
s.licenses = %w(MIT)
|
14
|
+
|
15
|
+
s.add_dependency('json')
|
14
16
|
|
15
17
|
s.rubyforge_project = "zabbixapi"
|
16
18
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zabbixapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1b11
|
5
5
|
prerelease: 5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,24 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
13
|
-
dependencies:
|
12
|
+
date: 2012-12-21 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: json
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
14
30
|
description: Allows you to work with zabbix api from ruby.
|
15
31
|
email:
|
16
32
|
- vadv.mkn@gmail.com
|
@@ -63,7 +79,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
63
79
|
version: '0'
|
64
80
|
segments:
|
65
81
|
- 0
|
66
|
-
hash: -
|
82
|
+
hash: -2676631147213702854
|
67
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
84
|
none: false
|
69
85
|
requirements:
|