zabbix_manager 5.1.2.pre.alpha2 → 5.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/lib/zabbix_manager/basic/basic_alias.rb +3 -20
  3. data/lib/zabbix_manager/basic/basic_func.rb +24 -46
  4. data/lib/zabbix_manager/basic/basic_init.rb +8 -24
  5. data/lib/zabbix_manager/basic/basic_logic.rb +67 -105
  6. data/lib/zabbix_manager/classes/actions.rb +11 -21
  7. data/lib/zabbix_manager/classes/applications.rb +5 -19
  8. data/lib/zabbix_manager/classes/configurations.rb +5 -19
  9. data/lib/zabbix_manager/classes/drules.rb +6 -22
  10. data/lib/zabbix_manager/classes/errors.rb +19 -9
  11. data/lib/zabbix_manager/classes/events.rb +2 -6
  12. data/lib/zabbix_manager/classes/graphs.rb +16 -47
  13. data/lib/zabbix_manager/classes/hostgroups.rb +3 -9
  14. data/lib/zabbix_manager/classes/hostinterfaces.rb +12 -9
  15. data/lib/zabbix_manager/classes/hosts.rb +57 -55
  16. data/lib/zabbix_manager/classes/httptests.rb +7 -23
  17. data/lib/zabbix_manager/classes/items.rb +12 -68
  18. data/lib/zabbix_manager/classes/maintenance.rb +2 -6
  19. data/lib/zabbix_manager/classes/mediatypes.rb +20 -52
  20. data/lib/zabbix_manager/classes/problems.rb +38 -66
  21. data/lib/zabbix_manager/classes/proxies.rb +7 -26
  22. data/lib/zabbix_manager/classes/roles.rb +18 -57
  23. data/lib/zabbix_manager/classes/screens.rb +7 -21
  24. data/lib/zabbix_manager/classes/scripts.rb +7 -10
  25. data/lib/zabbix_manager/classes/server.rb +1 -6
  26. data/lib/zabbix_manager/classes/templates.rb +15 -49
  27. data/lib/zabbix_manager/classes/triggers.rb +16 -52
  28. data/lib/zabbix_manager/classes/unusable.rb +2 -1
  29. data/lib/zabbix_manager/classes/usergroups.rb +6 -28
  30. data/lib/zabbix_manager/classes/usermacros.rb +19 -113
  31. data/lib/zabbix_manager/classes/users.rb +7 -34
  32. data/lib/zabbix_manager/classes/valuemaps.rb +5 -26
  33. data/lib/zabbix_manager/client.rb +65 -69
  34. data/lib/zabbix_manager/version.rb +1 -2
  35. data/lib/zabbix_manager.rb +41 -84
  36. metadata +5 -5
@@ -4,46 +4,34 @@ require "net/http"
4
4
  require "json"
5
5
  require "openssl"
6
6
 
7
- # @author: WENWU YAN
8
- # @email: 968828@gmail.com
9
- # @date: 2023/3/25下午4:47
10
7
  class ZabbixManager
11
8
  class Client
12
- # @param
13
- # @return [Hash]
9
+ # 用于读取配置选项
14
10
  attr_reader :options
15
11
 
16
- # @return [Integer]
12
+ # 生成一个随机的请求标识符
17
13
  def id
18
- @id ||= rand 100_000
14
+ @id ||= rand 100_00
19
15
  end
20
16
 
21
- # Returns the API version from the Zabbix Server
22
- # @note 获取 zabbix api 版本
23
- # @return [String, Hash]
17
+ # 获取 Zabbix API 版本
24
18
  def api_version
25
19
  api_request(method: "apiinfo.version", params: {})
26
20
  end
27
21
 
28
- # ZabbixManager::Basic.log does not like @client.options[:debug]
29
- # @note 是否启用 debug 模式
30
- # @return [boolean]
22
+ # 是否启用 debug 模式
31
23
  def debug?
32
24
  !@options || @options[:debug]
33
25
  end
34
26
 
