zabbixapi 3.0.0 → 3.1.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/CHANGELOG.md +3 -0
- data/README.md +25 -1
- data/lib/zabbixapi.rb +5 -0
- data/lib/zabbixapi/classes/scripts.rb +27 -0
- data/lib/zabbixapi/version.rb +1 -1
- data/spec/script.rb +123 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62d0c2a77a20181c6c206a4ef0f326816c9cd393
|
4
|
+
data.tar.gz: 5f56649ab7a8db90bd5ce3cf9bcd6960f9ee1c08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f2be925d94ce9d47224cf6724cfbaa4a686bb846ee773919e5561632913340e80846af20e6f43a2d68e85b42ed53505dd4c6a79087c76d015e6973f107627e1
|
7
|
+
data.tar.gz: aba85f76d861928efa429139f9aff3ecef58f6a0d6599de0c48905675eab6753f73df764b61f15d1a5b3d0c626f397b556b32a096d0b67d06f3d99be3aebeb88
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -31,7 +31,7 @@ We support only two last versions of zabbix (2.4 and 3.0), so you should conside
|
|
31
31
|
|
32
32
|
## Installation
|
33
33
|
```
|
34
|
-
gem install zabbixapi
|
34
|
+
gem install zabbixapi
|
35
35
|
```
|
36
36
|
|
37
37
|
## Getting Started
|
@@ -488,6 +488,30 @@ zbx.users.update_medias(
|
|
488
488
|
)
|
489
489
|
```
|
490
490
|
|
491
|
+
### Create Script
|
492
|
+
```ruby
|
493
|
+
zbx.scripts.create(
|
494
|
+
:name => 'Hostname',
|
495
|
+
:command => 'hostname'
|
496
|
+
)
|
497
|
+
# or use (lib merge json):
|
498
|
+
zbx.scripts.create_or_update(
|
499
|
+
:name => 'Hostname',
|
500
|
+
:command => 'hostname',
|
501
|
+
:description => 'Show the system hostname'
|
502
|
+
)
|
503
|
+
```
|
504
|
+
|
505
|
+
### Update Script
|
506
|
+
```ruby
|
507
|
+
zbx.scripts.update(
|
508
|
+
:httptestid => zbx.scripts.get_id(:name => 'Hostname'),
|
509
|
+
:execute_on => 0
|
510
|
+
)
|
511
|
+
#You can check script:
|
512
|
+
puts zbx.scripts.get_full_data(:name => 'Hostname')
|
513
|
+
|
514
|
+
|
491
515
|
### Create proxy
|
492
516
|
#### Active proxy
|
493
517
|
```ruby
|
data/lib/zabbixapi.rb
CHANGED
@@ -26,6 +26,7 @@ require "zabbixapi/classes/usermacros"
|
|
26
26
|
require "zabbixapi/classes/users"
|
27
27
|
require "zabbixapi/classes/configurations"
|
28
28
|
require "zabbixapi/classes/actions"
|
29
|
+
require "zabbixapi/classes/scripts"
|
29
30
|
|
30
31
|
class ZabbixApi
|
31
32
|
|
@@ -119,4 +120,8 @@ class ZabbixApi
|
|
119
120
|
@actions ||= Actions.new(@client)
|
120
121
|
end
|
121
122
|
|
123
|
+
def scripts
|
124
|
+
@scripts ||= Scripts.new(@client)
|
125
|
+
end
|
126
|
+
|
122
127
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class ZabbixApi
|
2
|
+
class Scripts < Basic
|
3
|
+
|
4
|
+
def method_name
|
5
|
+
"script"
|
6
|
+
end
|
7
|
+
|
8
|
+
def indentify
|
9
|
+
"name"
|
10
|
+
end
|
11
|
+
|
12
|
+
def execute(data)
|
13
|
+
@client.api_request(
|
14
|
+
:method => "script.execute",
|
15
|
+
:params => {
|
16
|
+
:scriptid => data[:scriptid],
|
17
|
+
:hostid => data[:hostid]
|
18
|
+
}
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
def getscriptsbyhost(data)
|
23
|
+
@client.api_request(:method => "script.getscriptsbyhosts", :params => data)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
data/lib/zabbixapi/version.rb
CHANGED
data/spec/script.rb
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'script' do
|
6
|
+
before :all do
|
7
|
+
@hostid = zbx.hosts.get_id(:host => 'Zabbix server')
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'when name not exists' do
|
11
|
+
before do
|
12
|
+
@script = gen_name 'script'
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'create' do
|
16
|
+
it "should return integer id" do
|
17
|
+
scriptid = zbx.scripts.create(
|
18
|
+
:name => @script,
|
19
|
+
:command => 'hostname',
|
20
|
+
)
|
21
|
+
expect(scriptid).to be_kind_of(Integer)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'get_id' do
|
26
|
+
it "should return nil" do
|
27
|
+
expect(zbx.scripts.get_id(:name => @script)).to be_kind_of(NilClass)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context 'when name exists' do
|
33
|
+
before :all do
|
34
|
+
@script = gen_name 'script'
|
35
|
+
@scriptid = zbx.scripts.create(
|
36
|
+
:name => @script,
|
37
|
+
:command => 'hostname',
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
41
|
+
describe 'get_or_create' do
|
42
|
+
it "should return id of script" do
|
43
|
+
expect(zbx.scripts.get_or_create(
|
44
|
+
:name => @script,
|
45
|
+
:command => 'hostname',
|
46
|
+
)).to eq @scriptid
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe 'get_full_data' do
|
51
|
+
it "should contains created script" do
|
52
|
+
expect(zbx.scripts.get_full_data(:name => @script)[0]).to include("name" => @script)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe 'get_id' do
|
57
|
+
it "should return id of script" do
|
58
|
+
expect(zbx.scripts.get_id(:name => @script)).to eq @scriptid
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should raise error on no identity given" do
|
63
|
+
expect { zbx.scripts.get_id({}) }.to raise_error(ZabbixApi::ApiError)
|
64
|
+
end
|
65
|
+
|
66
|
+
describe 'update' do
|
67
|
+
it "should return id" do
|
68
|
+
expect(zbx.scripts.update(
|
69
|
+
:scriptid => zbx.scripts.get_id(:name => @script),
|
70
|
+
:enable_confirmation => 1,
|
71
|
+
:confirmation => 'Are you sure you would like to show the system hostname?'
|
72
|
+
)).to eq @scriptid
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe 'create_or_update' do
|
77
|
+
it "should update existing script" do
|
78
|
+
expect(zbx.scripts.get_or_create(
|
79
|
+
:name => @script,
|
80
|
+
:command => 'hostname',
|
81
|
+
)).to eq @scriptid
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should create script" do
|
85
|
+
new_script_id = zbx.scripts.get_or_create(
|
86
|
+
:name => @script + "____1",
|
87
|
+
:command => 'hostname',
|
88
|
+
)
|
89
|
+
|
90
|
+
expect(new_script_id).to be_kind_of(Integer)
|
91
|
+
expect(new_script_id).to be > @scriptid
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
# TODO: see if we can get this test working with travis ci (passes on standalone zabbix server)
|
96
|
+
#describe 'execute' do
|
97
|
+
# it "should return success response" do
|
98
|
+
# expect(zbx.scripts.execute(:scriptid => @scriptid, :hostid => @hostid)).to include("response" => "success")
|
99
|
+
# end
|
100
|
+
#end
|
101
|
+
|
102
|
+
describe 'getscriptsbyhost' do
|
103
|
+
it "should return object with hostid and script" do
|
104
|
+
expect(zbx.scripts.getscriptsbyhost([@hostid])[@hostid.to_s].select { |script| script[:name] == @script}).to_not be_nil
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
describe 'delete' do
|
109
|
+
before :all do
|
110
|
+
@result = zbx.scripts.delete(@scriptid)
|
111
|
+
end
|
112
|
+
|
113
|
+
it "should return deleted id" do
|
114
|
+
expect(@result).to eq @scriptid
|
115
|
+
end
|
116
|
+
|
117
|
+
it "should delete script from zabbix" do
|
118
|
+
expect(zbx.scripts.get_id(:name => @script)).to be_nil
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
end
|
123
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zabbixapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vasiliev D.V.
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-02-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- lib/zabbixapi/classes/mediatypes.rb
|
91
91
|
- lib/zabbixapi/classes/proxies.rb
|
92
92
|
- lib/zabbixapi/classes/screens.rb
|
93
|
+
- lib/zabbixapi/classes/scripts.rb
|
93
94
|
- lib/zabbixapi/classes/server.rb
|
94
95
|
- lib/zabbixapi/classes/templates.rb
|
95
96
|
- lib/zabbixapi/classes/triggers.rb
|
@@ -112,6 +113,7 @@ files:
|
|
112
113
|
- spec/mediatype.rb
|
113
114
|
- spec/query.rb
|
114
115
|
- spec/screen.rb
|
116
|
+
- spec/script.rb
|
115
117
|
- spec/server.rb
|
116
118
|
- spec/spec_helper.rb
|
117
119
|
- spec/template.rb
|
@@ -140,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
142
|
version: '0'
|
141
143
|
requirements: []
|
142
144
|
rubyforge_project: zabbixapi
|
143
|
-
rubygems_version: 2.
|
145
|
+
rubygems_version: 2.6.10
|
144
146
|
signing_key:
|
145
147
|
specification_version: 4
|
146
148
|
summary: Realization for Zabbix API.
|
@@ -158,6 +160,7 @@ test_files:
|
|
158
160
|
- spec/mediatype.rb
|
159
161
|
- spec/query.rb
|
160
162
|
- spec/screen.rb
|
163
|
+
- spec/script.rb
|
161
164
|
- spec/server.rb
|
162
165
|
- spec/spec_helper.rb
|
163
166
|
- spec/template.rb
|