iteh-zabbixapi 0.2.2 → 0.2.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/lib/zabbixapi/group.rb +4 -31
- data/lib/zabbixapi/host.rb +2 -0
- data/lib/zabbixapi/template.rb +1 -9
- data/lib/zabbixapi/version.rb +1 -1
- data/spec/zabbixapi_spec.rb +59 -0
- metadata +4 -4
data/lib/zabbixapi/group.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
module Zabbix
|
2
|
-
|
3
2
|
class ZabbixApi
|
4
3
|
def get_group_id(pattern)
|
5
4
|
|
@@ -13,25 +12,12 @@ module Zabbix
|
|
13
12
|
}
|
14
13
|
|
15
14
|
response = send_request(message)
|
16
|
-
|
17
|
-
if not ( response.empty? ) then
|
18
|
-
result = response[0]['groupid']
|
19
|
-
else
|
20
|
-
result = nil
|
21
|
-
end
|
22
|
-
|
23
|
-
return result
|
15
|
+
response.empty? ? nil : response[0]['groupid']
|
24
16
|
end
|
25
17
|
|
26
18
|
def group_exist?(pattern)
|
27
|
-
|
28
19
|
group_id = get_groups_id(pattern)
|
29
|
-
|
30
|
-
if ( group_id ) then
|
31
|
-
return true
|
32
|
-
else
|
33
|
-
return false
|
34
|
-
end
|
20
|
+
group_id ? true : false
|
35
21
|
end
|
36
22
|
|
37
23
|
def add_group(groupname)
|
@@ -44,14 +30,7 @@ module Zabbix
|
|
44
30
|
}
|
45
31
|
|
46
32
|
response = send_request(message)
|
47
|
-
|
48
|
-
if ( response ) then
|
49
|
-
result = response['groupids']
|
50
|
-
else
|
51
|
-
result = nil
|
52
|
-
end
|
53
|
-
|
54
|
-
return result
|
33
|
+
response ? response['groupids'] : nil
|
55
34
|
end
|
56
35
|
|
57
36
|
def add_host_to_group(host_id, group_id)
|
@@ -66,13 +45,7 @@ module Zabbix
|
|
66
45
|
|
67
46
|
response = send_request(message)
|
68
47
|
|
69
|
-
|
70
|
-
result = true
|
71
|
-
else
|
72
|
-
result = false
|
73
|
-
end
|
74
|
-
|
75
|
-
return result
|
48
|
+
response.empty? ? false : true
|
76
49
|
end
|
77
50
|
end
|
78
51
|
end
|
data/lib/zabbixapi/host.rb
CHANGED
@@ -12,6 +12,7 @@ module Zabbix
|
|
12
12
|
'ip' => '0.0.0.0',
|
13
13
|
'proxy_hostid' => 0,
|
14
14
|
'groups' => [],
|
15
|
+
'templates' => [],
|
15
16
|
'useipmi' => 0,
|
16
17
|
'ipmi_ip' => '',
|
17
18
|
'ipmi_port' => 623,
|
@@ -22,6 +23,7 @@ module Zabbix
|
|
22
23
|
}
|
23
24
|
|
24
25
|
host_options['groups'].map! { |group_id| {'groupid' => group_id} }
|
26
|
+
host_options['templates'].map! { |template_id| {'templateid' => template_id} }
|
25
27
|
|
26
28
|
host = merge_opt(host_default, host_options)
|
27
29
|
|
data/lib/zabbixapi/template.rb
CHANGED
@@ -89,15 +89,7 @@ module Zabbix
|
|
89
89
|
}
|
90
90
|
|
91
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
|
-
|
92
|
+
(response.is_a?(Array) && response.first.is_a?(Hash)) ? response.first["templateid"] : nil
|
101
93
|
end
|
102
94
|
|
103
95
|
def link_templates_with_hosts(templates_id, hosts_id)
|
data/lib/zabbixapi/version.rb
CHANGED
data/spec/zabbixapi_spec.rb
CHANGED
@@ -92,6 +92,65 @@ describe Zabbix::ZabbixApi do
|
|
92
92
|
host.should be_nil
|
93
93
|
end
|
94
94
|
|
95
|
+
it "should add a host with groups and templates" do
|
96
|
+
FakeWeb.allow_net_connect = true
|
97
|
+
|
98
|
+
new_host = {
|
99
|
+
"host" => "new host",
|
100
|
+
"ip" => "10.10.10.10",
|
101
|
+
"port" => "10055",
|
102
|
+
"useip" => 1,
|
103
|
+
"dns" => "myhost.com",
|
104
|
+
"groups" => [2],
|
105
|
+
"templates" => [10001]
|
106
|
+
}
|
107
|
+
zbx = Zabbix::ZabbixApi.new(@api_url, @api_login, @api_password)
|
108
|
+
|
109
|
+
new_host_id = zbx.add_host(new_host)
|
110
|
+
new_host_id.should_not be_nil
|
111
|
+
|
112
|
+
created_host = zbx.get_host({"templated_hosts" => 1, "output" => "extend", "filter" => {"dns" => new_host["dns"]}})
|
113
|
+
ap created_host
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
117
|
+
|
118
|
+
context 'get template' do
|
119
|
+
it "should get a template" do
|
120
|
+
FakeWeb.allow_net_connect = true
|
121
|
+
|
122
|
+
zbx = Zabbix::ZabbixApi.new(@api_url, @api_login, @api_password)
|
123
|
+
template_id = zbx.get_template_id("Template_Linux")
|
124
|
+
template_id.should eq("10001")
|
125
|
+
end
|
126
|
+
|
127
|
+
it "should return nil for no template found" do
|
128
|
+
FakeWeb.allow_net_connect = true
|
129
|
+
|
130
|
+
zbx = Zabbix::ZabbixApi.new(@api_url, @api_login, @api_password)
|
131
|
+
template_id = zbx.get_template_id("not there")
|
132
|
+
template_id.should be_nil
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
136
|
+
|
137
|
+
context 'get group' do
|
138
|
+
it "should get a group" do
|
139
|
+
FakeWeb.allow_net_connect = true
|
140
|
+
|
141
|
+
zbx = Zabbix::ZabbixApi.new(@api_url, @api_login, @api_password)
|
142
|
+
group_id = zbx.get_group_id("Linux servers")
|
143
|
+
group_id.should eq("2")
|
144
|
+
end
|
145
|
+
|
146
|
+
it "should return nil for no group found" do
|
147
|
+
FakeWeb.allow_net_connect = true
|
148
|
+
|
149
|
+
zbx = Zabbix::ZabbixApi.new(@api_url, @api_login, @api_password)
|
150
|
+
group_id = zbx.get_group_id("not there")
|
151
|
+
group_id.should be_nil
|
152
|
+
end
|
153
|
+
|
95
154
|
end
|
96
155
|
|
97
156
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iteh-zabbixapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 3
|
10
|
+
version: 0.2.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Eduard Snesarev
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-06-
|
19
|
+
date: 2011-06-25 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|