zabbixapi 0.4.2 → 0.4.3

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/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source :rubygems
2
2
 
3
3
  gem "rspec"
4
- gem "rake"
4
+ gem "rake"
@@ -31,9 +31,7 @@ class ZabbixApi
31
31
  def get_id(data)
32
32
  result = get_full_data(data)
33
33
  applicationid = nil
34
- result.each do |app|
35
- applicationid = app['applicationid'].to_i if app['name'] == data[:name]
36
- end
34
+ result.each { |app| applicationid = app['applicationid'].to_i if app['name'] == data[:name] }
37
35
  applicationid
38
36
  end
39
37
 
@@ -25,6 +25,12 @@ class ZabbixApi
25
25
  def initialize(options = {})
26
26
  @options = options
27
27
  @auth_hash = auth
28
+ unless ENV['http_proxy'].nil?
29
+ @proxy_uri = URI.parse(ENV['http_proxy'])
30
+ @proxy_host = @proxy_uri.host
31
+ @proxy_port = @proxy_uri.port
32
+ @proxy_user, @proxy_pass = @proxy_uri.userinfo.split(/:/) if @proxy_uri.userinfo
33
+ end
28
34
  end
29
35
 
30
36
  def message_json(body)
@@ -40,7 +46,11 @@ class ZabbixApi
40
46
 
41
47
  def http_request(body)
42
48
  uri = URI.parse(@options[:url])
43
- http = Net::HTTP.new(uri.host, uri.port)
49
+ unless @proxy_uri.nil?
50
+ http = Net::HTTP.new(uri.host, uri.port)
51
+ else
52
+ http = Net::HTTP.Proxy(@proxy_host, @proxy_port, @proxy_user, @proxy_pass).new(uri.host, uri.port)
53
+ end
44
54
  request = Net::HTTP::Post.new(uri.request_uri)
45
55
  request.add_field('Content-Type', 'application/json-rpc')
46
56
  request.body = body
@@ -9,4 +9,7 @@ class ZabbixApi
9
9
  class HttpError < BaseError
10
10
  end
11
11
 
12
+ class SocketError < BaseError
13
+ end
14
+
12
15
  end
@@ -40,9 +40,7 @@ class ZabbixApi
40
40
  def get_id(data)
41
41
  result = @client.api_request(:method => "graph.get", :params => {:filter => {:name=> data[:name]}, :output => "extend"})
42
42
  graphid = nil
43
- result.each do |graph|
44
- graphid = graph['graphid'].to_i if graph['name'] == data[:name]
45
- end
43
+ result.each { |graph| graphid = graph['graphid'].to_i if graph['name'] == data[:name] }
46
44
  graphid
47
45
  end
48
46
 
@@ -54,7 +52,7 @@ class ZabbixApi
54
52
  def update(data)
55
53
  case @client.api_version
56
54
  when "1.2"
57
- return -1
55
+ @client.api_request(:method => "graph.update", :params => data)
58
56
  else
59
57
  result = @client.api_request(:method => "graph.update", :params => data)
60
58
  result.empty? ? nil : result['graphids'][0].to_i
@@ -24,6 +24,11 @@ class ZabbixApi
24
24
  delete(data)
25
25
  end
26
26
 
27
+ def create_or_update(data)
28
+ hostgroupid = get_id(:name => data[:name])
29
+ hostgroupid ? update(data.merge(:groupid => hostgroupid)) : create(data)
30
+ end
31
+
27
32
  def get_full_data(data)
28
33
  case @client.api_version
29
34
  when "1.2"
@@ -36,9 +41,7 @@ class ZabbixApi
36
41
  def get_id(data)
37
42
  result = get_full_data(data)
38
43
  hostgroupid = nil
39
- result.each do |hgroup|
40
- hostgroupid = hgroup['groupid'].to_i if hgroup['name'] == data[:name]
41
- end
44
+ result.each { |hgroup| hostgroupid = hgroup['groupid'].to_i if hgroup['name'] == data[:name] }
42
45
  hostgroupid
