zabbix_manager 5.0.4 → 5.0.7

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -4
  3. data/LICENSE.txt +1 -1
  4. data/README.md +76 -21
  5. data/lib/zabbix_manager/basic/basic_alias.rb +2 -0
  6. data/lib/zabbix_manager/basic/basic_extend.rb +11 -9
  7. data/lib/zabbix_manager/basic/basic_func.rb +9 -5
  8. data/lib/zabbix_manager/basic/basic_init.rb +6 -4
  9. data/lib/zabbix_manager/basic/basic_logic.rb +7 -5
  10. data/lib/zabbix_manager/classes/actions.rb +6 -4
  11. data/lib/zabbix_manager/classes/applications.rb +4 -2
  12. data/lib/zabbix_manager/classes/configurations.rb +6 -4
  13. data/lib/zabbix_manager/classes/drules.rb +5 -3
  14. data/lib/zabbix_manager/classes/errors.rb +10 -9
  15. data/lib/zabbix_manager/classes/events.rb +4 -3
  16. data/lib/zabbix_manager/classes/graphs.rb +13 -11
  17. data/lib/zabbix_manager/classes/hostgroups.rb +13 -11
  18. data/lib/zabbix_manager/classes/hosts.rb +36 -34
  19. data/lib/zabbix_manager/classes/httptests.rb +4 -2
  20. data/lib/zabbix_manager/classes/items.rb +52 -50
  21. data/lib/zabbix_manager/classes/maintenance.rb +4 -2
  22. data/lib/zabbix_manager/classes/mediatypes.rb +15 -13
  23. data/lib/zabbix_manager/classes/problems.rb +31 -30
  24. data/lib/zabbix_manager/classes/proxies.rb +9 -7
  25. data/lib/zabbix_manager/classes/roles.rb +19 -17
  26. data/lib/zabbix_manager/classes/screens.rb +6 -4
  27. data/lib/zabbix_manager/classes/scripts.rb +6 -4
  28. data/lib/zabbix_manager/classes/server.rb +3 -1
  29. data/lib/zabbix_manager/classes/templates.rb +18 -16
  30. data/lib/zabbix_manager/classes/triggers.rb +41 -37
  31. data/lib/zabbix_manager/classes/unusable.rb +2 -0
  32. data/lib/zabbix_manager/classes/usergroups.rb +11 -9
  33. data/lib/zabbix_manager/classes/usermacros.rb +38 -37
  34. data/lib/zabbix_manager/classes/users.rb +11 -9
  35. data/lib/zabbix_manager/classes/valuemaps.rb +5 -3
  36. data/lib/zabbix_manager/client.rb +40 -30
  37. data/lib/zabbix_manager/version.rb +3 -1
  38. data/lib/zabbix_manager.rb +36 -35
  39. data/zabbix_manager.gemspec +43 -0
  40. metadata +143 -19
  41. data/.idea/workspace.xml +0 -69
  42. data/.rubocop.yml +0 -13
  43. data/CODE_OF_CONDUCT.md +0 -84
  44. data/Gemfile +0 -10
  45. data/Rakefile +0 -8
  46. data/bin/console +0 -15
  47. data/bin/setup +0 -8
  48. data/zabbix_manager-5.0.1.gem +0 -0
  49. data/zabbix_manager-5.0.2.gem +0 -0
@@ -1,17 +1,19 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ZabbixManager
2
4
  class Usermacros < Basic
3
5
  # The id field name used for identifying specific User macro objects via Zabbix API
4
6
  #
5
7
  # @return [String]
6
8
  def identify
7
- 'macro'
9
+ "macro"
8
10
  end
9
11
 
10
12
  # The method name used for interacting with User macros via Zabbix API
11
13
  #
12
14
  # @return [String]
13
15
  def method_name
14
- 'usermacro'
16
+ "usermacro"
15
17
  end
16
18
 
17
19
  # Get User macro object id from Zabbix API based on provided data
@@ -27,11 +29,11 @@ class ZabbixManager
27
29
  data = symbolize_keys(data) if data.key?(identify)
