zabbixapi 2.2.2 → 2.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1af8e059d91bcd50ee36f944393de794e0072d2
4
- data.tar.gz: 3975f68a19eff6923a223943bd8d3511e6c4e088
3
+ metadata.gz: bd481b02c9223088ad234cbca2b81d51bcc5916b
4
+ data.tar.gz: 32641a4d6a3f436ae4fb521f78f6e55c10b159dd
5
5
  SHA512:
6
- metadata.gz: 10ffe07da786c3a7cbc6b33fdd4d1c397d5b2ce8115cbacfe26d5c1136b4ade6d1cfb70e5a63558195b998d0aae8ed3c70ff20c946b01947eb4c42f93543a95a
7
- data.tar.gz: c19d6d4e47b3c500dfe5e87a9dc40bd6d35570608663817a28944cf72323babda2b0f7b03f569976c2a838d9265542da775dd5a2ff9422751db06b05cafd54d9
6
+ metadata.gz: 827a84f1bf076a63c25ef9c17d082e4e7d56290015023a7cfbf6e5e8efaacea67d88a35670079e59f77618eef59f371dbe6917f7238a8cbdcf6c16168e76c130
7
+ data.tar.gz: fa4c337f755a659da65cabca1bc598c063edc3fc25e63a4c021af04ce1e33497d38429fe00094c7a3e802d8f2779cd5b5b03c345dadb058e5de4d674a68a5fe3
data/lib/zabbixapi.rb CHANGED
@@ -23,6 +23,7 @@ require "zabbixapi/classes/usergroups"
23
23
  require "zabbixapi/classes/usermacros"
24
24
  require "zabbixapi/classes/users"
25
25
  require "zabbixapi/classes/configurations"
26
+ require "zabbixapi/classes/hostinterfaces"
26
27
 
27
28
  class ZabbixApi
28
29
 
@@ -107,5 +108,8 @@ class ZabbixApi
107
108
  @configurations ||= Configurations.new(@client)
108
109
  end
109
110
 
111
+ def hostinterfaces
112
+ @hostinterfaces ||= Hostinterfaces.new(@client)
113
+ end
110
114
  end
111
115
 
@@ -46,22 +46,25 @@ class ZabbixApi
46
46
  end
47
47
 
48
48
  def get_full_data(data)
49
- log "[DEBUG] Call get_full_data with parametrs: #{data.inspect}"
49
+ log "[DEBUG] Call get_full_data with parametrs: #{data.inspect} and params #{data[:params]}"
50
50
 
51
- @client.api_request(
51
+ data[:params] ||= {}
52
+ res = @client.api_request(
52
53
  :method => "#{method_name}.get",
53
54
  :params => {
54
55
  :filter => {
55
56
  indentify.to_sym => data[indentify.to_sym]
56
57
  },
57
58
  :output => "extend"
58
- }
59
+ }.merge(data[:params])
59
60
  )
61
+ res
60
62
  end
61
63
 
62
64
  def dump_by_id(data)
63
- log "[DEBUG] Call dump_by_id with parametrs: #{data.inspect}"
65
+ log "[DEBUG] Call dump_by_id with parametrs: #{data.inspect} and params #{data[:params]}"
64
66
 
67
+ data[:params] ||= {}
65
68
  @client.api_request(
66
69
  :method => "#{method_name}.get",
67
70
  :params => {
@@ -69,7 +72,7 @@ class ZabbixApi
69
72
  key.to_sym => data[key.to_sym]
70
73
  },
71
74
  :output => "extend"
72
- }
75
+ }.merge(data[:params])
73
76
  )
74
77
  end
75
78
 
@@ -0,0 +1,19 @@
1
+ class ZabbixApi
2
+ class Hostinterfaces < Basic
3
+ def array_flag
4
+ true
5
+ end
6
+
7
+ def method_name
8
+ "hostinterface"
9
+ end
10
+
11
+ def indentify
12
+ "hostid"
13
+ end
14
+
15
+ def key
16
+ "interfaceid"
17
+ end
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  class ZabbixApi
2
- VERSION = "2.2.2"
2
+ VERSION = "2.2.3"
3
3
  end
