zabbixapi 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c92de7e8f577d018cb8da54114638729fb7117d5
4
- data.tar.gz: 5dc0590f4332ba0590cb07eed6c2cb1f07c73d38
3
+ metadata.gz: 487cf74b4af955baf4a18b789b90185235a789a1
4
+ data.tar.gz: d19ee4e5b3bf2e5f514795bc83a69cde75d8c29c
5
5
  SHA512:
6
- metadata.gz: ef2229602eac1fac5257b9d32c2d45f079d163a989a3f25efa2ae80390ea3ffd840f6f8a637dcd73df593054480c21c3b7674b5c3f20b4300bd01a7ebf3f2f6f
7
- data.tar.gz: 159e41fb0f8467456c808c0e4895e87aaf8f3ee0d0d462879815c568f8773ce3838be74234581eca655f466a234155c425a89d43b3018efa61e5f65c54476542
6
+ metadata.gz: bc2f217355f205c40eb991469834a45d84e7f89adf7f28a9b9233e64a085c06300fb13d49bb2c96064681ea3f44f986a84fa1952e86416b05b6547e1fcfd1480
7
+ data.tar.gz: acc66046eeb21fdccf0404d19c3eedef36bb31fdd49945e8eb3a6f7793e15c0f0d65f2c3128b9591af763b0157f9d0f29b1f06149d853c27798132a5899f9c51
@@ -1,3 +1,9 @@
1
+ ## 4.1.0
2
+
3
+ [PR #82](https://github.com/express42/zabbixapi/pull/82) Add logout method (Thanks @baurmatt)
4
+
5
+ [PR #86](https://github.com/express42/zabbixapi/pull/86) Feature: add support for Discovery Rules (`drule` API) (Thanks @lehn-etracker)
6
+
1
7
  ## 4.0.0
2
8
 
3
9
  [PR #90](https://github.com/express42/zabbixapi/pull/90) Add 4.0 support (Thanks @svdasein)
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2017 Express 42
3
+ Copyright (c) 2015-2018 Express 42
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in
data/README.md CHANGED
@@ -59,7 +59,6 @@ dropped.
59
59
  ## Dependencies
60
60
 
61
61
  * net/http
62
- * net/https
63
62
  * json
64
63
 
65
64
  ## Contributing
@@ -28,6 +28,7 @@ require 'zabbixapi/classes/usergroups'
28
28
  require 'zabbixapi/classes/usermacros'
29
29
  require 'zabbixapi/classes/users'
30
30
  require 'zabbixapi/classes/valuemaps'
31
+ require 'zabbixapi/classes/drules'
31
32
 
32
33
  class ZabbixApi
33
34
  # @return [ZabbixApi::Client]
@@ -54,6 +55,12 @@ class ZabbixApi
54
55
  @client.api_request(:method => data[:method], :params => data[:params])
55
56
  end
56
57
 
58
+ # Invalidate current authentication token
59
+ # @return [Boolean]
60
+ def logout
61
+ @client.logout
62
+ end
63
+
57
64
  # Initializes a new ZabbixApi object
58
65
  #
59
66
  # @param options [Hash]
@@ -161,4 +168,9 @@ class ZabbixApi
161
168
  def valuemaps
162
169
  @valuemaps ||= ValueMaps.new(@client)
163
170
  end
171
+
172
+ # @return [ZabbixApi::Drules]
173
+ def drules
174
+ @drules ||= Drules.new(@client)
175
+ end
164
176
  end
@@ -0,0 +1,55 @@
1
+ class ZabbixApi
2
+ class Drules < Basic
3
+ # The method name used for interacting with Drules via Zabbix API
4
+ #
5
+ # @return [String]
6
+ def method_name
7
+ 'drule'
8
+ end
9
+
10
+ # The id field name used for identifying specific Drule objects via Zabbix API
11
+ #
12
+ # @return [String]
13
+ def indentify
14
+ 'name'
15
+ end
16
+
17
+ # The default options used when creating Drule objects via Zabbix API
18
+ #
19
+ # @return [Hash]
20
+ def default_options
21
+ {
22
+ name: nil,
23
+ iprange: nil,
24
+ delay: 3600,
25
+ status: 0,
26
+ }
27
+ end
28
+
29
+ # Get or Create Drule object using Zabbix API
30
+ #
31
+ # @param data [Hash] Needs to include name to properly identify Drule via Zabbix API
32
+ # @raise [ApiError] Error returned when there is a problem with the Zabbix API call.
33
+ # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
34
+ # @return [Integer] Zabbix object id
35
+ def get_or_create(data)
36
+ log "[DEBUG] Call get_or_create with parameters: #{data.inspect}"
37
+
38
+ unless (id = get_id(name: data[:name]))
39
+ id = create(data)
40
+ end
41
+ id
42
+ end
43
+
44
+ # Create or update Drule object using Zabbix API
45
+ #
46
+ # @param data [Hash] Needs to include name to properly identify Drules via Zabbix API
47
+ # @raise [ApiError] Error returned when there is a problem with the Zabbix API call.
48
+ # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
49
+ # @return [Integer] Zabbix object id
50
+ def create_or_update(data)
51
+ druleid = get_id(name: data[:name])
52
+ druleid ? update(data.merge(druleid: druleid)) : create(data)
53
+ end
54
+ end
55
+ end
@@ -32,6 +32,16 @@ class ZabbixApi
32
32
  )
33
33
  end
34
34
 
35
+ # Log out from the Zabbix Server
36
+ #
37
+ # @return [Boolean]
38
+ def logout
39
+ api_request(
40
+ :method => 'user.logout',
41
+ :params => []
42
+ )
43
+ end
44
+
35
45
  # Initializes a new Client object
36
46
  #
37
47
  # @param options [Hash]
@@ -1,3 +1,3 @@
1
1
  class ZabbixApi
2
- VERSION = '4.0.0'.freeze
2
+ VERSION = '4.1.0'.freeze
3
3
  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: 4.0.0
4
+ version: 4.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: 2018-12-20 00:00:00.000000000 Z
12
+ date: 2018-12-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: http
@@ -73,6 +73,7 @@ files:
73
73
  - lib/zabbixapi/classes/actions.rb
74
74
  - lib/zabbixapi/classes/applications.rb
75
75
  - lib/zabbixapi/classes/configurations.rb
76
+ - lib/zabbixapi/classes/drules.rb
76
77
  - lib/zabbixapi/classes/errors.rb
77
78
  - lib/zabbixapi/classes/graphs.rb
78
79
  - lib/zabbixapi/classes/hostgroups.rb