zapix 0.0.7 → 0.0.8
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/zapix/proxies/applications.rb +25 -0
- data/lib/zapix/proxies/scenarios.rb +29 -0
- data/lib/zapix/version.rb +1 -1
- data/lib/zapix.rb +8 -0
- data/spec/zapix_specs.rb +80 -2
- metadata +6 -4
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative 'basic'
|
2
|
+
|
3
|
+
class Applications < Basic
|
4
|
+
|
5
|
+
def create(options)
|
6
|
+
@client.application_create(options) unless exists?(options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def exists?(options)
|
10
|
+
@client.application_exists(options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def get_id(options)
|
14
|
+
if exists?(options)
|
15
|
+
@client.application_get({
|
16
|
+
'filter' => {'name' => options['name'],
|
17
|
+
'hostid' => options['hostid']}}).first['applicationid']
|
18
|
+
else
|
19
|
+
raise NonExistingApplication, "Application #{options['name']} does not exist !"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class NonExistingApplication < StandardError; end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require_relative 'basic'
|
2
|
+
|
3
|
+
class Scenarios < Basic
|
4
|
+
def create(options)
|
5
|
+
@client.webcheck_create(options) unless exists?(options)
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_id(options)
|
9
|
+
@client.webcheck_get({
|
10
|
+
'filter' => {'name' => options['name'],
|
11
|
+
'hostid' => options['hostid']}})
|
12
|
+
end
|
13
|
+
|
14
|
+
def delete(options)
|
15
|
+
@client.webcheck_delete(options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def exists?(options)
|
19
|
+
result = @client.webcheck_get({
|
20
|
+
'countOutput' => true,
|
21
|
+
'filter' => {'name' => options['name'],
|
22
|
+
'hostid' => options['hostid']}})
|
23
|
+
if result.to_i >= 1
|
24
|
+
true
|
25
|
+
else
|
26
|
+
false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/zapix/version.rb
CHANGED
data/lib/zapix.rb
CHANGED
data/spec/zapix_specs.rb
CHANGED
@@ -12,8 +12,9 @@ another_hostgroup = 'anotherhostgroup'
|
|
12
12
|
hostgroup_with_hosts = 'withhosts'
|
13
13
|
template_1 = 'Template OS Linux'
|
14
14
|
template_2 = 'Template App MySQL'
|
15
|
-
application = '
|
15
|
+
application = 'web scenarios'
|
16
16
|
host = 'hostname'
|
17
|
+
scenario = 'scenario'
|
17
18
|
|
18
19
|
describe ZabbixAPI do
|
19
20
|
|
@@ -87,7 +88,7 @@ describe ZabbixAPI do
|
|
87
88
|
|
88
89
|
end
|
89
90
|
|
90
|
-
context 'complex hostgroup
|
91
|
+
context 'complex hostgroup' do
|
91
92
|
before(:each) do
|
92
93
|
zrc.hostgroups.create(hostgroup_with_hosts)
|
93
94
|
hostgroup_id = zrc.hostgroups.get_id(hostgroup_with_hosts)
|
@@ -98,6 +99,20 @@ describe ZabbixAPI do
|
|
98
99
|
example_host.add_group_ids(hostgroup_id)
|
99
100
|
example_host.add_template_ids(zrc.templates.get_id(template_1), zrc.templates.get_id(template_2))
|
100
101
|
zrc.hosts.create_or_update(example_host.to_hash)
|
102
|
+
|
103
|
+
# create application for the host
|
104
|
+
application_options = {}
|
105
|
+
application_options['name'] = application
|
106
|
+
application_options['hostid'] = zrc.hosts.get_id(host)
|
107
|
+
zrc.applications.create(application_options)
|
108
|
+
|
109
|
+
# creates web scenarios for host
|
110
|
+
webcheck_options = {}
|
111
|
+
webcheck_options['hostid'] = zrc.hosts.get_id(host)
|
112
|
+
webcheck_options['name'] = scenario
|
113
|
+
webcheck_options['applicationid'] = zrc.applications.get_id(application_options)
|
114
|
+
webcheck_options['steps'] = [{'name' => 'Homepage', 'url' => 'm.test.de', 'status_codes' => 200, 'no' => 1}]
|
115
|
+
zrc.scenarios.create(webcheck_options)
|
101
116
|
end
|
102
117
|
|
103
118
|
after(:each) do
|
@@ -169,6 +184,69 @@ describe ZabbixAPI do
|
|
169
184
|
options['macros'] = [{'macro' => '{$TESTMACRO}', 'value' => 'this is only a test macro'}]
|
170
185
|
zrc.hosts.update_macros(options)
|
171
186
|
end
|
187
|
+
|
188
|
+
it 'returns false if an application does not exist' do
|
189
|
+
options = {}
|
190
|
+
options['name'] = 'nonexisting'
|
191
|
+
options['hostid'] = zrc.hosts.get_id(host)
|
192
|
+
zrc.applications.exists?(options).should be_false
|
193
|
+
end
|
194
|
+
|
195
|
+
it 'returns true if an application exists' do
|
196
|
+
options = {}
|
197
|
+
options['name'] = application
|
198
|
+
options['hostid'] = zrc.hosts.get_id(host)
|
199
|
+
zrc.applications.exists?(options).should be_true
|
200
|
+
end
|
201
|
+
|
202
|
+
it 'get an application id by application name and host' do
|
203
|
+
options = {}
|
204
|
+
options['name'] = application
|
205
|
+
options['hostid'] = zrc.hosts.get_id(host)
|
206
|
+
result = zrc.applications.get_id(options)
|
207
|
+
(result.to_i).should >= 0
|
208
|
+
end
|
209
|
+
|
210
|
+
it 'throws exception on non existing application' do
|
211
|
+
options = {}
|
212
|
+
options['name'] = "nonexisting"
|
213
|
+
options['hostid'] = zrc.hosts.get_id(host)
|
214
|
+
expect { zrc.applications.get_id(options) }.to raise_error(Applications::NonExistingApplication)
|
215
|
+
end
|
216
|
+
|
217
|
+
it 'deletes an applications for host' do
|
218
|
+
pending 'Not implemented'
|
219
|
+
end
|
220
|
+
|
221
|
+
it 'returns true if web scenarios exists' do
|
222
|
+
options = {}
|
223
|
+
options['name'] = scenario
|
224
|
+
options['hostid'] = zrc.hosts.get_id(host)
|
225
|
+
zrc.scenarios.exists?(options).should be_true
|
226
|
+
end
|
227
|
+
|
228
|
+
it 'gets the id of a web scenario' do
|
229
|
+
options = {}
|
230
|
+
options['name'] = scenario
|
231
|
+
options['hostid'] = zrc.hosts.get_id(host)
|
232
|
+
zrc.scenarios.exists?(options).should be_true
|
233
|
+
zrc.scenarios.get_id(options)
|
234
|
+
end
|
235
|
+
|
236
|
+
it 'returns false if a web scenario does not exist' do
|
237
|
+
options = {}
|
238
|
+
options['name'] = "nonexisting"
|
239
|
+
options['hostid'] = zrc.hosts.get_id(host)
|
240
|
+
zrc.scenarios.exists?(options).should be_false
|
241
|
+
end
|
242
|
+
|
243
|
+
it 'deletes a web scenario' do
|
244
|
+
options = {}
|
245
|
+
options['name'] = scenario
|
246
|
+
options['hostid'] = zrc.hosts.get_id(host)
|
247
|
+
zrc.scenarios.delete(options)
|
248
|
+
zrc.scenarios.exists?(options).should be_false
|
249
|
+
end
|
172
250
|
end
|
173
251
|
|
174
252
|
def create_interface
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zapix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
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: 2013-
|
12
|
+
date: 2013-07-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -105,9 +105,11 @@ files:
|
|
105
105
|
- README.md
|
106
106
|
- Rakefile
|
107
107
|
- lib/zapix.rb
|
108
|
+
- lib/zapix/proxies/applications.rb
|
108
109
|
- lib/zapix/proxies/basic.rb
|
109
110
|
- lib/zapix/proxies/hostgroups.rb
|
110
111
|
- lib/zapix/proxies/hosts.rb
|
112
|
+
- lib/zapix/proxies/scenarios.rb
|
111
113
|
- lib/zapix/proxies/templates.rb
|
112
114
|
- lib/zapix/version.rb
|
113
115
|
- lib/zapix/zabbix_classes/host.rb
|
@@ -131,7 +133,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
131
133
|
version: '0'
|
132
134
|
segments:
|
133
135
|
- 0
|
134
|
-
hash:
|
136
|
+
hash: 298514097946572949
|
135
137
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
138
|
none: false
|
137
139
|
requirements:
|
@@ -140,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
142
|
version: '0'
|
141
143
|
segments:
|
142
144
|
- 0
|
143
|
-
hash:
|
145
|
+
hash: 298514097946572949
|
144
146
|
requirements: []
|
145
147
|
rubyforge_project:
|
146
148
|
rubygems_version: 1.8.24
|