zabbixapi 0.6.6 → 2.0.0
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.
- 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
|
-
[](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
|