28
30
  # raise an error if identify name was not supplied
29
31
  name = data[identify.to_sym]
30
- raise ManagerError.new("#{identify} not supplied in call to get_id") if name.nil?
32
+ raise ManagerError, "#{identify} not supplied in call to get_id" if name.nil?
31
33
 
32
- result = request(data, 'usermacro.get', 'hostmacroid')
34
+ result = request(data, "usermacro.get", "hostmacroid")
33
35
 
34
- !result.empty? && result[0].key?('hostmacroid') ? result[0]['hostmacroid'].to_i : nil
36
+ !result.empty? && result[0].key?("hostmacroid") ? result[0]["hostmacroid"].to_i : nil
35
37
  end
36
38
 
37
39
  # Get Global macro object id from Zabbix API based on provided data
@@ -47,11 +49,11 @@ class ZabbixManager
47
49
  data = symbolize_keys(data) if data.key?(identify)
48
50
  # raise an error if identify name was not supplied
49
51
  name = data[identify.to_sym]
50
- raise ManagerError.new("#{identify} not supplied in call to get_id_global") if name.nil?
52
+ raise ManagerError, "#{identify} not supplied in call to get_id_global" if name.nil?
51
53
 
52
- result = request(data, 'usermacro.get', 'globalmacroid')
54
+ result = request(data, "usermacro.get", "globalmacroid")
53
55
 
54
- !result.empty? && result[0].key?('globalmacroid') ? result[0]['globalmacroid'].to_i : nil
56
+ !result.empty? && result[0].key?("globalmacroid") ? result[0]["globalmacroid"].to_i : nil
55
57
  end
56
58
 
57
59
  # Get full/extended User macro data from Zabbix API
@@ -63,7 +65,7 @@ class ZabbixManager
63
65
  def get_full_data(data)
64
66
  log "[DEBUG] Call get_full_data with parameters: #{data.inspect}"
65
67
 
66
- request(data, 'usermacro.get', 'hostmacroid')
68
+ request(data, "usermacro.get", "hostmacroid")
67
69
  end
68
70
 
69
71
  # Get full/extended Global macro data from Zabbix API
@@ -75,7 +77,7 @@ class ZabbixManager
75
77
  def get_full_data_global(data)
76
78
  log "[DEBUG] Call get_full_data_global with parameters: #{data.inspect}"
77
79
 
78
- request(data, 'usermacro.get', 'globalmacroid')
80
+ request(data, "usermacro.get", "globalmacroid")
79
81
  end
80
82
 
81
83
  # Create new User macro object using Zabbix API (with defaults)
@@ -86,7 +88,7 @@ class ZabbixManager
86
88
  # @return [Integer] The object id if a single object is created
87
89
  # @return [Boolean] True/False if multiple objects are created
88
90
  def create(data)
89
- request(data, 'usermacro.create', 'hostmacroids')
91
+ request(data, "usermacro.create", "hostmacroids")
90
92
  end
91
93
 
92
94
  # Create new Global macro object using Zabbix API (with defaults)
@@ -97,7 +99,7 @@ class ZabbixManager
97
99
  # @return [Integer] The object id if a single object is created
98
100
  # @return [Boolean] True/False if multiple objects are created
99
101
  def create_global(data)
100
- request(data, 'usermacro.createglobal', 'globalmacroids')
102
+ request(data, "usermacro.createglobal", "globalmacroids")
101
103
  end
102
104
 
103
105
  # Delete User macro object using Zabbix API
@@ -109,7 +111,7 @@ class ZabbixManager
109
111
  # @return [Boolean] True/False if multiple objects are deleted
110
112
  def delete(data)
111
113
  data_delete = [data]
112
- request(data_delete, 'usermacro.delete', 'hostmacroids')
114
+ request(data_delete, "usermacro.delete", "hostmacroids")
113
115
  end
114
116
 
115
117
  # Delete Global macro object using Zabbix API