43
46
  end
44
47
 
@@ -79,9 +79,7 @@ class ZabbixApi
79
79
  def get_id(data)
80
80
  result = get_full_data(data)
81
81
  hostid = nil
82
- result.each do |host|
83
- hostid = host['hostid'].to_i if host['host'] == data[:host]
84
- end
82
+ result.each { |host| hostid = host['hostid'].to_i if host['host'] == data[:host] }
85
83
  hostid
86
84
  end
87
85
 
@@ -61,9 +61,7 @@ class ZabbixApi
61
61
  def get_id(data)
62
62
  result = get_full_data(data)
63
63
  itemid = nil
64
- result.each do |item|
65
- itemid = item['itemid'].to_i if item['name'] == data[:name]
66
- end
64
+ result.each { |item| itemid = item['itemid'].to_i if item['name'] == data[:name] }
67
65
  itemid
68
66
  end
69
67
 
@@ -6,24 +6,46 @@ class ZabbixApi
6
6
  @options = options
7
7
  end
8
8
 
9
+ # Create template
10
+ #
11
+ # * *Args* :
12
+ # - +data+ -> Hash with :host => "Template_Name" and :groups => array with hostgroup ids
13
+ # * *Returns* :
14
+ # - Nil or Integer
9
15
  def create(data)
10
16
  result = @client.api_request(:method => "template.create", :params => [data])
11
17
  result.empty? ? nil : result['templateids'][0].to_i
12
18
  end
13
19
 
20
+ # Add template
21
+ # Synonym create
14
22
  def add(data)
15
23
  create(data)
16
24
  end
17
25
 
26
+ # Delete template
27
+ #
28
+ # * *Args* :
29
+ # - +data+ -> Hash with :host => "Template_Name"
30
+ # * *Returns* :
31
+ # - Nil or Integer
18
32
  def delete(data)
19
33
  result = @client.api_request(:method => "template.delete", :params => [:templateid => data])
20
34
  result.empty? ? nil : result['templateids'][0].to_i
21
35
  end
22
36
 
37
+ # Destroy template
38
+ # Synonym delete
23
39
  def destroy(data)
24
40
  delete(data)
25
41
  end
26
42
 
43
+ # Return templateids linked with host
44
+ #
45
+ # * *Args* :
46
+ # - +data+ -> Hash with :hostids => [hostid]
47
+ # * *Returns* :
48
+ # - Array with templateids
27
49
  def get_ids_by_host(data)
28
50
  result = []
29
51
  @client.api_request(:method => "template.get", :params => data).each do |tmpl|
@@ -32,6 +54,12 @@ class ZabbixApi
32
54
  result
33
55
  end
34
56
 
57
+ # Analog Zabbix api call massAdd
58
+ #
59
+ # * *Args* :
60
+ # - +data+ -> Hash with :hosts_id => [hostid1, hostid2 ...], and :templates_id => [templateid1, templateid2 ...]
61
+ # * *Returns* :
62
+ # - True or False
35
63
  def mass_add(data)
