zabbixapi 0.1.6.2 → 0.1.6.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/README.rdoc +3 -1
- data/lib/zabbixapi/base.rb +8 -6
- data/lib/zabbixapi/graph.rb +1 -1
- data/lib/zabbixapi/group.rb +12 -11
- data/lib/zabbixapi/host.rb +11 -9
- data/lib/zabbixapi/item.rb +1 -6
- data/lib/zabbixapi/mediatype.rb +9 -8
- data/lib/zabbixapi/screen.rb +2 -2
- data/lib/zabbixapi/template.rb +2 -2
- data/lib/zabbixapi/usermacro.rb +0 -13
- data/spec/localhost.rb +129 -0
- data/zabbixapi.gemspec +1 -1
- metadata +3 -3
- data/spec/item.rb +0 -74
data/README.rdoc
CHANGED
@@ -20,7 +20,7 @@ You can:
|
|
20
20
|
"dns" => 'my.example.com',
|
21
21
|
"host" => 'my.example.com',
|
22
22
|
"useip" => 1,
|
23
|
-
"groups" => [get_group_id('some_group')]
|
23
|
+
"groups" => [zbx.get_group_id('some_group')]
|
24
24
|
}
|
25
25
|
if zbx.create_host(host_options)
|
26
26
|
puts zbx.get_host_id('my.example.com')
|
@@ -33,6 +33,8 @@ You can:
|
|
33
33
|
puts zbx.get_group_id('some_group')
|
34
34
|
end
|
35
35
|
|
36
|
+
More see in spec please...
|
37
|
+
|
36
38
|
== Dependencies
|
37
39
|
|
38
40
|
* net/http
|
data/lib/zabbixapi/base.rb
CHANGED
@@ -55,17 +55,17 @@ module Zabbix
|
|
55
55
|
request.body=(message_json)
|
56
56
|
|
57
57
|
begin
|
58
|
-
puts "[ZBXAPI] : INFO : Do request. Body => #{request.body}" if @debug
|
58
|
+
puts "[ZBXAPI] : #{Time.now()} : INFO : Do request. Body => #{request.body}" if @debug
|
59
59
|
response = http.request(request)
|
60
60
|
rescue ::SocketError => e
|
61
|
-
puts "[ZBXAPI] : ERROR : SocketError => #{e.message}" if @debug
|
61
|
+
puts "[ZBXAPI] : #{Time.now()} : ERROR : SocketError => #{e.message}" if @debug
|
62
62
|
raise Zabbix::SocketError.new(e.message)
|
63
63
|
end
|
64
64
|
|
65
65
|
if @debug
|
66
|
-
puts "[ZBXAPI] : INFO : Response start"
|
67
|
-
puts response
|
68
|
-
puts "[ZBXAPI] : INFO : Response end"
|
66
|
+
puts "[ZBXAPI] : #{Time.now()} : INFO : Response start"
|
67
|
+
puts "[ZBXAPI] : #{Time.now()} : INFO : Response body: #{response.inspect}"
|
68
|
+
puts "[ZBXAPI] : #{Time.now()} : INFO : Response end"
|
69
69
|
end
|
70
70
|
|
71
71
|
if response.code != "200"
|
@@ -75,7 +75,7 @@ module Zabbix
|
|
75
75
|
response_body_hash = JSON.parse(response.body)
|
76
76
|
|
77
77
|
if @debug
|
78
|
-
puts "[ZBXAPI] : INFO : Response body"
|
78
|
+
puts "[ZBXAPI] : #{Time.now()} : INFO : Response body"
|
79
79
|
puts response_body_hash.inspect
|
80
80
|
end
|
81
81
|
|
@@ -90,6 +90,8 @@ module Zabbix
|
|
90
90
|
case error_code.to_s
|
91
91
|
when '-32602'
|
92
92
|
raise Zabbix::AlreadyExist.new(e_message)
|
93
|
+
when '-32500'
|
94
|
+
raise Zabbix::ArgumentError.new(e_message)
|
93
95
|
else
|
94
96
|
raise Zabbix::ResponseError.new(e_message)
|
95
97
|
end
|
data/lib/zabbixapi/graph.rb
CHANGED
data/lib/zabbixapi/group.rb
CHANGED
@@ -11,7 +11,7 @@ module Zabbix
|
|
11
11
|
}
|
12
12
|
}
|
13
13
|
response = send_request(message)
|
14
|
-
response.empty? ? nil : response[0]['groupid']
|
14
|
+
response.empty? ? nil : response[0]['groupid'].to_i
|
15
15
|
end
|
16
16
|
|
17
17
|
def group_exist?(pattern)
|
@@ -31,15 +31,16 @@ module Zabbix
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def delete_group(groupname)
|
34
|
-
group_id = get_group_id(groupname)
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
34
|
+
if group_id = get_group_id(groupname)
|
35
|
+
message = {
|
36
|
+
'method' => 'hostgroup.delete',
|
37
|
+
'params' => {
|
38
|
+
'groupid' => group_id
|
39
|
+
}
|
40
|
+
}
|
41
|
+
response = send_request(message)
|
42
|
+
response ? response['groupids'][0].to_i : nil
|
43
|
+
end
|
43
44
|
end
|
44
45
|
|
45
46
|
def add_host_to_group(host_id, group_id)
|
@@ -51,7 +52,7 @@ module Zabbix
|
|
51
52
|
}
|
52
53
|
}
|
53
54
|
response = send_request(message)
|
54
|
-
response
|
55
|
+
response ? response[0]['groupid'].to_i : nil
|
55
56
|
end
|
56
57
|
|
57
58
|
end
|
data/lib/zabbixapi/host.rb
CHANGED
@@ -9,7 +9,7 @@ module Zabbix
|
|
9
9
|
'params' => host
|
10
10
|
}
|
11
11
|
responce = send_request(message)
|
12
|
-
responce.empty? ? nil :
|
12
|
+
responce.empty? ? nil : response['hostids'][0].to_i
|
13
13
|
end
|
14
14
|
|
15
15
|
def add_host(host_options)
|
@@ -54,14 +54,16 @@ module Zabbix
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def delete_host(hostname)
|
57
|
-
host_id = get_host_id(hostname)
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
57
|
+
if host_id = get_host_id(hostname)
|
58
|
+
message = {
|
59
|
+
'method' => 'host.delete',
|
60
|
+
'params' => {
|
61
|
+
'hostid' => host_id
|
62
|
+
}
|
63
|
+
}
|
64
|
+
response = send_request(message)
|
65
|
+
response.empty? ? nil : response['hostids'][0].to_i
|
66
|
+
end
|
65
67
|
end
|
66
68
|
|
67
69
|
end
|
data/lib/zabbixapi/item.rb
CHANGED
@@ -82,12 +82,7 @@ module Zabbix
|
|
82
82
|
|
83
83
|
def item_exist?(host_id, item_name)
|
84
84
|
item_id = get_item_id(host_id, item_name)
|
85
|
-
|
86
|
-
result = true
|
87
|
-
else
|
88
|
-
result = false
|
89
|
-
end
|
90
|
-
return result
|
85
|
+
item_id ? true : false
|
91
86
|
end
|
92
87
|
|
93
88
|
def update_item(item_id, options)
|
data/lib/zabbixapi/mediatype.rb
CHANGED
@@ -37,14 +37,15 @@ module Zabbix
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def delete_mediatype(mediatype)
|
40
|
-
mediatype_id = get_mediatype_id(mediatype)
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
40
|
+
if mediatype_id = get_mediatype_id(mediatype)
|
41
|
+
message = {
|
42
|
+
'method' => 'mediatype.delete',
|
43
|
+
'params' =>
|
44
|
+
[mediatype_id]
|
45
|
+
}
|
46
|
+
response = send_request(message)
|
47
|
+
response.empty? ? nil : response['mediatypeids'][0]
|
48
|
+
end
|
48
49
|
end
|
49
50
|
|
50
51
|
end
|
data/lib/zabbixapi/screen.rb
CHANGED
@@ -59,7 +59,7 @@ module Zabbix
|
|
59
59
|
}
|
60
60
|
}
|
61
61
|
response = send_request(message)
|
62
|
-
response.empty? ?
|
62
|
+
response.empty? ? nil : response[0]['screenids'].to_i
|
63
63
|
end
|
64
64
|
|
65
65
|
def del_all_graphs_from_screen(screen_id)
|
@@ -70,7 +70,7 @@ module Zabbix
|
|
70
70
|
}
|
71
71
|
}
|
72
72
|
response = send_request(message)
|
73
|
-
response ? response : nil
|
73
|
+
response ? response[0]['screenids'].to_i : nil
|
74
74
|
end
|
75
75
|
|
76
76
|
def add_graph_to_screen(screen_id, graph_id, x, y)
|
data/lib/zabbixapi/template.rb
CHANGED
@@ -86,7 +86,7 @@ module Zabbix
|
|
86
86
|
}
|
87
87
|
}
|
88
88
|
response = send_request(message)
|
89
|
-
|
89
|
+
response.empty? ? nil : response['templateid'][0].to_i
|
90
90
|
end
|
91
91
|
|
92
92
|
def unlink_templates_from_hosts(templates_id, hosts_id)
|
@@ -101,7 +101,7 @@ module Zabbix
|
|
101
101
|
}
|
102
102
|
}
|
103
103
|
response = send_request(message)
|
104
|
-
|
104
|
+
response.empty? ? nil : response['templateids'][0].to_i
|
105
105
|
end
|
106
106
|
|
107
107
|
end
|
data/lib/zabbixapi/usermacro.rb
CHANGED
@@ -42,18 +42,5 @@ module Zabbix
|
|
42
42
|
return result
|
43
43
|
end
|
44
44
|
|
45
|
-
def set_macro_value(host_id, macro_name, macro_value)
|
46
|
-
message = {
|
47
|
-
'method' => 'usermacro.updateValue',
|
48
|
-
'params' => {
|
49
|
-
'hostid' => host_id,
|
50
|
-
'macro' => macro_name,
|
51
|
-
'value' => macro_value
|
52
|
-
}
|
53
|
-
}
|
54
|
-
response = send_request(message)
|
55
|
-
return true
|
56
|
-
end
|
57
|
-
|
58
45
|
end
|
59
46
|
end
|
data/spec/localhost.rb
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
require 'zabbixapi'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
# settings
|
5
|
+
api_url = 'http://zabbix.local/api_jsonrpc.php'
|
6
|
+
api_login = 'Admin'
|
7
|
+
api_password = 'zabbix'
|
8
|
+
|
9
|
+
|
10
|
+
zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
|
11
|
+
#zbx.debug = true
|
12
|
+
|
13
|
+
# 01. Create group
|
14
|
+
describe Zabbix::ZabbixApi, "create_group" do
|
15
|
+
it "Create some group" do
|
16
|
+
result = zbx.add_group('some_group')
|
17
|
+
result.should be_kind_of(Integer)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# 02. Get group_id
|
22
|
+
describe Zabbix::ZabbixApi, "get_group_id" do
|
23
|
+
it "Get group_id" do
|
24
|
+
result = zbx.get_group_id('some_group')
|
25
|
+
result.should be_kind_of(Integer)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# 03. Get unknown group_id
|
30
|
+
describe Zabbix::ZabbixApi, "get_group_id" do
|
31
|
+
it "Get unknown group" do
|
32
|
+
result = zbx.get_group_id('___some_group')
|
33
|
+
result.should be_nil
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# 04. Create host
|
38
|
+
host_options = {
|
39
|
+
"ip" => '127.0.0.1',
|
40
|
+
"dns" => 'my.example.com',
|
41
|
+
"host" => 'my.example.com',
|
42
|
+
"useip" => 1,
|
43
|
+
"groups" => [1]
|
44
|
+
}
|
45
|
+
describe Zabbix::ZabbixApi, "create_host" do
|
46
|
+
it "Create host" do
|
47
|
+
result = zbx.add_host(host_options)
|
48
|
+
result.should be_kind_of(Integer)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# 05. Get host
|
53
|
+
describe Zabbix::ZabbixApi, "get_host" do
|
54
|
+
it "Get host by name" do
|
55
|
+
result = zbx.get_host_id('my.example.com')
|
56
|
+
result.should be_kind_of(Integer)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# 06. Get unknown host
|
61
|
+
describe Zabbix::ZabbixApi, "get_host" do
|
62
|
+
it "Get unknown host by name" do
|
63
|
+
result = zbx.get_host_id('___my.example.com')
|
64
|
+
result.should be_nil
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# 07. Delete host
|
69
|
+
describe Zabbix::ZabbixApi, "delete_host" do
|
70
|
+
it "Delete host" do
|
71
|
+
result = zbx.delete_host('my.example.com')
|
72
|
+
result.should be_kind_of(Integer)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# 08. Delete unknown host
|
77
|
+
describe Zabbix::ZabbixApi, "delete_unknown_host" do
|
78
|
+
it "Delete unknown host" do
|
79
|
+
result = zbx.delete_host('__my.example.com')
|
80
|
+
result.should be_nil
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
# 09. Delete group
|
85
|
+
describe Zabbix::ZabbixApi, "delete_group" do
|
86
|
+
it "Delete some group" do
|
87
|
+
result = zbx.delete_group('some_group')
|
88
|
+
result.should be_kind_of(Integer)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# 10. Delete unknown group
|
93
|
+
describe Zabbix::ZabbixApi, "delete_unknown_group" do
|
94
|
+
it "Delete unknown group" do
|
95
|
+
result = zbx.delete_group('___some_group')
|
96
|
+
result.should be_nil
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
# 11. Mediatype create
|
101
|
+
mediatype_options = {
|
102
|
+
'type' => '0', #email
|
103
|
+
'description' => 'example_mediatype',
|
104
|
+
'smtp_server' => 'test.company.com',
|
105
|
+
'smtp_helo' => 'test.company.com',
|
106
|
+
'smtp_email' => 'test@test.company.com',
|
107
|
+
}
|
108
|
+
describe Zabbix::ZabbixApi, "create_mediatype" do
|
109
|
+
it "Create mediatype" do
|
110
|
+
result = zbx.add_mediatype(mediatype_options)
|
111
|
+
result.should be_kind_of(Integer)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
# 12. Mediatype unknown delete
|
116
|
+
describe Zabbix::ZabbixApi, "delete_unknown_mediatype" do
|
117
|
+
it "Delete unknown mediatype" do
|
118
|
+
result = zbx.delete_mediatype('__example_mediatype')
|
119
|
+
result.should be_nil
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
# 13. Mediatype delete
|
124
|
+
describe Zabbix::ZabbixApi, "delete_mediatype" do
|
125
|
+
it "Delete mediatype" do
|
126
|
+
result = zbx.delete_mediatype('example_mediatype')
|
127
|
+
result.should be_kind_of(Integer)
|
128
|
+
end
|
129
|
+
end
|
data/zabbixapi.gemspec
CHANGED
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.1.6.
|
4
|
+
version: 0.1.6.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-09 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Ruby module for work with zabbix api v1.8.
|
15
15
|
email: vadv.mkn@gmail.com
|
@@ -30,7 +30,7 @@ files:
|
|
30
30
|
- lib/zabbixapi/template.rb
|
31
31
|
- lib/zabbixapi/trigger.rb
|
32
32
|
- lib/zabbixapi/usermacro.rb
|
33
|
-
- spec/
|
33
|
+
- spec/localhost.rb
|
34
34
|
- zabbixapi.gemspec
|
35
35
|
- README.rdoc
|
36
36
|
- examples/config.yml
|
data/spec/item.rb
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
require 'zabbixapi'
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
# settings
|
5
|
-
api_url = 'http://zabbix.local/api_jsonrpc.php'
|
6
|
-
api_login = 'Admin'
|
7
|
-
api_password = 'zabbix'
|
8
|
-
|
9
|
-
|
10
|
-
zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
|
11
|
-
#zbx.debug = true
|
12
|
-
|
13
|
-
# 01. Create group
|
14
|
-
describe Zabbix::ZabbixApi, "create_group" do
|
15
|
-
it "Create some group" do
|
16
|
-
result = zbx.add_group('some_group')
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
# 02. Create host
|
21
|
-
host_options = {
|
22
|
-
"ip" => '127.0.0.1',
|
23
|
-
"dns" => 'my.example.com',
|
24
|
-
"host" => 'my.example.com',
|
25
|
-
"useip" => 1,
|
26
|
-
"groups" => ['some_group']
|
27
|
-
}
|
28
|
-
describe Zabbix::ZabbixApi, "create_host" do
|
29
|
-
it "Create host" do
|
30
|
-
result = zbx.add_host(host_options)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
# 03. Get host
|
35
|
-
describe Zabbix::ZabbixApi, "get_host" do
|
36
|
-
it "Get host by name" do
|
37
|
-
result = zbx.get_host_id('my.example.com')
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
# 04. Delete group
|
42
|
-
describe Zabbix::ZabbixApi, "delete_group" do
|
43
|
-
it "Delete some group" do
|
44
|
-
result = zbx.delete_group(zbx.get_group_id'some_group')
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
# 05. Delete host
|
49
|
-
describe Zabbix::ZabbixApi, "delete_host" do
|
50
|
-
it "Delete host" do
|
51
|
-
result = zbx.delete_host('my.example.com')
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
# 06. Mediatype create
|
56
|
-
mediatype_options = {
|
57
|
-
'type' => '0',
|
58
|
-
'description' => 'example_mediatype',
|
59
|
-
'smtp_server' => 'test.company.com',
|
60
|
-
'smtp_helo' => 'test.company.com',
|
61
|
-
'smtp_email' => 'test@test.company.com',
|
62
|
-
}
|
63
|
-
describe Zabbix::ZabbixApi, "create_mediatype" do
|
64
|
-
it "Create mediatype" do
|
65
|
-
result = zbx.add_mediatype(mediatype_options)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
# 07. Mediatype delete
|
70
|
-
describe Zabbix::ZabbixApi, "create_mediatype" do
|
71
|
-
it "Delete mediatype" do
|
72
|
-
result = zbx.delete_mediatype('example_mediatype')
|
73
|
-
end
|
74
|
-
end
|