zabbixapi 3.1.0 → 3.2.1

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -0
  3. data/CHANGELOG.md +5 -0
  4. data/{LICENSE → LICENSE.md} +1 -1
  5. data/README.md +53 -569
  6. data/lib/zabbixapi.rb +102 -65
  7. data/lib/zabbixapi/basic/basic_alias.rb +21 -4
  8. data/lib/zabbixapi/basic/basic_func.rb +56 -23
  9. data/lib/zabbixapi/basic/basic_init.rb +21 -4
  10. data/lib/zabbixapi/basic/basic_logic.rb +75 -18
  11. data/lib/zabbixapi/classes/actions.rb +8 -4
  12. data/lib/zabbixapi/classes/applications.rb +20 -6
  13. data/lib/zabbixapi/classes/configurations.rb +23 -17
  14. data/lib/zabbixapi/classes/errors.rb +2 -4
  15. data/lib/zabbixapi/classes/graphs.rb +65 -15
  16. data/lib/zabbixapi/classes/hostgroups.rb +12 -4
  17. data/lib/zabbixapi/classes/hosts.rb +36 -10
  18. data/lib/zabbixapi/classes/httptests.rb +24 -4
  19. data/lib/zabbixapi/classes/items.rb +24 -5
  20. data/lib/zabbixapi/classes/maintenance.rb +8 -4
  21. data/lib/zabbixapi/classes/mediatypes.rb +20 -13
  22. data/lib/zabbixapi/classes/proxies.rb +29 -8
  23. data/lib/zabbixapi/classes/screens.rb +41 -25
  24. data/lib/zabbixapi/classes/server.rb +8 -4
  25. data/lib/zabbixapi/classes/templates.rb +46 -43
  26. data/lib/zabbixapi/classes/triggers.rb +43 -16
  27. data/lib/zabbixapi/classes/unusable.rb +0 -2
  28. data/lib/zabbixapi/classes/usergroups.rb +33 -26
  29. data/lib/zabbixapi/classes/usermacros.rb +137 -31
  30. data/lib/zabbixapi/classes/users.rb +32 -10
  31. data/lib/zabbixapi/classes/valuemaps.rb +50 -0
  32. data/lib/zabbixapi/client.rb +61 -22
  33. data/lib/zabbixapi/version.rb +1 -1
  34. data/zabbixapi.gemspec +26 -23
  35. metadata +25 -73
  36. data/.gitignore +0 -7
  37. data/.rspec +0 -1
  38. data/.travis.yml +0 -41
  39. data/Gemfile +0 -3
  40. data/Gemfile.lock +0 -36
  41. data/Rakefile +0 -1
  42. data/json-1.x.Gemfile +0 -4
  43. data/json-1.x.Gemfile.lock +0 -28
  44. data/spec/action.rb +0 -89
  45. data/spec/application.rb +0 -83
  46. data/spec/basic_func.rb +0 -4
  47. data/spec/configuration.rb +0 -122
  48. data/spec/graph.rb +0 -135
  49. data/spec/host.rb +0 -176
  50. data/spec/hostgroup.rb +0 -55
  51. data/spec/httptest.rb +0 -136
  52. data/spec/item.rb +0 -134
  53. data/spec/maintenance.rb +0 -81
  54. data/spec/mediatype.rb +0 -50
  55. data/spec/query.rb +0 -18
  56. data/spec/screen.rb +0 -88
  57. data/spec/script.rb +0 -123
  58. data/spec/server.rb +0 -15
  59. data/spec/spec_helper.rb +0 -21
  60. data/spec/template.rb +0 -148
  61. data/spec/trigger.rb +0 -103
  62. data/spec/user.rb +0 -116
  63. data/spec/usergroup.rb +0 -85
  64. data/spec/usermacro.rb +0 -190
