zabbixapi 0.6.6 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +11 -6
- data/README.md +21 -25
- data/lib/zabbixapi.rb +23 -10
- data/lib/zabbixapi/{1.8/basic → basic}/basic_alias.rb +0 -0
- data/lib/zabbixapi/{1.8/basic → basic}/basic_func.rb +3 -3
- data/lib/zabbixapi/{1.8/basic → basic}/basic_init.rb +0 -0
- data/lib/zabbixapi/{2.0/basic → basic}/basic_logic.rb +3 -3
- data/lib/zabbixapi/{1.8/classes → classes}/applications.rb +0 -0
- data/lib/zabbixapi/{1.8/classes → classes}/errors.rb +0 -0
- data/lib/zabbixapi/{1.8/classes → classes}/graphs.rb +0 -0
- data/lib/zabbixapi/{2.0/classes → classes}/hostgroups.rb +0 -0
- data/lib/zabbixapi/{2.0/classes → classes}/hosts.rb +4 -0
- data/lib/zabbixapi/{2.0/classes → classes}/items.rb +8 -0
- data/lib/zabbixapi/{1.8/classes → classes}/mediatypes.rb +0 -0
- data/lib/zabbixapi/{2.0/classes → classes}/proxies.rb +0 -0
- data/lib/zabbixapi/{2.0/classes → classes}/screens.rb +1 -19
- data/lib/zabbixapi/{1.8/classes → classes}/server.rb +0 -0
- data/lib/zabbixapi/{2.0/classes → classes}/templates.rb +4 -4
- data/lib/zabbixapi/{1.8/classes → classes}/triggers.rb +0 -0
- data/lib/zabbixapi/{1.8/classes → classes}/unusable.rb +0 -0
- data/lib/zabbixapi/{2.0/classes → classes}/usergroups.rb +0 -12
- data/lib/zabbixapi/{2.0/classes → classes}/usermacros.rb +0 -0
- data/lib/zabbixapi/{2.0/classes → classes}/users.rb +2 -2
- data/lib/zabbixapi/version.rb +1 -1
- data/spec/application.rb +74 -0
- data/spec/basic_func.rb +4 -0
- data/spec/graph.rb +135 -0
- data/spec/host.rb +136 -0
- data/spec/hostgroup.rb +55 -0
- data/spec/item.rb +132 -0
- data/spec/mediatype.rb +47 -0
- data/spec/query.rb +13 -0
- data/spec/screen.rb +88 -0
- data/spec/server.rb +17 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/template.rb +148 -0
- data/spec/trigger.rb +74 -0
- data/spec/user.rb +99 -0
- data/spec/usergroup.rb +69 -0
- data/zabbixapi.gemspec +3 -3
- metadata +52 -44
- data/lib/zabbixapi/1.8/basic/basic_logic.rb +0 -103
- data/lib/zabbixapi/1.8/classes/hostgroups.rb +0 -26
- data/lib/zabbixapi/1.8/classes/hosts.rb +0 -58
- data/lib/zabbixapi/1.8/classes/items.rb +0 -54
- data/lib/zabbixapi/1.8/classes/screens.rb +0 -101
- data/lib/zabbixapi/1.8/classes/templates.rb +0 -109
- data/lib/zabbixapi/1.8/classes/usergroups.rb +0 -82
- data/lib/zabbixapi/1.8/classes/users.rb +0 -32
- data/lib/zabbixapi/2.0/basic/basic_alias.rb +0 -21
- data/lib/zabbixapi/2.0/basic/basic_func.rb +0 -55
- data/lib/zabbixapi/2.0/basic/basic_init.rb +0 -33
- data/lib/zabbixapi/2.0/classes/applications.rb +0 -45
- data/lib/zabbixapi/2.0/classes/errors.rb +0 -15
- data/lib/zabbixapi/2.0/classes/graphs.rb +0 -66
- data/lib/zabbixapi/2.0/classes/mediatypes.rb +0 -31
- data/lib/zabbixapi/2.0/classes/server.rb +0 -12
- data/lib/zabbixapi/2.0/classes/triggers.rb +0 -67
- data/lib/zabbixapi/2.0/classes/unusable.rb +0 -10
- data/spec/localhost.rb +0 -514
- data/spec/run.rb +0 -486
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acfb3f390844a6875bacfda608080b148a3872a2
|
4
|
+
data.tar.gz: 5c6a2e839a324b6de537b9e93d68db825a4e818f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d47ef057a22a1268ea94f67c98381bff223037e8ff8f84fc48323c42bd96a5f5248bfd1396497a3ece93920acf25718f1d159fdda1e343b57d20d797a1781f76
|
7
|
+
data.tar.gz: 2af73a1a183dee4576ed0a213993579d454646b77db072deb77c69b06389c10661c9360b4ab3cd266d42abc510d2f67e2778a07600b59246a2e61747f01528f5
|
data/.travis.yml
CHANGED
@@ -1,9 +1,14 @@
|
|
1
|
-
language:
|
1
|
+
language:
|
2
2
|
- ruby
|
3
|
-
rvm:
|
3
|
+
rvm:
|
4
4
|
- 1.9.3
|
5
|
+
- 2.0.0
|
6
|
+
- 2.1.1
|
5
7
|
before_script:
|
6
|
-
-
|
7
|
-
-
|
8
|
-
-
|
9
|
-
|
8
|
+
- wget -qO - http://obs.express42.com/project_root:/zabbix2.0/precise/Release.key | sudo apt-key add -
|
9
|
+
- echo "deb http://obs.express42.com/project_root:/zabbix2.0/precise/ ./" | sudo tee /etc/apt/sources.list.d/zabbix.list
|
10
|
+
- sudo apt-get update
|
11
|
+
- sudo apt-get install libiodbc2
|
12
|
+
- sudo apt-get install zabbix-server-pgsql zabbix-frontend-php
|
13
|
+
- echo "$(curl -fsSL https://gist.githubusercontent.com/evtuhovich/9544441/raw/d661863063b76cc8e2599bc44d8595b1f86ece38/zabbix)" | sudo tee /etc/zabbix/web/zabbix.conf.php
|
14
|
+
script: "ZABBIX_HOST_URL=http://localhost/zabbix/api_jsonrpc.php bundle exec rspec spec/*"
|
data/README.md
CHANGED
@@ -2,19 +2,31 @@
|
|
2
2
|
|
3
3
|
Simple and lightweight ruby module for work with zabbix api
|
4
4
|
|
5
|
-
[![Build Status](https://travis-ci.org/
|
5
|
+
[![Build Status](https://travis-ci.org/express42/zabbixapi.png)](https://travis-ci.org/express42/zabbixapi)
|
6
6
|
|
7
7
|
#####Now worked with zabbix
|
8
|
-
* 1.8.2 (api version 1.2)
|
9
|
-
* 1.8.9 (api version 1.3)
|
10
|
-
* 2.0.x (api version 1.4 -> 2.0.
|
8
|
+
* 1.8.2 (api version 1.2) /zabbixapi 0.6.x
|
9
|
+
* 1.8.9 (api version 1.3) /zabbixapi 0.6.x
|
10
|
+
* 2.0.x (api version 1.4 -> 2.0.10) /zabbixapi 2.0.x
|
11
|
+
|
12
|
+
## Version policy
|
13
|
+
|
14
|
+
Zabbixapi has next version policy:
|
15
|
+
* for zabbix 1.8.9 and below you should use zabbixapi 0.6.x
|
16
|
+
* for zabbix 2.0.x you should use zabbixapi 2.0.y
|
17
|
+
* for zabbix 2.2.x you should use zabbixapi 2.2.y (coming soon)
|
18
|
+
|
19
|
+
The PATCH (third digit) version of zabbixapi should not correspond to PATCH version of zabbix, for example
|
20
|
+
zabbixapi-2.0.x should works with all version of zabbix 2.0.y
|
21
|
+
|
22
|
+
We support only two last versions of zabbix (2.0 and 2.2), so you should consider zabbixapi 0.6.x depricated.
|
11
23
|
|
12
24
|
## Installation
|
13
25
|
```
|
14
26
|
gem install zabbixapi
|
15
27
|
```
|
16
28
|
|
17
|
-
##
|
29
|
+
## Getting Started
|
18
30
|
|
19
31
|
### Connect
|
20
32
|
```ruby
|
@@ -30,8 +42,8 @@ zbx = ZabbixApi.connect(
|
|
30
42
|
:url => 'http://localhost/zabbix/api_jsonrpc.php',
|
31
43
|
:user => 'Admin',
|
32
44
|
:password => 'zabbix',
|
33
|
-
:http_password => '
|
34
|
-
:http_user => '
|
45
|
+
:http_password => 'foo',
|
46
|
+
:http_user => 'bar'
|
35
47
|
)
|
36
48
|
```
|
37
49
|
### Create Hostgroup
|
@@ -83,23 +95,7 @@ zbx.items.update(
|
|
83
95
|
puts zbx.items.get_full_data(:description => "item")
|
84
96
|
```
|
85
97
|
|
86
|
-
### Create host
|
87
|
-
```ruby
|
88
|
-
zbx.hosts.add(
|
89
|
-
:host => "hostname",
|
90
|
-
:usedns => 1,
|
91
|
-
:groups => [ :groupid => zbx.hostgroups.get_id(:name => "hostgroup") ]
|
92
|
-
)
|
93
|
-
#or use:
|
94
|
-
zbx.hosts.create_or_update(
|
95
|
-
:host => host,
|
96
|
-
:usedns => 0,
|
97
|
-
:ip => "10.20.48.89",
|
98
|
-
:groups => [:groupid => zbx.hostgroups.get_id(:name => hostgroup)]
|
99
|
-
)
|
100
|
-
```
|
101
|
-
|
102
|
-
### Create host (2.0 and later)
|
98
|
+
### Create host
|
103
99
|
```ruby
|
104
100
|
zbx.hosts.create(
|
105
101
|
:host => host.fqdn,
|
@@ -370,4 +366,4 @@ zbx.query(
|
|
370
366
|
## Zabbix documentation
|
371
367
|
|
372
368
|
* [Zabbix Project Homepage](http://zabbix.com/)
|
373
|
-
* [Zabbix Api docs](
|
369
|
+
* [Zabbix Api docs](https://www.zabbix.com/documentation/2.0/manual/appendix/api/api)
|
data/lib/zabbixapi.rb
CHANGED
@@ -1,6 +1,27 @@
|
|
1
1
|
require "zabbixapi/version"
|
2
2
|
require "zabbixapi/client"
|
3
3
|
|
4
|
+
require "zabbixapi/basic/basic_alias"
|
5
|
+
require "zabbixapi/basic/basic_func"
|
6
|
+
require "zabbixapi/basic/basic_init"
|
7
|
+
require "zabbixapi/basic/basic_logic"
|
8
|
+
|
9
|
+
require "zabbixapi/classes/applications"
|
10
|
+
require "zabbixapi/classes/errors"
|
11
|
+
require "zabbixapi/classes/graphs"
|
12
|
+
require "zabbixapi/classes/hostgroups"
|
13
|
+
require "zabbixapi/classes/hosts"
|
14
|
+
require "zabbixapi/classes/items"
|
15
|
+
require "zabbixapi/classes/mediatypes"
|
16
|
+
require "zabbixapi/classes/proxies"
|
17
|
+
require "zabbixapi/classes/screens"
|
18
|
+
require "zabbixapi/classes/server"
|
19
|
+
require "zabbixapi/classes/templates"
|
20
|
+
require "zabbixapi/classes/triggers"
|
21
|
+
require "zabbixapi/classes/unusable"
|
22
|
+
require "zabbixapi/classes/usergroups"
|
23
|
+
require "zabbixapi/classes/usermacros"
|
24
|
+
require "zabbixapi/classes/users"
|
4
25
|
|
5
26
|
class ZabbixApi
|
6
27
|
|
@@ -20,17 +41,9 @@ class ZabbixApi
|
|
20
41
|
|
21
42
|
def initialize(options = {})
|
22
43
|
@client = Client.new(options)
|
23
|
-
|
24
|
-
|
25
|
-
apidir = "1.8"
|
26
|
-
when "1.4", "2.0.4", "2.0.5", "2.0.6", "2.0.7", "2.0.8", "2.0.9"
|
27
|
-
apidir = "2.0"
|
28
|
-
else
|
29
|
-
apidir = "2.0"
|
30
|
-
puts "[DEBUG] Unknown API version: #{@client.api_version}. Continuing with #{apidir} apidir" if @client.options[:debug]
|
44
|
+
unless @client.api_version == "1.4" || @client.api_version =~ /2\.0\.\d+/
|
45
|
+
raise "Zabbix API version: #{@client.api_version} is not support by this version of zabbixapi"
|
31
46
|
end
|
32
|
-
Dir["#{File.dirname(__FILE__)}/zabbixapi/#{apidir}/basic/*.rb"].each { |f| load(f) }
|
33
|
-
Dir["#{File.dirname(__FILE__)}/zabbixapi/#{apidir}/classes/*.rb"].each { |f| load(f) }
|
34
47
|
end
|
35
48
|
|
36
49
|
def server
|
File without changes
|
@@ -46,9 +46,9 @@ class ZabbixApi
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
def merge_params(
|
50
|
-
|
51
|
-
|
49
|
+
def merge_params(a, b)
|
50
|
+
new = a.dup
|
51
|
+
new.merge(b)
|
52
52
|
end
|
53
53
|
|
54
54
|
end
|
File without changes
|
@@ -4,7 +4,7 @@ class ZabbixApi
|
|
4
4
|
def create(data)
|
5
5
|
log "[DEBUG] Call create with parametrs: #{data.inspect}"
|
6
6
|
|
7
|
-
data_with_default = default_options.empty? ? data : merge_params(data)
|
7
|
+
data_with_default = default_options.empty? ? data : merge_params(default_options, data)
|
8
8
|
data_create = array_flag ? [data_with_default] : data_with_default
|
9
9
|
result = @client.api_request(:method => "#{method_name}.create", :params => data_create)
|
10
10
|
parse_keys result
|
@@ -25,9 +25,9 @@ class ZabbixApi
|
|
25
25
|
id ? update(data.merge(key.to_sym => id.to_s)) : create(data)
|
26
26
|
end
|
27
27
|
|
28
|
-
def update(data)
|
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
|
33
33
|
dump_by_id(key.to_sym => data[key.to_sym]).each do |item|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -50,5 +50,13 @@ class ZabbixApi
|
|
50
50
|
}
|
51
51
|
end
|
52
52
|
|
53
|
+
def delete(data)
|
54
|
+
log "[DEBUG] Call delete with parametrs: #{data.inspect}"
|
55
|
+
|
56
|
+
data_delete = array_flag ? [data] : [key.to_sym => data]
|
57
|
+
result = @client.api_request(:method => "#{method_name}.delete", :params => data_delete)
|
58
|
+
result['itemids'].keys[0].to_i
|
59
|
+
end
|
60
|
+
|
53
61
|
end
|
54
62
|
end
|
File without changes
|
File without changes
|
@@ -29,25 +29,7 @@ class ZabbixApi
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def delete(data)
|
32
|
-
|
33
|
-
screen_id = data[:screen_id]
|
34
|
-
|
35
|
-
unless screen_name.nil?
|
36
|
-
unless screen_name.instance_of?(Array)
|
37
|
-
screen_id = get_id(:name => screen_name)
|
38
|
-
else
|
39
|
-
screen_id = []
|
40
|
-
screen_name.each do |name|
|
41
|
-
screen_id << get_id(:name => name)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
unless screen_id.instance_of?(Array)
|
47
|
-
screen_id = [screen_id, screen_id]
|
48
|
-
end
|
49
|
-
|
50
|
-
result = @client.api_request(:method => "screen.delete", :params => screen_id)
|
32
|
+
result = @client.api_request(:method => "screen.delete", :params => [data])
|
51
33
|
result.empty? ? nil : result['screenids'][0].to_i
|
52
34
|
end
|
53
35
|
|
File without changes
|
@@ -21,7 +21,7 @@ class ZabbixApi
|
|
21
21
|
# * *Returns* :
|
22
22
|
# - Nil or Integer
|
23
23
|
def delete(data)
|
24
|
-
result = @client.api_request(:method => "template.delete", :params => [
|
24
|
+
result = @client.api_request(:method => "template.delete", :params => [data])
|
25
25
|
result.empty? ? nil : result['templateids'][0].to_i
|
26
26
|
end
|
27
27
|
|
@@ -87,14 +87,14 @@ class ZabbixApi
|
|
87
87
|
end
|
88
88
|
|
89
89
|
# Analog Zabbix api call massRemove
|
90
|
-
#
|
90
|
+
#
|
91
91
|
# * *Args* :
|
92
92
|
# - +data+ -> Hash with :hosts_id => [hostid1, hostid2 ...], and :templates_id => [templateid1, templateid2 ...]
|
93
93
|
# * *Returns* :
|
94
94
|
# - True or False
|
95
95
|
def mass_remove(data)
|
96
96
|
result = @client.api_request(
|
97
|
-
:method => "template.massRemove",
|
97
|
+
:method => "template.massRemove",
|
98
98
|
:params => {
|
99
99
|
:hostids => data[:hosts_id],
|
100
100
|
:templateids => data[:templates_id],
|
@@ -102,7 +102,7 @@ class ZabbixApi
|
|
102
102
|
:force => 1
|
103
103
|
}
|
104
104
|
)
|
105
|
-
result.empty? ? false : true
|
105
|
+
result.empty? ? false : true
|
106
106
|
end
|
107
107
|
|
108
108
|
end
|
File without changes
|
File without changes
|
@@ -17,18 +17,6 @@ class ZabbixApi
|
|
17
17
|
"name"
|
18
18
|
end
|
19
19
|
|
20
|
-
# Delete UserGroup
|
21
|
-
#
|
22
|
-
# * *Args* :
|
23
|
-
# - +data+ -> Array with usrgrpids
|
24
|
-
# * *Returns* :
|
25
|
-
# - Nil or Integer
|
26
|
-
def delete(data)
|
27
|
-
result = @client.api_request(:method => "usergroup.delete", :params => data)
|
28
|
-
result ? result['usrgrpids'][0].to_i : nil
|
29
|
-
end
|
30
|
-
|
31
|
-
|
32
20
|
# Return usrgrpid
|
33
21
|
#
|
34
22
|
# * *Args* :
|
File without changes
|
@@ -19,13 +19,13 @@ class ZabbixApi
|
|
19
19
|
|
20
20
|
def add_medias(data)
|
21
21
|
result = @client.api_request(
|
22
|
-
:method => "user.addMedia",
|
22
|
+
:method => "user.addMedia",
|
23
23
|
:params => {
|
24
24
|
:users => data[:userids].map { |t| {:userid => t} },
|
25
25
|
:medias => data[:media]
|
26
26
|
}
|
27
27
|
)
|
28
|
-
result ? result['
|
28
|
+
result ? result['mediaids'][0].to_i : nil
|
29
29
|
end
|
30
30
|
|
31
31
|
end
|
data/lib/zabbixapi/version.rb
CHANGED
data/spec/application.rb
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'application' do
|
6
|
+
before :all do
|
7
|
+
@hostgroup = gen_name 'hostgroup'
|
8
|
+
@hostgroupid = zbx.hostgroups.create(:name => @hostgroup)
|
9
|
+
@template = gen_name 'template'
|
10
|
+
@templateid = zbx.templates.create(
|
11
|
+
:host => @template,
|
12
|
+
:groups => [:groupid => @hostgroupid]
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'when name not exists' do
|
17
|
+
before do
|
18
|
+
@application = gen_name 'application'
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'create' do
|
22
|
+
it "should return integer id" do
|
23
|
+
applicationid = zbx.applications.create(
|
24
|
+
:name => @application,
|
25
|
+
:hostid => @templateid
|
26
|
+
)
|
27
|
+
applicationid.should be_kind_of(Integer)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'get_id' do
|
32
|
+
it "should return nil" do
|
33
|
+
expect(zbx.applications.get_id(:host => @application)).to be_kind_of(NilClass)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'when name exists' do
|
39
|
+
before :all do
|
40
|
+
@application = gen_name 'application'
|
41
|
+
@applicationid = zbx.applications.create(
|
42
|
+
:name => @application,
|
43
|
+
:hostid => @templateid
|
44
|
+
)
|
45
|
+
end
|
46
|
+
|
47
|
+
describe 'get_or_create' do
|
48
|
+
it "should return id of application" do
|
49
|
+
expect(zbx.applications.get_or_create(
|
50
|
+
:name => @application,
|
51
|
+
:hostid => @templateid
|
52
|
+
)).to eq @applicationid
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe 'get_full_data' do
|
57
|
+
it "should contains created application" do
|
58
|
+
expect(zbx.applications.get_full_data(:name => @application)[0]).to include("name" => @application)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe 'get_id' do
|
63
|
+
it "should return id of application" do
|
64
|
+
expect(zbx.applications.get_id(:name => @application)).to eq @applicationid
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "delete" do
|
69
|
+
it "should return id" do
|
70
|
+
zbx.applications.delete(@applicationid).should eq @applicationid
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
data/spec/basic_func.rb
ADDED
data/spec/graph.rb
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'graph' do
|
6
|
+
before :all do
|
7
|
+
@hostgroup = gen_name 'hostgroup'
|
8
|
+
@hostgroupid = zbx.hostgroups.create(:name => @hostgroup)
|
9
|
+
@template = gen_name 'template'
|
10
|
+
@templateid = zbx.templates.create(
|
11
|
+
:host => @template,
|
12
|
+
:groups => [:groupid => @hostgroupid]
|
13
|
+
)
|
14
|
+
@application = gen_name 'application'
|
15
|
+
@applicationid = zbx.applications.create(
|
16
|
+
:name => @application,
|
17
|
+
:hostid => @templateid
|
18
|
+
)
|
19
|
+
@item = gen_name 'item'
|
20
|
+
@itemid = zbx.items.create(
|
21
|
+
:name => @item,
|
22
|
+
:key_ => "proc.num[#{gen_name 'proc'}]",
|
23
|
+
:status => 0,
|
24
|
+
:hostid => @templateid,
|
25
|
+
:applications => [@applicationid]
|
26
|
+
)
|
27
|
+
|
28
|
+
@color = "123456"
|
29
|
+
end
|
30
|
+
|
31
|
+
def gitems
|
32
|
+
{
|
33
|
+
:itemid => @itemid,
|
34
|
+
:calc_fnc => "3",
|
35
|
+
:color => @color,
|
36
|
+
:type => "0",
|
37
|
+
:periods_cnt => "5"
|
38
|
+
}
|
39
|
+
end
|
40
|
+
|
41
|
+
def create_graph(graph, itemid)
|
42
|
+
zbx.graphs.create(
|
43
|
+
:gitems => [gitems],
|
44
|
+
:show_triggers => "0",
|
45
|
+
:name => graph,
|
46
|
+
:width => "900",
|
47
|
+
:height => "200"
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
context 'when name not exists' do
|
53
|
+
describe 'create' do
|
54
|
+
it "should return integer id" do
|
55
|
+
@graph = gen_name 'graph'
|
56
|
+
expect(create_graph(@graph, @itemid)).to be_kind_of(Integer)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'when name exists' do
|
62
|
+
before :all do
|
63
|
+
@graph = gen_name 'graph'
|
64
|
+
@graphid = create_graph(@graph, @itemid)
|
65
|
+
end
|
66
|
+
|
67
|
+
describe 'get_or_create' do
|
68
|
+
it "should return id of existing graph" do
|
69
|
+
zbx.graphs.get_or_create(
|
70
|
+
:gitems => [gitems],
|
71
|
+
:show_triggers => "0",
|
72
|
+
:name => @graph,
|
73
|
+
:width => "900",
|
74
|
+
:height => "200"
|
75
|
+
).should eq @graphid
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
describe 'get_items' do
|
80
|
+
it "should return array" do
|
81
|
+
expect(zbx.graphs.get_items( @graphid )).to be_kind_of(Array)
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should return array of size 1" do
|
85
|
+
expect(zbx.graphs.get_items( @graphid ).size).to eq 1
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should include correct item" do
|
89
|
+
expect(zbx.graphs.get_items( @graphid )[0]).to include("color" => @color)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe 'get_id' do
|
94
|
+
it "should return id" do
|
95
|
+
zbx.graphs.get_id( :name => @graph ).should eq @graphid
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe 'get_ids_by_host' do
|
100
|
+
it "should contains id of graph" do
|
101
|
+
graph_array = zbx.graphs.get_ids_by_host( :host => @host )
|
102
|
+
graph_array.should be_kind_of(Array)
|
103
|
+
graph_array.should include(@graphid.to_s)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe 'update' do
|
108
|
+
it "should return id" do
|
109
|
+
zbx.graphs.update(
|
110
|
+
:graphid => @graphid,
|
111
|
+
:gitems => [gitems],
|
112
|
+
:ymax_type => 1
|
113
|
+
).should eq @graphid
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
describe 'create_or_update' do
|
118
|
+
it "should return existing id" do
|
119
|
+
zbx.graphs.create_or_update(
|
120
|
+
:gitems => [gitems],
|
121
|
+
:show_triggers => "1",
|
122
|
+
:name => @graph,
|
123
|
+
:width => "900",
|
124
|
+
:height => "200"
|
125
|
+
).should eq @graphid
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
describe 'delete' do
|
130
|
+
it "should return true" do
|
131
|
+
expect(zbx.graphs.delete(@graphid)).to eq @graphid
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|