36
64
  result = @client.api_request(
37
65
  :method => "template.massAdd",
@@ -43,6 +71,12 @@ class ZabbixApi
43
71
  result.empty? ? false : true
44
72
  end
45
73
 
74
+ # Analog Zabbix api call massRemove
75
+ #
76
+ # * *Args* :
77
+ # - +data+ -> Hash with :hosts_id => [hostid1, hostid2 ...], and :templates_id => [templateid1, templateid2 ...]
78
+ # * *Returns* :
79
+ # - True or False
46
80
  def mass_remove(data)
47
81
  result = @client.api_request(
48
82
  :method => "template.massRemove",
@@ -54,6 +88,10 @@ class ZabbixApi
54
88
  result.empty? ? false : true
55
89
  end
56
90
 
91
+ # Return all templates
92
+ #
93
+ # * *Returns* :
94
+ # - Hash with {"Template_Name1" => "templateid1", "Template_Name2" => "templateid2"}
57
95
  def all
58
96
  result = {}
59
97
  case @client.api_version
@@ -69,6 +107,12 @@ class ZabbixApi
69
107
  result
70
108
  end
71
109
 
110
+ # Return info about template
111
+ #
112
+ # * *Args* :
113
+ # - +data+ -> Hash with :host => "Template name"
114
+ # * *Returns* :
115
+ # - Hash with template info
72
116
  def get_full_data(data)
73
117
  case @client.api_version
74
118
  when "1.2"
@@ -80,12 +124,15 @@ class ZabbixApi
80
124
  end
81
125
  end
82
126
 
127
+ # Return info about template
128
+ #
129
+ # * *Args* :
130
+ # - +data+ -> Hash with :host => "Template name"
131
+ # * *Returns* :
132
+ # - Nil or Integer
83
133
  def get_id(data)
84
- result = get_full_data(data)
85
134
  templateid = nil
86
- result.each do |template|
87
- templateid = template['templateid'].to_i if template['host'] == data[:host]
88
- end
135
+ get_full_data(data).each { |template| templateid = template['templateid'].to_i if template['host'] == data[:host] }
89
136
  templateid
90
137
  end
91
138
 
@@ -26,7 +26,7 @@ class ZabbixApi
26
26
 
27
27
  def update(data)
28
28
  result = @client.api_request(:method => "trigger.update", :params => data)
29
- result.empty? ? nil : result['triggerid'][0].to_i
29
+ result.empty? ? nil : result['triggerids'][0].to_i
30
30
  end
31
31
 
32
32
  def create_or_update(data)
@@ -41,9 +41,7 @@ class ZabbixApi
41
41
  def get_id(data)
42
42
  result = get_full_data(data)
43
43
  triggerid = nil
44
- result.each do |template|
45
- triggerid = template['triggerid'].to_i if template['name'] == data[:name]
46
- end
44
+ result.each { |template| triggerid = template['triggerid'].to_i if template['name'] == data[:name] }
47
45
  triggerid
48
46
  end
49
47
 
@@ -39,9 +39,7 @@ class ZabbixApi
39
39
  def get_id(data)
40
40
  result = get_full_data(data)
41
41
  userid = nil
42
- result.each do |usr|
43
- userid = usr['userid'].to_i if usr['name'] == data[:name]
44
- end
42
+ result.each { |usr| userid = usr['userid'].to_i if usr['name'] == data[:name] }
45
43
  userid
46
44
  end
47
45
 
@@ -1,3 +1,3 @@
1
1
  class ZabbixApi
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.3"
3
3
  end
@@ -45,6 +45,10 @@ describe ZabbixApi, "test_api" do
45
45
  zbx.hostgroups.get_id(:name => "#{hostgroup}______").should be_kind_of(NilClass)
46
46
  end
47
47
 
48
+ it "HOSTGROUP: Create or update" do
49
+ zbx.hostgroups.create_or_update(:name => hostgroup).should be_kind_of(Integer)
50
+ end
51
+
48
52
  it "TEMPLATE: Create" do
49
53
  zbx.templates.create(
50
54
  :host => template,
@@ -208,7 +212,7 @@ describe ZabbixApi, "test_api" do
208
212
  ).should be_kind_of(Integer)
209
213
  end
210
214
 
211
- it "GRAPH: Find ugititems" do
215
+ it "GRAPH: Find gititems" do
212
216
  zbx.graphs.get_items( zbx.graphs.get_id(:name => graph) )
213
217
  end
214
218
 
@@ -169,7 +169,7 @@ describe ZabbixApi, "test_api" do
169
169
  ).should be_kind_of(TrueClass)
170
170
  end
171
171
 
172
- it "TEMPLATE: Get all" do
172
+ it "TEMPLATE: Get all" do
173
173
  zbx.templates.all.should be_kind_of(Hash)
174
174
  end
175
175
 
@@ -189,12 +189,12 @@ describe ZabbixApi, "test_api" do
189
189
  zbx.triggers.get_id(:description => trigger).should be_kind_of(Integer)
190
190
  end
191
191
 
192
- it "GRAPH: Create" do
192
+ it "GRAPH: Create" do
193
193
  gitems = {
194
- :itemid => zbx.items.get_id(:description => item),
195
- :calc_fnc => "2",
196
- :type => "0",
197
- :periods_cnt => "5"
194
+ :itemid => zbx.items.get_id(:description => item),
195
+ :calc_fnc => "2",
196
+ :type => "0",
197
+ :periods_cnt => "5"
198
198
  }
199
199
  zbx.graphs.create(
200
200
  :gitems => [gitems],
@@ -205,7 +205,7 @@ describe ZabbixApi, "test_api" do
205
205
  ).should be_kind_of(Integer)
206
206
  end
207
207
 
208
- it "GRAPH: Find ugititems" do
208
+ it "GRAPH: Find gititems" do
209
209
  zbx.graphs.get_items( zbx.graphs.get_id(:name => graph) )
210
210
  end
211
211
 
@@ -218,25 +218,25 @@ describe ZabbixApi, "test_api" do
218
218
  :graphid => zbx.graphs.get_id(
219
219
  :name => graph,
220
220
  :hostid => zbx.hosts.get_id(:host => host)
221
- ),
221
+ ),
222
222
  :ymax_type => 1
