sky_zabbix 2.2.0.1.2 → 2.4.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2612fdc7159aea8b6e28d595ba4e8e398ad081c6
4
- data.tar.gz: 57fd288b36269bae13b3c13104ddf1021694734b
3
+ metadata.gz: bdac882c1ec3d242254cf9d78b53f6463d6a0c82
4
+ data.tar.gz: dfaabecd497386ec8356d13c14aed9b71acd3475
5
5
  SHA512:
6
- metadata.gz: 80a4b6c689b0a2b1c25550fdf55ce704a35bb26d50930bd1458d9c244a8eef7092e5178489853f779107a2d0188e855e9fd82bbb68214da78b4c1f8a4cf5d290
7
- data.tar.gz: ef60f52b49098fae68d17fdaaed9763c6e64a2360683afd0c6b95dfc5cec8c4fcfdd92ef55bf6060f40aacf340ee1ded4a1111109857c958f616f55e97807f52
6
+ metadata.gz: 8b30adb1d063a50a7b23d45cab6347ad43958c90bad99b50545b34fdbd21583c0b6370db0baafc9bcb3163fe0085e67a70add6d705d67025f3bbfdb05b9e4494
7
+ data.tar.gz: d14d4562f206f73555e3a85fd6652063607a473b23e3c04c15a912e0d3177c1e23ffa3aad3e76c34b764572cfd9f042de62e8071487070e1c140e7c5b2f77c92
data/README.md CHANGED
@@ -1,8 +1,5 @@
1
1
  # SkyZabbix
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/sky_zabbix.svg)](http://badge.fury.io/rb/sky_zabbix)
4
- [![Inline docs](http://inch-ci.org/github/skyarch-networks/sky_zabbix.svg?branch=master)](http://inch-ci.org/github/skyarch-networks/sky_zabbix)
5
-
6
3
  SkyZabbix is a Zabbix API Wrapper written by Ruby.
7
4
 
8
5
  ## Installation
@@ -89,21 +86,7 @@ requests = []
89
86
  requests.push client.host.build_get()
90
87
  requests.push client.user.build_get()
91
88
  requests.push client.hostgroup.build_get()
92
- host_resp, user_resp, hostgroup_resp = client.batch(*requests)
93
- ```
94
-
95
- ### Logger
96
-
97
- Don't log on default.
98
- If logger is received to constructor, SkyZabbix start logging.
99
-
100
- ```ruby
101
- require 'logger'
102
- logger = Logger.new(STDOUT)
103
- client = SkyZabbix::Client.new(zabbix_url, logger: logger)
104
- client.login(zabbix_user, zabbix_pass)
105
-
106
- client.host.get() # => I, [2015-06-29T17:35:19.609971 #3500] INFO -- : [SkyZabbix 200 5.296144592] host.get({})
89
+ host_resp, user_resp, hostgroup_resp = cleint.batch(*requests)
107
90
  ```
108
91
 
109
92
  ## Development
data/Rakefile CHANGED
@@ -3,11 +3,14 @@ require "rspec/core/rake_task"
3
3
  require 'open3'
4
4
  require 'json'
5
5
 
6
+ require_relative 'lib/sky_zabbix/version'
7
+
6
8
  RSpec::Core::RakeTask.new(:spec)
7
9
 
8
10
  task :default => :spec
9
11
 
10
12
  namespace :generate do
13
+ #TODO: clone zabbix/zabbix, version
11
14
  desc "Generate list of method"
12
15
  task :methods do |task, args|
13
16
  out, err, status = Open3.capture3("php", "build.php")
@@ -24,40 +27,12 @@ namespace :release do
24
27
  task :all do |task, args|
25
28
  exec = -> (cmd) {
26
29
  print '> '; puts cmd.join(' ')
27
- r = system(*cmd)
28
- unless r
29
- raise "#{cmd} exit with #{$?}"
30
- end
31
- }
32
-
33
- get_env = -> (name) {
34
- v = ENV[name]
35
- raise "#{name} environment variable should be set!" unless v
36
- return v
30
+ system(*cmd)
37
31
  }
38
32
 
39
33
  versions = %w[2.2 2.4]
40
- path = get_env.('PATH_ZABBIX')
41
- lib_version = get_env.('LIB_VERSION')
34
+ path = ENV['PATH_ZABBIX']
42
35
 
43
- # check git status
44
- unless `git status --short`.empty?
45
- raise "Should commit some changes."
46
- end
47
-
48
- # Update version
49
- v_path = File.expand_path('../lib/sky_zabbix/version.rb', __FILE__)
50
- f = File.read(v_path)
51
- f[/^\s+LIB_VERSION = "([\d.]+)"$/, 1] = lib_version
52
- File.write(v_path, f)
53
-
54
- # version up commit and add tag and push.
55
- exec.(%W[git commit -am "Bump\ up\ version to #{lib_version}"])
56
- exec.(%W[git tag v#{lib_version}])
57
- exec.(%w[git push])
58
- exec.(%W[git push origin v#{lib_version}])
59
-
60
- # build gems
61
36
  versions.each do |v|
62
37
  Dir.chdir(path) do
63
38
  latest_tag = `git tag`.split("\n").select{|x|x =~ /^#{Regexp.escape(v)}/}.sort{|a, b|a[/\.(\d+)$/, 1].to_i <=> b[/\.(\d+)$/, 1].to_i}.last
@@ -66,9 +41,7 @@ namespace :release do
66
41
  Rake::Task['generate:methods'].execute
67
42
  Rake::Task['build'].execute
68
43
  end
69
-
70
- pkgs = Dir.glob(File.join(File.expand_path('../pkg/', __FILE__), "sky_zabbix-*#{lib_version}.gem"))
71
- # Push gems
44
+ pkgs = Dir.glob(File.join(File.expand_path('../pkg/', __FILE__), "sky_zabbix-*#{SkyZabbix::LIB_VERSION}.gem"))
72
45
  pkgs.each do |p|
73
46
  exec.(%W[gem push #{p}])
74
47
  end
@@ -1,4 +1,3 @@
1
- # TargetBase is a Base Class for target of Zabbix API method.
2
1
  # @abstract
3
2
  class SkyZabbix::Client::TargetBase
4
3
  # @return [String]
@@ -15,7 +14,6 @@ class SkyZabbix::Client::TargetBase
15
14
  @client = client
16
15
  end
17
16
 
18
- # Returns list of filtered primary key.
19
17
  # @param [Hash] filter
20
18
  # @return [Array<String>] List of ID
21
19
  def get_ids(filter)
@@ -26,7 +24,6 @@ class SkyZabbix::Client::TargetBase
26
24
  return _query('get', params).map{|x|x[pk]}
27
25
  end
28
26
 
29
- # Return filtered primary key of founded first.
30
27
  # @param [Hash] filter
31
28
  # @return [Array<String>] ID of founded first.
32
29
  def get_id(filter)
@@ -43,7 +40,6 @@ class SkyZabbix::Client::TargetBase
43
40
 
44
41
  # @param [String] method is method name. ex) get, create, delete ...
45
42
  # @param [Any] params is parameters.
46
- # @return [Hash{Symbol => Any}]
47
43
  def _build(method, params)
48
44
  raise "Should use method of sub class!" unless _zbx_class
49
45
  @client.build("#{_zbx_class}.#{method}", params)
@@ -53,9 +49,4 @@ class SkyZabbix::Client::TargetBase
53
49
  def _zbx_class
54
50
  return self.class._zbx_class
55
51
  end
56
-
57
- # @abstract
58
- def pk
59
- raise 'Should override pk method!'
60
- end
61
52
  end
@@ -13,17 +13,12 @@ methods.each do |name, v|
13
13
  v[:methods].each do |method|
14
14
  # Generate query method.
15
15
  # Example: user.login()
16
- # @param [Any] params
17
- # @return [Any] return query response.
18
16
  define_method(method) do |params={}|
19
17
  _query(method, params)
20
18
  end
21
19
 
22
20
  # Generate build method. For batch request
23
21
  # Example: user.build_login()
24
- # @param [Any] params
25
- # @return [Hash{}] return query response.
26
- # @return [Hash{Symbol => Any}]
27
22
  define_method("build_#{method}") do |params={}|
28
23
  _build(method, params)
29
24
  end
@@ -12,7 +12,6 @@ class SkyZabbix::Jsonrpc
12
12
 
13
13
  attr_accessor :token
14
14
 
15
- # Send normal request.
16
15
  # @param [String] method is json-rpc method name.
17
16
  # @param [Any?] params is json-rpc parameters.
18
17
  # @param [Boolean] notification
@@ -20,7 +19,23 @@ class SkyZabbix::Jsonrpc
20
19
  request(build(method, params, notification: notification))
21
20
  end
22
21
 
23
- # Send batch request.
22
+ # @param [Hash{String => Any}] builded is result of 'build' method.
23
+ # @return [Any?] return result of response
24
+ def request(builded)
25
+ uri = URI.parse(@uri)
26
+
27
+ resp = do_req(uri, builded)
28
+
29
+ return nil unless builded[:id] # when notification
30
+
31
+ # Parse and error handling
32
+ body = JSON.parse(resp.body)
33
+ raise Error.create(body) if body['error']
34
+
35
+ return body['result']
36
+ end
37
+
38
+ # XXX: エラー処理はこれでいい?
24
39
  # @example Return values.
25
40
  # rpc.batch(
26
41
  # rpc.build('a', 'A'),
@@ -35,8 +50,7 @@ class SkyZabbix::Jsonrpc
35
50
  # ) # => Error::BatchError.
36
51
  # # Can get response of 'a' from ex.result
37
52
  # @param [Array<Hash>] buildeds is Array of result of 'build' method.
38
- # @return [Array<Any|nil>]
39
- # @raise [Error::BatchError]
53
+ # @return [Array<Any|Error|nil>]
40
54
  def batch(buildeds)
41
55
  uri = URI.parse(@uri)
42
56
  resp = do_req(uri, buildeds)
@@ -69,7 +83,6 @@ class SkyZabbix::Jsonrpc
69
83
  # @param [String] method is json-rpc method name.
70
84
  # @param [Any?] params is json-rpc parameters.
71
85
  # @param [Boolean] notification
72
- # @return [Hash{Symbol => Any}]
73
86
  def build(method, params, notification: false)
74
87
  res = {
75
88
  jsonrpc: VERSION,
@@ -85,22 +98,6 @@ class SkyZabbix::Jsonrpc
85
98
 
86
99
  private
87
100
 
88
- # @param [Hash{String => Any}] builded is result of 'build' method.
89
- # @return [Any?] return result of response
90
- def request(builded)
91
- uri = URI.parse(@uri)
92
-
93
- resp = do_req(uri, builded)
94
-
95
- return nil unless builded[:id] # when notification
96
-
97
- # Parse and error handling
98
- body = JSON.parse(resp.body)
99
- raise Error.create(body) if body['error']
100
-
101
- return body['result']
102
- end
103
-
104
101
  # @return [Integer] random ID.
105
102
  def id_gen
106
103
  return rand(10**12)
@@ -134,7 +131,7 @@ class SkyZabbix::Jsonrpc
134
131
  # @param [Hash|Array] body is request body.
135
132
  # @param [Net::HTTPResponse] resp
136
133
  def logging_request(start_time, body, resp)
137
- return unless @logger && resp
134
+ return unless @logger
138
135
 
139
136
  sec = Time.now - start_time
140
137
  msg_body =
@@ -1,5 +1,4 @@
1
1
  class SkyZabbix::Jsonrpc::Error < StandardError
2
- # @param [Array<Hash{String => Any}>] body is response body.
3
2
  def initialize(body)
4
3
  @error = body['error']
5
4
  msg = "#{@error['message']} #{@error['data']}"
@@ -14,8 +13,6 @@ class SkyZabbix::Jsonrpc::Error < StandardError
14
13
  class InternalError < self; end # Internal JSON-RPC error.
15
14
  class ServerError < self; end # Reserved for implementation-defined server-errors.
16
15
 
17
- # @param [Array<Hash{String => Any}>] body is response body.
18
- # @return [Error] A Error instance.
19
16
  def self.create(body)
20
17
  klass =
21
18
  case body['code']
@@ -44,7 +41,7 @@ class SkyZabbix::Jsonrpc::Error < StandardError
44
41
  return errors.map(&:message).join(', ')
45
42
  end
46
43
 
47
- # @param [Array<Hash{String => Any}>] body is response body.
44
+ # @param [Array<Hash<String => Any>] body is response body.
48
45
  # @return [Boolean]
49
46
  def self.error?(body)
50
47
  return body.any?{|x|x['error']}
@@ -1,7 +1,7 @@
1
1
  require 'json'
2
2
 
3
3
  module SkyZabbix
4
- LIB_VERSION = "0.1.2"
4
+ LIB_VERSION = "0.1.0"
5
5
  ZABBIX_VERSION = JSON.parse(File.read(File.expand_path('../methods.json', __FILE__)), symbolize_names: true)[:version]
6
6
  VERSION = ZABBIX_VERSION + '.' + LIB_VERSION
7
7
  end
@@ -16,7 +16,6 @@ Gem::Specification.new do |spec|
16
16
 
17
17
 
18
18
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
- spec.files.push('lib/sky_zabbix/methods.json')
20
19
  spec.bindir = "exe"
21
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
21
  spec.require_paths = ["lib"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sky_zabbix
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0.1.2
4
+ version: 2.4.0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Skyarch Networks Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-08 00:00:00.000000000 Z
11
+ date: 2015-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -120,7 +120,6 @@ files:
120
120
  - lib/sky_zabbix/client/target_gen.rb
121
121
  - lib/sky_zabbix/jsonrpc.rb
122
122
  - lib/sky_zabbix/jsonrpc/errors.rb
123
- - lib/sky_zabbix/methods.json
124
123
  - lib/sky_zabbix/version.rb
125
124
  - sky_zabbix.gemspec
126
125
  homepage: https://github.com/skyarch-networks/sky_zabbix
@@ -143,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
142
  version: '0'
144
143
  requirements: []
145
144
  rubyforge_project:
146
- rubygems_version: 2.4.5.1
145
+ rubygems_version: 2.4.5
147
146
  signing_key:
148
147
  specification_version: 4
149
148
  summary: An API Wrapper of Zabbix