@@ -121,7 +123,7 @@ class ZabbixManager
121
123
  # @return [Boolean] True/False if multiple objects are deleted
122
124
  def delete_global(data)
123
125
  data_delete = [data]
124
- request(data_delete, 'usermacro.deleteglobal', 'globalmacroids')
126
+ request(data_delete, "usermacro.deleteglobal", "globalmacroids")
125
127
  end
126
128
 
127
129
  # Update User macro object using Zabbix API
@@ -133,7 +135,7 @@ class ZabbixManager
133
135
  # @return [Integer] The object id if a single object is created
134
136
  # @return [Boolean] True/False if multiple objects are created
135
137
  def update(data)
136
- request(data, 'usermacro.update', 'hostmacroids')
138
+ request(data, "usermacro.update", "hostmacroids")
137
139
  end
138
140
 
139
141
  # Update Global macro object using Zabbix API
@@ -145,7 +147,7 @@ class ZabbixManager
145
147
  # @return [Integer] The object id if a single object is created
146
148
  # @return [Boolean] True/False if multiple objects are created
147
149
  def update_global(data)
148
- request(data, 'usermacro.updateglobal', 'globalmacroids')
150
+ request(data, "usermacro.updateglobal", "globalmacroids")
149
151
  end
150
152
 
151
153
  # Get or Create User macro object using Zabbix API
@@ -200,29 +202,28 @@ class ZabbixManager
200
202
  globalmacroid ? update_global(data.merge(globalmacroid: globalmacroid)) : create_global(data)
201
203
  end
202
204
 
203
- private
204
-
205
- # Custom request method to handle both User and Global macros in one
206
- #
207
- # @param data [Hash] Needs to include macro and hostid to properly identify Global macros via Zabbix API
208
- # @param method [String] Zabbix API method to use for the request
209
- # @param result_key [String] Which key to use for parsing results based on User vs Global macros
210
- # @raise [ManagerError] Error returned when there is a problem with the Zabbix API call.
211
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
212
- # @return [Integer] Zabbix object id
213
- def request(data, method, result_key)
214
- # Zabbix has different result formats for gets vs updates
215
- if method.include?('.get')
216
- if result_key.include?('global')
217
- @client.api_request(method: method, params: { globalmacro: true, filter: data })
205
+ private
206
+ # Custom request method to handle both User and Global macros in one
207
+ #
208
+ # @param data [Hash] Needs to include macro and hostid to properly identify Global macros via Zabbix API
209
+ # @param method [String] Zabbix API method to use for the request
210
+ # @param result_key [String] Which key to use for parsing results based on User vs Global macros
211
+ # @raise [ManagerError] Error returned when there is a problem with the Zabbix API call.
212
+ # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
213
+ # @return [Integer] Zabbix object id
214
+ def request(data, method, result_key)
215
+ # Zabbix has different result formats for gets vs updates
216
+ if method.include?(".get")
217
+ if result_key.include?("global")
218
+ @client.api_request(method: method, params: { globalmacro: true, filter: data })
219
+ else
220
+ @client.api_request(method: method, params: { filter: data })
221
+ end
218
222
  else
219
- @client.api_request(method: method, params: { filter: data })
220
- end
221
- else
222
- result = @client.api_request(method: method, params: data)
223
+ result = @client.api_request(method: method, params: data)
223
224
 
224
- result.key?(result_key) && !result[result_key].empty? ? result[result_key][0].to_i : nil
225
+ result.key?(result_key) && !result[result_key].empty? ? result[result_key][0].to_i : nil
226
+ end
225
227
  end
226
- end
227
228
  end
228
229
  end
@@ -1,31 +1,33 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ZabbixManager
2
4
  class Users < Basic
3
5
  # The method name used for interacting with Users via Zabbix API
4
6
  #
5
7
  # @return [String]
6
8
  def method_name
7
- 'user'
9
+ "user"
8
10
  end
9
11
 
10
12
  # The keys field name used for User objects via Zabbix API
11
13
  #
12
14
  # @return [String]
13
15
  def keys