223
223
  ).should be_kind_of(Integer)
224
224
  end
225
225
 
226
226
  it "GRAPH: Create or Update" do
227
227
  gitems = {
228
- :itemid => zbx.items.get_id(:description => item),
228
+ :itemid => zbx.items.get_id(:description => item),
229
229
  :calc_fnc => "3",
230
230
  :type => "0",
231
231
  :periods_cnt => "5"
232
232
  }
233
- zbx.graphs.create_or_update(
234
- :gitems => [gitems],
235
- :show_triggers => "1",
236
- :name => graph,
237
- :width => "900",
238
- :height => "200"
239
- ).should be_kind_of(Integer)
233
+ zbx.graphs.create_or_update(
234
+ :gitems => [gitems],
235
+ :show_triggers => "1",
236
+ :name => graph,
237
+ :width => "900",
238
+ :height => "200"
239
+ ).should be_kind_of(Integer)
240
240
  end
241
241
 
242
242
  it "GRAPH: Delete" do
@@ -298,9 +298,9 @@ describe ZabbixApi, "test_api" do
298
298
 
299
299
  it "QUERY" do
300
300
  zbx.query(
301
- :method => "apiinfo.version",
301
+ :method => "apiinfo.version",
302
302
  :params => {}
303
303
  ).should be_kind_of(String)
304
304
  end
305
-
306
- end
305
+
306
+ end
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.homepage = "https://github.com/vadv/zabbixapi"
11
11
  s.summary = %q{Realization for Zabbix API.}
12
12
  s.description = %q{Allows you to work with zabbix api from ruby.}
13
- s.licenses = ["MIT"]
13
+ s.licenses = %w(MIT)
14
14
 
15
15
  s.rubyforge_project = "zabbixapi"
16
16
 
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.4.2
4
+ version: 0.4.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-11-20 00:00:00.000000000 Z
13
+ date: 2012-11-22 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: Allows you to work with zabbix api from ruby.
16
16
  email:
@@ -57,7 +57,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
57
57
  version: '0'
58
58
  segments:
59
59
  - 0
60
- hash: 4393999547783440369
60
+ hash: -2337601613432576299
61
61
  required_rubygems_version: !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
@@ -70,4 +70,6 @@ rubygems_version: 1.8.24
70
70
  signing_key:
71
71
  specification_version: 3
72
72
  summary: Realization for Zabbix API.
73
- test_files: []
73
+ test_files:
74
+ - spec/localhost.rb
75
+ - spec/run.rb