data/spec/host.rb CHANGED
@@ -36,15 +36,15 @@ describe 'host' do
36
36
  @hostgroupid2 = zbx.hostgroups.create(:name => gen_name('hostgroup'))
37
37
  host = gen_name('host')
38
38
  hostid = zbx.hosts.create(
39
- host: host,
40
- interfaces: [{ type: 1, main: 1, ip: '192.168.0.1', dns: 'server.example.org', port: 10050, useip: 0 }],
41
- groups: [
42
- {groupid: @hostgroupid},
43
- {groupid: @hostgroupid2}
39
+ :host => host,
40
+ :interfaces => [{ :type => 1, :main => 1, :ip => '192.168.0.1', :dns => 'server.example.org', :port => 10050, :useip => 0 }],
41
+ :groups => [
42
+ {:groupid => @hostgroupid},
43
+ {:groupid => @hostgroupid2}
44
44
  ])
45
45
 
46
46
  expect(hostid).to be_kind_of Integer
47
- host = zbx.query(method: 'host.get', params: { hostids: [hostid], selectGroups: 'extend' }).first
47
+ host = zbx.query(:method => 'host.get', :params => { :hostids => [hostid], :selectGroups => 'extend' }).first
48
48
 
49
49
  expect(host['hostid'].to_i).to eq hostid
50
50
  expect(host['groups'].size).to eq 2
@@ -90,6 +90,11 @@ describe 'host' do
90
90
  it "should contains created host" do
91
91
  expect(zbx.hosts.get_full_data(:host => @host)[0]).to include("host" => @host)
92
92
  end
93
+
94
+ it "shoulld dump interfaces" do
95
+ expect(zbx.hosts.get_full_data(:host => @host, :params => {:selectInterfaces => "extend"})[0]["interfaces"][0]).to include("type" => "1")
96
+ expect(zbx.hosts.get_full_data(:host => @host, :params => {:selectInterfaces => "extend"})[0]["interfaces"][0]).to include("ip" => "10.20.48.88")
97
+ end
93
98
  end
94
99
 
95
100
  describe 'get_id' do
@@ -0,0 +1,79 @@
1
+ #encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe "hostinterface" do
6
+ before :all do
7
+ @hostgroup = gen_name 'hostgroup'
8
+ @hostgroupid = zbx.hostgroups.create(:name => @hostgroup)
9
+ end
10
+
11
+ context 'when interface not exists' do
12
+ before do
13
+ @host = gen_name 'host'
14
+ end
15
+
16
+ describe 'create' do
17
+ it 'should return integer id' do
18
+ @hostid = zbx.hosts.create(:host => @host,
19
+ :interfaces => [
20
+ {
21
+ :type => 1,
22
+ :main => 1,
23
+ :ip => "10.20.48.88",
24
+ :dns => "",
25
+ :port => 10050,
26
+ :useip => 1
27
+ }
28
+ ],
29
+ :groups => [:groupid => @hostgroupid]
30
+ )
31
+ interfaceid = zbx.hostinterfaces.create(
32
+ :hostid => @hostid,
33
+ :dns => "",
34
+ :ip => "1.1.1.1",
35
+ :main => 0,
36
+ :port => '10050',
37
+ :type => 1,
38
+ :useip => 1
39
+ )
40
+ interfaceid.should be_kind_of(Integer)
41
+ end
42
+
43
+ describe 'get_id' do
44
+ it "should return nil" do
45
+ random_id = gen_name('')
46
+ expect(zbx.hosts.get_id(:hostids => [random_id])).to be_kind_of(NilClass)
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ context 'when interface exists' do
53
+ before :all do
54
+ @host = gen_name 'host'
55
+ @hostid = zbx.hosts.create(
56
+ :host => @host,
57
+ :interfaces => [
58
+ {
59
+ :type => 1,
60
+ :main => 1,
61
+ :ip => "10.20.48.88",
62
+ :dns => "",
63
+ :port => 10050,
64
+ :useip => 1
65
+ }
66
+ ],
67
+ :groups => [:groupid => @hostgroupid]
68
+ )
69
+ @interfaceid = zbx.hostinterfaces.create(:hostid => @hostid, :type => 1, :main => 0, :ip => "10.20.48.88", :dns => "", :port => 10050, :useip => 1)
70
+ end
71
+
72
+ describe 'get_full_data' do
73
+ it "should contains created host" do
74
+ expect(zbx.hostinterfaces.get_full_data(:hostid => "#{@hostid}")[0]).to include("hostid" => "#{@hostid}")
75
+ end
76
+ end
77
+
78
+ end
79
+ 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: 2.2.2
4
+ version: 2.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasiliev D.V.
@@ -9,26 +9,26 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-07 00:00:00.000000000 Z
12
+ date: 2016-02-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ~>
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
20
  version: '1.6'
21
- - - '>='
21
+ - - ">="
22
22
  - !ruby/object:Gem::Version
23
23
  version: 1.6.0
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
- - - ~>
28
+ - - "~>"
29
29
  - !ruby/object:Gem::Version
30
30
  version: '1.6'
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.6.0
34
34
  description: Allows you to work with zabbix api from ruby.
@@ -39,9 +39,9 @@ executables: []
39
39
  extensions: []
40
40
  extra_rdoc_files: []
41
41
  files:
42
- - .gitignore
43
- - .rspec
44
- - .travis.yml
42
+ - ".gitignore"
43
+ - ".rspec"
44
+ - ".travis.yml"
45
45
  - Gemfile
46
46
  - Gemfile.lock
47
47
  - README.md
@@ -56,6 +56,7 @@ files:
56
56
  - lib/zabbixapi/classes/errors.rb
57
57
  - lib/zabbixapi/classes/graphs.rb
58
58
  - lib/zabbixapi/classes/hostgroups.rb
59
+ - lib/zabbixapi/classes/hostinterfaces.rb
59
60
  - lib/zabbixapi/classes/hosts.rb
60
61
  - lib/zabbixapi/classes/items.rb
61
62
  - lib/zabbixapi/classes/mediatypes.rb
@@ -76,6 +77,7 @@ files:
76
77
  - spec/graph.rb
77
78
  - spec/host.rb
78
79
  - spec/hostgroup.rb
80
+ - spec/hostinterface.rb
79
81
  - spec/item.rb
80
82
  - spec/mediatype.rb
81
83
  - spec/query.rb
@@ -97,17 +99,17 @@ require_paths:
97
99
  - lib
98
100
  required_ruby_version: !ruby/object:Gem::Requirement
99
101
  requirements:
100
- - - '>='
102
+ - - ">="
101
103
  - !ruby/object:Gem::Version
102
104
  version: '0'
103
105
  required_rubygems_version: !ruby/object:Gem::Requirement
104
106
  requirements:
105
- - - '>='
107
+ - - ">="
106
108
  - !ruby/object:Gem::Version
107
109
  version: '0'
108
110
  requirements: []
109
111
  rubyforge_project: zabbixapi
110
- rubygems_version: 2.2.2
112
+ rubygems_version: 2.4.3
111
113
  signing_key:
112
114
  specification_version: 4
113
115
  summary: Realization for Zabbix API.
@@ -118,6 +120,7 @@ test_files:
118
120
  - spec/graph.rb
119
121
  - spec/host.rb
120
122
  - spec/hostgroup.rb
123
+ - spec/hostinterface.rb
121
124
  - spec/item.rb
122
125
  - spec/mediatype.rb
123
126
  - spec/query.rb