35
- # Log messages to stdout when debugging
36
- # @note debug 打印信息
37
- # @param message [String]
27
+ # Debug 打印信息
38
28
  def log(message)
39
29
  puts message if debug?
40
30
  end
41
31
 
42
- # Log in to the Zabbix Server and generate an auth token using the API
43
- # @note 用户鉴权,登录成功即可获取令牌
44
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
45
- # @return [Hash, String]
32
+ # 用户鉴权方法,登录成功即可获取令牌
46
33
  def auth
34
+ # 发起 "user.login" 方法的 API 请求, 并传递用户信息(用户名和密码)作为参数
47
35
  api_request(
48
36
  method: "user.login",
49
37
  params: {
@@ -53,25 +41,17 @@ class ZabbixManager
53
41
  )
54
42
  end
55
43
 
56
- # Initializes a new Client object
57
- # @see 实例化 HTTP 客户端,同时进行用户权限签证
58
- # @param options [Hash]
59
- # @option opts [String] :url The url of zabbix
60
- # @example 'http://zabbix.com/api_jsonrpc.php'
61
- # @see 'https://www.zabbix.com/documentation/current/en/manual/api/reference'
62
- # @option opts [String] :user A user for api auth.(required)
63
- # @option opts [String] :password A password for api auth.(required)
64
- # @option opts [String] :http_user A user for basic auth.(optional)
65
- # @option opts [String] :http_password A password for basic auth.(optional)
66
- # @option opts [Integer] :timeout Set timeout for requests in seconds.(default: 60)
67
- # @raise [ZbxError] Error raised when api_version not support.
68
- # @return [ZabbixManager::Client]
44
+ # HTTP 客户端初始化方法,同时进行用户权限签证
69
45
  def initialize(options = {})
46
+ # 设置实例变量 @options 以便在整个类中访问
70
47
  @options = options
71
- raise ZabbixManager::ZbxError, "Missing required argument: :url" unless @options.key?(:url)
72
- raise ZabbixManager::ZbxError, "Missing required argument: :user" unless @options.key?(:user)
73
- raise ZabbixManager::ZbxError, "Missing required argument: :password" unless @options.key?(:password)
74
48
 
49
+ # 检查必要的配置属性是否存在
50
+ raise ZbxError, "必须正确提供 :url 属性" unless @options.key?(:url)
51
+ raise ZbxError, "必须正确提供 :user 属性" unless @options.key?(:user)
52
+ raise ZbxError, "必须正确提供 :password 属性" unless @options.key?(:password)
53
+
54
+ # 配置代理信息
75
55
  if !ENV["http_proxy"].nil? && options[:no_proxy] != true
76
56
  @proxy_uri = URI.parse(ENV["http_proxy"])
77
57
  @proxy_host = @proxy_uri.host
@@ -79,24 +59,24 @@ class ZabbixManager
79
59
  @proxy_user, @proxy_pass = @proxy_uri.userinfo&.split(/:/) if @proxy_uri.userinfo
80
60
  end
81
61
 
82
- if api_version.match?(/^7\.\d+\.\d+$/)
83
- message = "Zabbix API version: #{api_version} is not supported by this version of zabbix_manager"
62
+ # 检查 Zabbix API 版本是否受支持
63
+ unless api_version.match?(/^(234567)\.\d+\.\d+$/)
64
+ message = "Zabbix API版本:#{api_version} 不受此版本的 zabbix_manager 支持"
84
65
  if @options[:ignore_version]
85
66
  log "[WARNING] #{message}"
86
67
  else
87
- raise ZabbixManager::ZbxError, message
68
+ raise ZbxError, message
88
69
  end
89
70
  end
90
71
 
72
+ # 进行用户鉴权,获取令牌
91
73
  @auth_hash = auth
92
74
  log "[DEBUG] Auth token: #{@auth_hash}"
93
75
  end
94
76
 
95
- # Convert payload body to JSON string for the Zabbix API
96
- # @note 将 ruby 数据结构转换为 json 字符串,除用户登录和获取API版本外均添加令牌
97
- # @param body [Hash]
98
- # @return [String]
77
+ # 定义一个方法,用于将 Ruby 数据结构转换为 JSON 字符串,并根据条件添加令牌
99
78
  def json_payload(body)
79
+ # 构建基本的 JSON 负载,包括方法名、参数、请求 ID 和 JSON-RPC 版本
100
80
  payload = {
101
81
  method: body[:method],
102
82
  params: body[:params],
@@ -104,24 +84,22 @@ class ZabbixManager
104
84
  jsonrpc: "2.0"
105
85
  }
106
86
 
87
+ # 检查请求方法是否是 "apiinfo.version" 或 "user.login",如果不是,则添加令牌信息
107
88
  payload[:auth] = @auth_hash unless body[:method] == "apiinfo.version" || body[:method] == "user.login"
108
89
 
90
+ # 将构建好的负载转换为 JSON 字符串并返回
109
91
  JSON(payload)
110
92
  end
111
93
 
112
- # HTTP Request with the Zabbix API
113
- # @note 实例化 Net::HTTP 对象,并发起 api 请求
114
- # @param body [String]
115
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
116
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
117
- # @return [String]
94
+ # 实例化 Net::HTTP 对象,并发起 API 请求的方法
118
95
  def http_request(body)
119
96
  uri = URI.parse(@options[:url])
120
97
 
121
- # set the time out the default (60) or to what the user passed
98
+ # 设置超时时间,默认为 60
122
99
  timeout = @options[:timeout].nil? ? 60 : @options[:timeout]
123
100
  log "[DEBUG] Timeout for request set to #{timeout} seconds"
124
101
 
102
+ # 创建 Net::HTTP 对象,支持代理设置
125
103
  http =
126
104
  if @proxy_uri
127
105
  Net::HTTP.Proxy(@proxy_host, @proxy_port, @proxy_user, @proxy_pass).new(uri.host, uri.port)
@@ -129,64 +107,82 @@ class ZabbixManager
129
107
  Net::HTTP.new(uri.host, uri.port)
130
108
  end
131
109
 
110
+ # 配置 HTTPS 请求
132
111
  if uri.scheme == "https"
133
112
  http.use_ssl = true
134
113
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
135
114
  end
136
115
 
116
+ # 配置请求超时时间
137
117
  http.open_timeout = timeout
138
118
  http.read_timeout = timeout
139
119
 
120
+ # 创建 POST 请求
140
121
  request = Net::HTTP::Post.new(uri.request_uri)
141
- request.basic_auth @options[:http_user], @options[:http_password] if @options[:http_user]
122
+
123
+ # 添加基本身份验证信息(如果提供了用户名和密码)
124
+ request.basic_auth(@options[:http_user], @options[:http_password]) if @options[:http_user]
125
+
126
+ # 设置请求头的 Content-Type 为 application/json-rpc
142
127
  request.add_field("Content-Type", "application/json-rpc")
128
+
129
+ # 设置请求体为传入的 JSON 字符串
143
130
  request.body = body
144
131
  log "[DEBUG] HTTP request params: #{pretty_body(request.body)}"
145
132
 
133
+ # 发起请求并获取响应
146
134
  response = http.request(request)
135
+
136
+ # 检查响应状态码,如果不是 200,则抛出 HttpError 异常
147
137
  raise HttpError.new("HTTP Error: #{response.code} on #{@options[:url]}", response) unless response.code == "200"
148
138
 
149
139
  log "[DEBUG] HTTP response answer: #{pretty_body(response.body)}"
140
+
141
+ # 返回响应体
150
142
  response.body
151
143
  end
152
144
 
153
- # Check the result returned by zabbix api is ok or not
154
- # @note 发起 api 调用并对响应结果进行解析,如接口报错则抛出异常
155
- # @@note 返回的数据为基于字符串索引,需要自行适配为符号索引
156
- # @param body [String]
157
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
158
- # @return [Hash, String]
145
+ # API 响应结果进行解析的方法
159
146
  def _request(body)
147
+ # 发起 HTTP 请求并解析 JSON 格式的响应
160
148
  result = JSON.parse(http_request(body))
149
+
150
+ # 如果响应结果中包含错误信息,则抛出 ZbxError 异常
161
151
  if result["error"]
162
- raise ZbxError.new(
163
- "Server answer API error\n #{JSON.pretty_unparse(result["error"])}\n on request:\n #{pretty_body(body)}", result
164
- )
152
+ # 构建错误消息,包括服务器返回的错误信息和请求的详细信息
153
+ msg = <<~MOJO
154
+ ---------------------------------------------------------------
155
+ Server answer API error: #{JSON.pretty_unparse(result["error"])}
156
+ on request: #{pretty_body(body)}
157
+ ---------------------------------------------------------------
158
+ MOJO
159
+
160
+ # 抛出自定义异常 ZbxError,并传递错误消息和完整的响应结果
161
+ raise ZbxError.new(msg, result)
165
162
  else
163
+ # 如果没有错误信息,则返回响应结果中的 "result" 部分
166
164
  result["result"]
167
165
  end
168
166
  end
169
167
 
170
- # Pretty print json body
171
- # @note 将 ruby 数据结构美化成 json 字符串后打印输出
172
- # @param body [String]
173
- # @return [Hash, String]
168
+ # Ruby 数据结构美化成 JSON 字符串后打印输出的方法
174
169
  def pretty_body(body)
170
+ # 解析 JSON 字符串
175
171
  data = JSON.parse(body)
176
172
 
177
- # If password is in body hide it
173
+ # 如果参数中包含密码字段,则将密码字段的值替换为 "***"
178
174
  if data["params"].is_a?(Hash) && data["params"].key?("password")
179
175
  data["params"]["password"] = "***"
180
176
  end
181
177
 
178
+ # 将美化后的数据转换为 JSON 字符串并返回
182
179
  JSON.pretty_unparse(data)
183
180
  end
184
181
 
185
- # Execute Zabbix API requests and return response
186
- # @note 通用的 api 调用发起方法
187
- # @param body [Hash]
188
- # @return [Hash, String]
182
+ # 通用的 API 调用发起方法
189
183
  def api_request(body)
184
+ # 调用之前定义的 json_payload 方法,将请求信息转换为 JSON 字符串
185
+ # 然后调用之前定义的 _request 方法,发起 API 请求并解析响应结果
190
186
  _request json_payload(body)
191
187
  end
192
188
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ZabbixManager
4
- # @note find ./* -type f -exec sed -i 's/\[X\]/\[Y\]/g' {} +
5
- VERSION = "5.1.2.pre.alpha2"
4
+ VERSION = "5.1.4"
6
5
  end
@@ -3,208 +3,165 @@
3
3
  require "zabbix_manager/version"
4
4
  require "zabbix_manager/client"
5
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"
37
-
38
- # Dynamically load Ruby modules
39
- # Dir.glob(File.join(__dir__, "zabbix_manager", "**", "*.rb")).sort.each do |module_rb|
40
- # require module_rb
41
- # end
42
-
43
- # @author: WENWU YAN
44
- # @email: 968828@gmail.com
45
- # @date: 2023/3/25下午4:47
6
+ # 动态加载基础类
7
+ Dir.glob(File.join(__dir__, "zabbix_manager/basic", "**", "*.rb")).sort.each do |basic_class|
8
+ require basic_class
9
+ end
10
+
11
+ # 动态加载扩展类
12
+ Dir.glob(File.join(__dir__, "zabbix_manager/classes", "**", "*.rb")).sort.each do |extend_class|
13
+ require extend_class
14
+ end
15
+
46
16
  class ZabbixManager
47
- # @return [ZabbixManager::Client]
48
17
  attr_reader :client
49
18
 
50
- # Initializes a new ZabbixManager object
51
- #
52
- # @param options [Hash]
53
- # @return [ZabbixManager]
19
+ # 初始化一个新的 ZabbixManager 对象
54
20
  def self.connect(options = {})
55
21
  new(options)
56
22
  end
57
23
 
58
- # @note TODO
59
- # @return [ZabbixManager]
24
+ # 获取当前 ZabbixManager 对象
60
25
  def self.current
61
- @current ||= ZabbixManager.new
26
+ @current ||= new
62
27
  end
63
28
 
64
- # Executes an API request directly using a custom query
65
- # @note 通用的查询方法,自行提供 method 和 params
66
- # @param data [Hash]
67
- # @return [Hash, String]
29
+ # 直接使用自定义查询执行 API 请求
68
30
  def query(data)
69
31
  @client.api_request(method: data[:method], params: data[:params])
70
32
  end
71
33
 
72
- # Invalidate current authentication token
73
- # @note TODO
74
- # @return [Boolean]
34
+ # 注销当前身份验证令牌
75
35
  def logout
76
36
  @client.logout
77
37
  end
78
38
 
79
- # Initializes a new ZabbixManager object
80
- # @note 实例化 ZabbixManager 对象,Client.new 进行参数检查
81
- # @param options [Hash]
82
- # @return [ZabbixManager::Client]
39
+ # 初始化一个新的 ZabbixManager 对象
83
40
  def initialize(options = {})
84
41
  @client = Client.new(options)
85
42
  end
86
43
 
87
- # @return [ZabbixManager::Actions]
44
+ # 返回 ZabbixManager::Actions 对象
88
45
  def actions
89
46
  @actions ||= Actions.new(@client)
90
47
  end
91
48
 
92
- # @return [ZabbixManager::Applications]
49
+ # 返回 ZabbixManager::Applications 对象
93
50
  def applications
94
51
  @applications ||= Applications.new(@client)
95
52
  end
96
53
 
97
- # @return [ZabbixManager::Configurations]
54
+ # 返回 ZabbixManager::Configurations 对象
98
55
  def configurations
99
56
  @configurations ||= Configurations.new(@client)
100
57
  end
101
58
 
102
- # @return [ZabbixManager::Events]
59
+ # 返回 ZabbixManager::Events 对象
103
60
  def events
104
61
  @events ||= Events.new(@client)
105
62
  end
106
63
 
107
- # @return [ZabbixManager::Graphs]
64
+ # 返回 ZabbixManager::Graphs 对象
108
65
  def graphs
109
66
  @graphs ||= Graphs.new(@client)
110
67
  end
111
68
 
112
- # @return [ZabbixManager::HostGroups]
69
+ # 返回 ZabbixManager::HostGroups 对象
113
70
  def hostgroups
114
71
  @hostgroups ||= HostGroups.new(@client)
115
72
  end
116
73
 
117
- # @return [ZabbixManager::HostInterfaces]
74
+ # 返回 ZabbixManager::HostInterfaces 对象
118
75
  def hostinterfaces
119
76
  @hostinterfaces ||= HostInterfaces.new(@client)
120
77
  end
121
78
 
122
- # @return [ZabbixManager::Hosts]
79
+ # 返回 ZabbixManager::Hosts 对象
123
80
  def hosts
124
81
  @hosts ||= Hosts.new(@client)
125
82
  end
126
83
 
127
- # @return [ZabbixManager::HttpTests]
84
+ # 返回 ZabbixManager::HttpTests 对象
128
85
  def httptests
129
86
  @httptests ||= HttpTests.new(@client)
130
87
  end
131
88
 
132
- # @return [ZabbixManager::Items]
89
+ # 返回 ZabbixManager::Items 对象
133
90
  def items
134
91
  @items ||= Items.new(@client)
135
92
  end
136
93
 
137
- # @return [ZabbixManager::Maintenance]
94
+ # 返回 ZabbixManager::Maintenance 对象
138
95
  def maintenance
139
96
  @maintenance ||= Maintenance.new(@client)
140
97
  end
141
98
 
142
- # @return [ZabbixManager::Mediatypes]
99
+ # 返回 ZabbixManager::Mediatypes 对象
143
100
  def mediatypes
144
101
  @mediatypes ||= Mediatypes.new(@client)
145
102
  end
146
103
 
147
- # @return [ZabbixManager::Problems]
104
+ # 返回 ZabbixManager::Problems 对象
148
105
  def problems
149
106
  @problems ||= Problems.new(@client)
150
107
  end
151
108
 
152
- # @return [ZabbixManager::Proxies]
109
+ # 返回 ZabbixManager::Proxies 对象
153
110
  def proxies
154
111
  @proxies ||= Proxies.new(@client)
155
112
  end
156
113
 
157
- # @return [ZabbixManager::Roles]
114
+ # 返回 ZabbixManager::Roles 对象
158
115
  def roles
159
116
  @roles ||= Roles.new(@client)
160
117
  end
161
118
 
162
- # @return [ZabbixManager::Screens]
119
+ # 返回 ZabbixManager::Screens 对象
163
120
  def screens
164
121
  @screens ||= Screens.new(@client)
165
122
  end
166
123
 
167
- # @return [ZabbixManager::Scripts]
124
+ # 返回 ZabbixManager::Scripts 对象
168
125
  def scripts
169
126
  @scripts ||= Scripts.new(@client)
170
127
  end
171
128
 
172
- # @return [ZabbixManager::Server]
129
+ # 返回 ZabbixManager::Server 对象
173
130
  def server
174
131
  @server ||= Server.new(@client)
175
132
  end
176
133
 
177
- # @return [ZabbixManager::Templates]
134
+ # 返回 ZabbixManager::Templates 对象
178
135
  def templates
179
136
  @templates ||= Templates.new(@client)
180
137
  end
181
138
 
182
- # @return [ZabbixManager::Triggers]
139
+ # 返回 ZabbixManager::Triggers 对象
183
140
  def triggers
184
141
  @triggers ||= Triggers.new(@client)
185
142
  end
186
143
 
187
- # @return [ZabbixManager::Usergroups]
144
+ # 返回 ZabbixManager::Usergroups 对象
188
145
  def usergroups
189
146
  @usergroups ||= Usergroups.new(@client)
190
147
  end
191
148
 
192
- # @return [ZabbixManager::Usermacros]
149
+ # 返回 ZabbixManager::Usermacros 对象
193
150
  def usermacros
194
151
  @usermacros ||= Usermacros.new(@client)
195
152
  end
196
153
 
197
- # @return [ZabbixManager::Users]
154
+ # 返回 ZabbixManager::Users 对象
198
155
  def users
199
156
  @users ||= Users.new(@client)
200
157
  end
201
158
 
202
- # @return [ZabbixManager::ValueMaps]
159
+ # 返回 ZabbixManager::ValueMaps 对象
203
160
  def valuemaps
204
161
  @valuemaps ||= ValueMaps.new(@client)
205
162
  end
206
163
 
207
- # @return [ZabbixManager::Drules]
164
+ # 返回 ZabbixManager::Drules 对象
208
165
  def drules
209
166
  @drules ||= Drules.new(@client)
210
167
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zabbix_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.2.pre.alpha2
4
+ version: 5.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - WENWU YAN
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-25 00:00:00.000000000 Z
11
+ date: 2023-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -116,11 +116,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
116
116
  version: 2.7.0
117
117
  required_rubygems_version: !ruby/object:Gem::Requirement
118
118
  requirements:
119
- - - ">"
119
+ - - ">="
120
120
  - !ruby/object:Gem::Version
121
- version: 1.3.1
121
+ version: '0'
122
122
  requirements: []
123
- rubygems_version: 3.4.6
123
+ rubygems_version: 3.4.10
124
124
  signing_key:
125
125
  specification_version: 4
126
126
  summary: Common code for Zabbix API clients