14
- 'userids'
16
+ "userids"
15
17
  end
16
18
 
17
19
  # The key field name used for User objects via Zabbix API
18
20
  #
19
21
  # @return [String]
20
22
  def key
21
- 'userid'
23
+ "userid"
22
24
  end
23
25
 
24
26
  # The id field name used for identifying specific User objects via Zabbix API
25
27
  #
26
28
  # @return [String]
27
29
  def identify
28
- 'alias'
30
+ "alias"
29
31
  end
30
32
 
31
33
  def medias_helper(data, action)
@@ -34,11 +36,11 @@ class ZabbixManager
34
36
  params: data[:userids].map do |t|
35
37
  {
36
38
  userid: t,
37
- user_medias: data[:media],
39
+ user_medias: data[:media]
38
40
  }
39
- end,
41
+ end
40
42
  )
41
- result ? result['userids'][0].to_i : nil
43
+ result ? result["userids"][0].to_i : nil
42
44
  end
43
45
 
44
46
  # Add media to users using Zabbix API
@@ -48,7 +50,7 @@ class ZabbixManager
48
50
  # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
49
51
  # @return [Integer] Zabbix object id (media)
50
52
  def add_medias(data)
51
- medias_helper(data, 'update')
53
+ medias_helper(data, "update")
52
54
  end
53
55
 
54
56
  # Update media for users using Zabbix API
@@ -58,7 +60,7 @@ class ZabbixManager
58
60
  # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
59
61
  # @return [Integer] Zabbix object id (user)
60
62
  def update_medias(data)
61
- medias_helper(data, 'update')
63
+ medias_helper(data, "update")
62
64
  end
63
65
  end
64
66
  end
@@ -1,24 +1,26 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ZabbixManager
2
4
  class ValueMaps < Basic
3
5
  # The method name used for interacting with ValueMaps via Zabbix API
4
6
  #
5
7
  # @return [String]
6
8
  def method_name
7
- 'valuemap'
9
+ "valuemap"
8
10
  end
9
11
 
10
12
  # The key field name used for ValueMap objects via Zabbix API
11
13
  #
12
14
  # @return [String]
13
15
  def key
14
- 'valuemapid'
16
+ "valuemapid"
15
17
  end
16
18
 
17
19
  # The id field name used for identifying specific ValueMap objects via Zabbix API
18
20
  #
19
21
  # @return [String]
20
22
  def identify
21
- 'name'
23
+ "name"
22
24
  end
23
25
 
24
26
  # Get or Create ValueMap object using Zabbix API
@@ -1,6 +1,8 @@
1
- require 'net/http'
2
- require 'json'
3
- require 'openssl'
1
+ # frozen_string_literal: true
2
+
3
+ require "net/http"
4
+ require "json"
5
+ require "openssl"
4
6
 
5
7
  class ZabbixManager
6
8
  class Client
@@ -10,14 +12,14 @@ class ZabbixManager
10
12
 
11
13
  # @return [Integer]
12
14
  def id
13
- rand(800_000)
15
+ rand 10_000
14
16
  end
15
17
 
16
18
  # Returns the API version from the Zabbix Server
17
19
  #
18
20
  # @return [String, Hash]
19
21
  def api_version
20
- api_request(method: 'apiinfo.version', params: {})
22
+ api_request(method: "apiinfo.version", params: {})
21
23
  end
22
24
 
23
25
  # Log in to the Zabbix Server and generate an auth token using the API
@@ -25,9 +27,9 @@ class ZabbixManager
25
27
  # @return [Hash, String]
26
28
  def auth
27
29
  api_request(
28
- method: 'user.login',
30
+ method: "user.login",
29
31
  params: {
30
- user: @options[:user],
32
+ user: @options[:user],
31
33
  password: @options[:password]
32
34
  }
33
35
  )
@@ -43,7 +45,7 @@ class ZabbixManager
43
45
  # Initializes a new Client object
44
46
  #
45
47
  # @param options [Hash]