data/.gitignore DELETED
@@ -1,7 +0,0 @@
1
- .rvmrc
2
- *.gem
3
- *.swp
4
- .idea
5
- .gemtags
6
- pkg
7
- test
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color --format documentation
@@ -1,41 +0,0 @@
1
- language:
2
- - ruby
3
- addons:
4
- postgresql: '9.5'
5
- apt:
6
- sources:
7
- - sourceline: 'deb http://repo.zabbix.com/zabbix/3.0/ubuntu/ trusty main'
8
- key_url: 'http://repo.zabbix.com/zabbix-official-repo.key'
9
- packages:
10
- - php5-pgsql
11
- - zabbix-frontend-php
12
- - zabbix-server-pgsql
13
- services:
14
- - postgresql
15
- rvm:
16
- - 1.9.3
17
- - 2.0
18
- - 2.1
19
- - 2.2
20
- - 2.3
21
- gemfile:
22
- - Gemfile
23
- - json-1.x.Gemfile
24
- dist: trusty
25
- sudo: required
26
-
27
- before_script:
28
- - sudo sed -i "s,;date.timezone =,date.timezone = 'US/Eastern'," /etc/php5/apache2/php.ini
29
- - psql -c 'create database zabbix;' -U postgres
30
- - psql -c 'create user zabbix;' -U postgres
31
- - psql -c 'grant all privileges on database zabbix to zabbix;' -U postgres
32
- - zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | LC_ALL=C psql -U zabbix
33
- - echo "$(curl -fsSL https://gist.githubusercontent.com/evtuhovich/9544441/raw/d661863063b76cc8e2599bc44d8595b1f86ece38/zabbix)" | sudo tee /etc/zabbix/web/zabbix.conf.php
34
- - sudo service apache2 restart
35
- script: "ZABBIX_HOST_URL=http://localhost/zabbix/api_jsonrpc.php bundle exec rspec spec/*"
36
-
37
- matrix:
38
- exclude:
39
- # json 2.x requires ruby 2.x
40
- - rvm: 1.9.3
41
- gemfile: json-1.x.Gemfile
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
@@ -1,36 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- zabbixapi (3.0.0)
5
- json
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- diff-lcs (1.2.5)
11
- json (2.0.3)
12
- rake (12.0.0)
13
- rspec (3.5.0)
14
- rspec-core (~> 3.5.0)
15
- rspec-expectations (~> 3.5.0)
16
- rspec-mocks (~> 3.5.0)
17
- rspec-core (3.5.4)
18
- rspec-support (~> 3.5.0)
19
- rspec-expectations (3.5.0)
20
- diff-lcs (>= 1.2.0, < 2.0)
21
- rspec-support (~> 3.5.0)
22
- rspec-mocks (3.5.0)
23
- diff-lcs (>= 1.2.0, < 2.0)
24
- rspec-support (~> 3.5.0)
25
- rspec-support (3.5.0)
26
-
27
- PLATFORMS
28
- ruby
29
-
30
- DEPENDENCIES
31
- rake
32
- rspec
33
- zabbixapi!
34
-
35
- BUNDLED WITH
36
- 1.14.3
data/Rakefile DELETED
@@ -1 +0,0 @@
1
- require 'bundler/gem_tasks'
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'json', '~> 1.8'
4
- gem 'rspec'
@@ -1,28 +0,0 @@
1
- GEM
2
- remote: https://rubygems.org/
3
- specs:
4
- diff-lcs (1.2.5)
5
- json (1.8.5)
6
- rspec (3.5.0)
7
- rspec-core (~> 3.5.0)
8
- rspec-expectations (~> 3.5.0)
9
- rspec-mocks (~> 3.5.0)
10
- rspec-core (3.5.4)
11
- rspec-support (~> 3.5.0)
12
- rspec-expectations (3.5.0)
13
- diff-lcs (>= 1.2.0, < 2.0)
14
- rspec-support (~> 3.5.0)
15
- rspec-mocks (3.5.0)
16
- diff-lcs (>= 1.2.0, < 2.0)
17
- rspec-support (~> 3.5.0)
18
- rspec-support (3.5.0)
19
-
20
- PLATFORMS
21
- ruby
22
-
23
- DEPENDENCIES
24
- json (~> 1.8)
25
- rspec
26
-
27
- BUNDLED WITH
28
- 1.12.5
@@ -1,89 +0,0 @@
1
- #encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe 'action' do
6
- before do
7
- @actionname = gen_name 'action'
8
- @usergroupid = zbx.usergroups.create(:name => gen_name('usergroup'))
9
- @actiondata = {
10
- :name => @actionname,
11
- :eventsource => '0', # event source is a triggerid
12
- :status => '0', # action is enabled
13
- :esc_period => '120', # how long each step should take
14
- :def_shortdata => "Email header",
15
- :def_longdata => "Email content",
16
- :maintenance_mode => '1',
17
- :filter => {
18
- :evaltype => '1', # perform 'and' between the conditions
19
- :conditions => [
20
- {
21
- :conditiontype => '3', # trigger name
22
- :operator => '2', # like
23
- :value => 'pattern' # the pattern
24
- },
25
- {
26
- :conditiontype => '4', # trigger severity
27
- :operator => '5', # >=
28
- :value => '3' # average
29
- }
30
- ]
31
- },
32
- :operations => [
33
- {
34
- :operationtype => '0', # send message
35
- :opmessage_grp => [ # who the message will be sent to
36
- {
37
- :usrgrpid => @usergroupid
38
- }
39
- ],
40
- :opmessage => {
41
- :default_msg => '0', # use default message
42
- :mediatypeid => '1' # email id
43
- }
44
- }
45
- ],
46
- :recovery_operations => [
47
- {
48
- :operationtype => '11', # send recovery message
49
- :opmessage_grp => [ # who the message will be sent to
50
- {
51
- :usrgrpid => @usergroupid
52
- }
53
- ],
54
- :opmessage => {
55
- :default_msg => '0', # use default message
56
- :mediatypeid => '1' # email id
57
- }
58
- }
59
- ]
60
- }
61
- end
62
-
63
- context 'when not exists' do
64
- describe 'create' do
65
- it "should return integer id" do
66
- actionid = zbx.actions.create(@actiondata)
67
- expect(actionid).to be_kind_of(Integer)
68
- end
69
- end
70
- end
71
-
72
- context 'when exists' do
73
- before do
74
- @actionid = zbx.actions.create(@actiondata)
75
- end
76
-
77
- describe 'create_or_update' do
78
- it "should return id" do
79
- expect(zbx.actions.create_or_update(@actiondata)).to eq @actionid
80
- end
81
- end
82
-
83
- describe 'delete' do
84
- it "should return id" do
85
- expect(zbx.actions.delete(@actionid)).to eq @actionid
86
- end
87
- end
88
- end
89
- end
@@ -1,83 +0,0 @@
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
- expect(applicationid).to 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(:name => @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 'create_or_update' do
69
- it "should return id of updated application" do
70
- expect(zbx.applications.create_or_update(
71
- :name => @application,
72
- :hostid => @templateid
73
- )).to eq @applicationid
74
- end
75
- end
76
-
77
- describe "delete" do
78
- it "should return id" do
79
- expect(zbx.applications.delete(@applicationid)).to eq @applicationid
80
- end
81
- end
82
- end
83
- end
@@ -1,4 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ZabbixApi::Basic do
4
- end
@@ -1,122 +0,0 @@
1
- #encoding: utf-8
2
-
3
- require "spec_helper"
4
-
5
- describe "configuration" do
6
- before :all do
7
- @hostgroup = gen_name "hostgroup"
8
- @hostgroup_id = zbx.hostgroups.create(:name => @hostgroup)
9
- @template = gen_name "template"
10
- @template_id = zbx.templates.create(
11
- :host => @template,
12
- :groups => [:groupid => @hostgroup_id]
13
- )
14
- @source = zbx.configurations.export(
15
- :format => "xml",
16
- :options => {
17
- :templates => [@template_id]
18
- }
19
- )
20
- @item = gen_name "item"
21
- @item_id = zbx.items.create(
22
- :name => @item,
23
- :description => "item",
24
- :key_ => "proc.num[aaa]",
25
- :type => 0,
26
- :value_type => 3,
27
- :hostid => zbx.templates.get_id(:host => @template),
28
- )
29
- end
30
-
31
- after :all do
32
- zbx.items.delete(zbx.items.get_id(:name => @item))
33
- zbx.templates.delete(zbx.templates.get_id(:host => @template))
34
- zbx.hostgroups.delete(zbx.hostgroups.get_id(:name => @hostgroup))
35
- end
36
-
37
- context "when object not exists" do
38
- describe "import with createMissing" do
39
- before do
40
- zbx.items.delete(@item_id)
41
- zbx.templates.delete(@template_id)
42
- zbx.hostgroups.delete(@hostgroup_id)
43
- zbx.configurations.import(
44
- :format => "xml",
45
- :rules => {
46
- :groups => {
47
- :createMissing => true
48
- },
49
- :templates => {
50
- :createMissing => true
51
- }
52
- },
53
- :source => @source
54
- )
55
- end
56
-
57
- it "should create object" do
58
- expect(zbx.hostgroups.get_id(:name => @hostgroup)).to be_kind_of(Integer)
59
- expect(zbx.templates.get_id(:host => @template)).to be_kind_of(Integer)
60
- end
61
- end
62
- end
63
-
64
- context "when object exists" do
65
-
66
- describe "export" do
67
- before do
68
- zbx.items.create(
69
- :name => @item,
70
- :description => "item",
71
- :key_ => "proc.num[aaa]",
72
- :type => 0,
73
- :value_type => 3,
74
- :hostid => zbx.templates.get_id(:host => @template),
75
- )
76
- end
77
-
78
- it "should export updated object" do
79
- expect(zbx.configurations.export(
80
- :format => "xml",
81
- :options => {
82
- :templates => [zbx.templates.get_id(:host => @template)]
83
- }
84
- )).to match(/#{@item}/)
85
- end
86
- end
87
-
88
- describe "import with updateExisting" do
89
- before do
90
- @source_updated = zbx.configurations.export(
91
- :format => "xml",
92
- :options => {
93
- :templates => [zbx.templates.get_id(:host => @template)]
94
- }
95
- )
96
- zbx.items.delete(zbx.items.get_id(:name => @item))
97
- zbx.configurations.import(
98
- :format => "xml",
99
- :rules => {
100
- :templates => {
101
- :updateExisting => true
102
- },
103
- :items => {
104
- :createMissing => true
105
- }
106
- },
107
- :source => @source_updated
108
- )
109
- end
110
-
111
- it "should update object" do
112
- expect(zbx.configurations.export(
113
- :format => "xml",
114
- :options => {
115
- :templates => [zbx.templates.get_id(:host => @template)]
116
- }
117
- )).to match(/#{@item}/)
118
- end
119
- end
120
- end
121
- end
122
-
@@ -1,135 +0,0 @@
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
- expect(zbx.graphs.get_or_create(
70
- :gitems => [gitems],
71
- :show_triggers => "0",
72
- :name => @graph,
73
- :width => "900",
74
- :height => "200"
75
- )).to 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
- expect(zbx.graphs.get_id( :name => @graph )).to 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
- expect(graph_array).to be_kind_of(Array)
103
- expect(graph_array).to include(@graphid.to_s)
104
- end
105
- end
106
-
107
- describe 'update' do
108
- it "should return id" do
109
- expect(zbx.graphs.update(
110
- :graphid => @graphid,
111
- :gitems => [gitems],
112
- :ymax_type => 1
113
- )).to eq @graphid
114
- end
115
- end
116
-
117
- describe 'create_or_update' do
118
- it "should return existing id" do
119
- expect(zbx.graphs.create_or_update(
120
- :gitems => [gitems],
121
- :show_triggers => "1",
122
- :name => @graph,
123
- :width => "900",
124
- :height => "200"
125
- )).to 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