46
- # @option opts [String] :url The url of zabbixapi(example: 'http://localhost/zabbix/api_jsonrpc.php')
48
+ # @option opts [String] :url The url of zabbix_manager(example: 'http://localhost/zabbix/api_jsonrpc.php')
47
49
  # @option opts [String] :user
48
50
  # @option opts [String] :password
49
51
  # @option opts [String] :http_user A user for basic auth.(optional)
@@ -53,23 +55,24 @@ class ZabbixManager
53
55
  # @return [ZabbixManager::Client]
54
56
  def initialize(options = {})
55
57
  @options = options
56
- if !ENV['http_proxy'].nil? && options[:no_proxy] != true
57
- @proxy_uri = URI.parse(ENV['http_proxy'])
58
+ if !ENV["http_proxy"].nil? && options[:no_proxy] != true
59
+ @proxy_uri = URI.parse(ENV["http_proxy"])
58
60
  @proxy_host = @proxy_uri.host
59
61
  @proxy_port = @proxy_uri.port
60
62
  @proxy_user, @proxy_pass = @proxy_uri.userinfo&.split(/:/) if @proxy_uri.userinfo
61
63
  end
62
64
 
63
- if api_version.match? /^7\.\d+\.\d+$/
64
- message = "Zabbix API version: #{api_version} is not supported by this version of zabbixapi"
65
+ if api_version.match?(/^7\.\d+\.\d+$/)
66
+ message = "Zabbix API version: #{api_version} is not supported by this version of zabbix_manager"
65
67
  if @options[:ignore_version]
66
68
  puts "[WARNING] #{message}" if @options[:debug]
67
69
  else
68
- raise ZabbixManager::ManagerError.new(message)
70
+ raise ZabbixManager::ManagerError, message
69
71
  end
70
72
  end
71
73
 
72
74
  @auth_hash = auth
75
+ puts "[DEBUG] Auth token: #{@auth_hash}" if @options[:debug]
73
76
  end
74
77
 
75
78
  # Convert message body to JSON string for the Zabbix API
@@ -77,16 +80,17 @@ class ZabbixManager
77
80
  # @param body [Hash]
78
81
  # @return [String]
79
82
  def message_json(body)
80
- message = {
81
- method: body[:method],
82
- params: body[:params],
83
- id: id,
84
- jsonrpc: '2.0'
83
+ message = {
84
+ method: body[:method],
85
+ params: body[:params],
86
+ id: id,
87
+ jsonrpc: "2.0"
85
88
  }
86
89
 
87
- message[:auth] = @auth_hash unless body[:method] == 'apiinfo.version' || body[:method] == 'user.login'
90
+ # 除登录认证和获取版本后之外,都需要携带TOKEN查询
91
+ message[:auth] = @auth_hash unless body[:method] == "apiinfo.version" || body[:method] == "user.login"
88
92
 
89
- JSON.generate(message)
93
+ JSON(message)
90
94
  end
91
95
 
92
96
  # @param body [String]
@@ -105,7 +109,7 @@ class ZabbixManager
105
109
  Net::HTTP.new(uri.host, uri.port)
106
110
  end
107
111
 
108
- if uri.scheme == 'https'
112
+ if uri.scheme == "https"
109
113
  http.use_ssl = true
110
114
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
111
115
  end
@@ -115,33 +119,39 @@ class ZabbixManager
115
119
 
116
120
  request = Net::HTTP::Post.new(uri.request_uri)
117
121
  request.basic_auth @options[:http_user], @options[:http_password] if @options[:http_user]
118
- request.add_field('Content-Type', 'application/json-rpc')
122
+ request.add_field("Content-Type", "application/json-rpc")
119
123
  request.body = body
124
+ puts "[DEBUG] HTTP request params: #{request.body}" if @options[:debug]
120
125
 
121
126
  response = http.request(request)
127
+ raise HttpError.new("HTTP Error: #{response.code} on #{@options[:url]}", response) unless response.code == "200"
122
128
 
123
- raise HttpError.new("HTTP Error: #{response.code} on #{@options[:url]}", response) unless response.code == '200'
124
-
125
- puts "[DEBUG] Get answer: #{response.body}" if @options[:debug]
129
+ puts "[DEBUG] HTTP response answer: #{response.body}" if @options[:debug]
126
130
  response.body
127
131
  end
128
132
 
129
133
  # @param body [String]
130
134
  # @return [Hash, String]
131
135
  def _request(body)
132
- puts "[DEBUG] Send request: #{body}" if @options[:debug]
133
136
  result = JSON.parse(http_request(body))
134
137
  # 异常信息抛出
135
- raise ManagerError.new("Server answer API error\n #{JSON.pretty_unparse(result['error'])}\n on request:\n #{pretty_body(body)}", result) if result['error']
138
+ if result["error"]
139
+ raise ManagerError.new(
140
+ "Server answer API error\n #{JSON.pretty_unparse(result["error"])}\n on request:\n #{pretty_body(body)}", result
141
+ )
142
+ end
136
143
 
137
- result['result']
144
+ result["result"]
138
145
  end
139
146
 
140
147
  def pretty_body(body)
141
- parsed_body = JSON.parse(body)
148
+ parsed_body = JSON.parse(body)
142
149
 
143
150
  # If password is in body hide it
144
- parsed_body['params']['password'] = '***' if parsed_body['params'].is_a?(Hash) && parsed_body['params'].key?('password')
151
+ if parsed_body["params"].is_a?(Hash) && parsed_body["params"].key?("password")
152
+ parsed_body["params"]["password"] =
153
+ "***"
154
+ end
145
155
 
146
156
  JSON.pretty_unparse(parsed_body)
147
157
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ZabbixManager
2
- VERSION = '5.0.4'.freeze
4
+ VERSION = "5.0.7"
3
5
  end
@@ -1,37 +1,39 @@
1
- require 'zabbix_manager/version'
2
- require 'zabbix_manager/client'
3
-
4
- require 'zabbix_manager/basic/basic_alias'
5
- require 'zabbix_manager/basic/basic_func'
6
- require 'zabbix_manager/basic/basic_init'
7
- require 'zabbix_manager/basic/basic_logic'
8
-
9
- require 'zabbix_manager/classes/actions'
10
- require 'zabbix_manager/classes/applications'
11
- require 'zabbix_manager/classes/configurations'
12
- require 'zabbix_manager/classes/errors'
13
- require 'zabbix_manager/classes/events'
14
- require 'zabbix_manager/classes/graphs'
15
- require 'zabbix_manager/classes/hostgroups'
16
- require 'zabbix_manager/classes/hosts'
17
- require 'zabbix_manager/classes/httptests'
18
- require 'zabbix_manager/classes/items'
19
- require 'zabbix_manager/classes/maintenance'
20
- require 'zabbix_manager/classes/mediatypes'
21
- require 'zabbix_manager/classes/proxies'
22
- require 'zabbix_manager/classes/problems'
23
- require 'zabbix_manager/classes/roles'
24
- require 'zabbix_manager/classes/screens'
25
- require 'zabbix_manager/classes/scripts'
26
- require 'zabbix_manager/classes/server'
27
- require 'zabbix_manager/classes/templates'
28
- require 'zabbix_manager/classes/triggers'
29
- require 'zabbix_manager/classes/unusable'
30
- require 'zabbix_manager/classes/usergroups'
31
- require 'zabbix_manager/classes/usermacros'
32
- require 'zabbix_manager/classes/users'
33
- require 'zabbix_manager/classes/valuemaps'
34
- require 'zabbix_manager/classes/drules'
1
+ # frozen_string_literal: true
2
+
3
+ require "zabbix_manager/version"
4
+ require "zabbix_manager/client"
5
+
6
+ require "zabbix_manager/basic/basic_alias"
7
+ require "zabbix_manager/basic/basic_func"
8
+ require "zabbix_manager/basic/basic_init"
9
+ require "zabbix_manager/basic/basic_logic"
10
+
11
+ require "zabbix_manager/classes/actions"
12
+ require "zabbix_manager/classes/applications"
13
+ require "zabbix_manager/classes/configurations"
14
+ require "zabbix_manager/classes/errors"
15
+ require "zabbix_manager/classes/events"
16
+ require "zabbix_manager/classes/graphs"
17
+ require "zabbix_manager/classes/hostgroups"
18
+ require "zabbix_manager/classes/hosts"
19
+ require "zabbix_manager/classes/httptests"
20
+ require "zabbix_manager/classes/items"
21
+ require "zabbix_manager/classes/maintenance"
22
+ require "zabbix_manager/classes/mediatypes"
23
+ require "zabbix_manager/classes/proxies"
24
+ require "zabbix_manager/classes/problems"
25
+ require "zabbix_manager/classes/roles"
26
+ require "zabbix_manager/classes/screens"
27
+ require "zabbix_manager/classes/scripts"
28
+ require "zabbix_manager/classes/server"
29
+ require "zabbix_manager/classes/templates"
30
+ require "zabbix_manager/classes/triggers"
31
+ require "zabbix_manager/classes/unusable"
32
+ require "zabbix_manager/classes/usergroups"
33
+ require "zabbix_manager/classes/usermacros"
34
+ require "zabbix_manager/classes/users"
35
+ require "zabbix_manager/classes/valuemaps"
36
+ require "zabbix_manager/classes/drules"
35
37
 
36
38
  class ZabbixManager
37
39
  # @return [ZabbixManager::Client]
@@ -192,4 +194,3 @@ class ZabbixManager
192
194
  @drules ||= Drules.new(@client)
193
195
  end
194
196
  end
195
-
@@ -0,0 +1,43 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ lib = File.expand_path("../lib", __FILE__)
5
+
6
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
7
+
8
+ require "zabbix_manager/version"
9
+
10
+ Gem::Specification.new do |spec|
11
+ spec.add_dependency "http", "~> 4.0"
12
+ spec.add_dependency "json", "~> 2.0"
13
+ spec.add_development_dependency "bundler", "~> 2.3", ">= 2.3.9"
14
+
15
+ spec.add_development_dependency "rspec", "~> 3.11"
16
+ spec.add_development_dependency "yard", "~> 0.9.27"
17
+ spec.add_development_dependency "yardstick", "~> 0.9.9"
18
+ spec.add_development_dependency "rubocop", "~> 1.25", ">= 1.25.1"
19
+ spec.add_development_dependency "rubocop-minitest", "~> 0.18.0"
20
+ spec.add_development_dependency "rubocop-performance", "~> 1.13"
21
+ spec.add_development_dependency "rubocop-rails", "~> 2.13", ">= 2.13.2"
22
+ spec.add_development_dependency "rubocop-packaging", "~> 0.5.1"
23
+
24
+ spec.name = "zabbix_manager"
25
+ spec.version = ZabbixManager::VERSION
26
+ spec.authors = ["WENWU YAN"]
27
+ spec.email = ["careline@foxmail.com"]
28
+
29
+ spec.summary = "Simple and lightweight ruby module for working with the Zabbix API, support 4.0 5.0 6.0"
30
+ spec.description = "Most codes borrowed from zabbix_manager, But changed some logic for everyday jobs."
31
+ spec.homepage = "https://github.com/snmpd/zabbix_manager"
32
+ spec.licenses = "MIT"
33
+
34
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
35
+
36
+ spec.metadata["homepage_uri"] = spec.homepage
37
+ spec.metadata["source_code_uri"] = "https://github.com/snmpd/zabbix_manager"
38
+ spec.metadata["changelog_uri"] = "https://github.com/snmpd/zabbix_manager"
39
+
40
+ spec.files = %w[CHANGELOG.md LICENSE.txt README.md zabbix_manager.gemspec] + Dir["lib/**/*.rb"]
41
+ spec.require_paths = "lib"
42
+ spec.required_ruby_version = ">= 2.7.0"
43
+ end