zabbix_manager 5.1.3 → 5.1.5

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 (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 +66 -104
  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 +18 -49
  13. data/lib/zabbix_manager/classes/hostgroups.rb +3 -9
  14. data/lib/zabbix_manager/classes/hostinterfaces.rb +7 -15
  15. data/lib/zabbix_manager/classes/hosts.rb +62 -77
  16. data/lib/zabbix_manager/classes/httptests.rb +8 -24
  17. data/lib/zabbix_manager/classes/items.rb +19 -78
  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 +15 -49
  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 +66 -69
  34. data/lib/zabbix_manager/version.rb +1 -2
  35. data/lib/zabbix_manager.rb +33 -46
  36. metadata +3 -3
@@ -2,35 +2,19 @@
2
2
 
3
3
  class ZabbixManager
4
4
  class ValueMaps < Basic
5
- # The method name used for interacting with ValueMaps via Zabbix API
6
- #
7
- # @return [String]
5
+ # 用于通过 Zabbix API ValueMaps 交互的方法名称
8
6
  def method_name
9
7
  "valuemap"
10
8
  end
11
9
 
12
- # The key field name used for ValueMap objects via Zabbix API
13
- #
14
- # @return [String]
15
- def key
16
- "valuemapid"
17
- end
18
-
19
- # The id field name used for identifying specific ValueMap objects via Zabbix API
20
- #
21
- # @return [String]
10
+ # 用于通过 Zabbix API 识别特定 ValueMap 对象的 id 字段名称
22
11
  def identify
23
12
  "name"
24
13
  end
25
14
 
26
- # Get or Create ValueMap object using Zabbix API
27
- #
28
- # @param data [Hash] Needs to include valuemapids [List] to properly identify ValueMaps via Zabbix API
29
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
30
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
31
- # @return [Integer, TrueClass, FalseClass] Zabbix object id
15
+ # 通过 Zabbix API 获取或创建 ValueMap 对象
32
16
  def get_or_create(data)
33
- log "[DEBUG] Call get_or_create with parameters: #{data.inspect}"
17
+ log "[DEBUG] 调用 get_or_create 方法,参数: #{data.inspect}"
34
18
 
35
19
  if (id = get_id(valuemapids: data[:valuemapids]))
36
20
  id
@@ -39,12 +23,7 @@ class ZabbixManager
39
23
  end
40
24
  end
41
25
 
42
- # Create or update Item object using Zabbix API
43
- #
44
- # @param data [Hash] Needs to include valuemapids to properly identify ValueMaps via Zabbix API
45
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
46
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
47
- # @return [Integer, TrueClass, FalseClass] Zabbix object id
26
+ # 通过 Zabbix API 创建或更新 Item 对象
48
27
  def create_or_update(data)
49
28
  valuemapid = get_id(name: data[:name])
50
29
  valuemapid ? update(data.merge(valuemapids: [:valuemapid])) : create(data)
@@ -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?(/^[4-7]\.\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,83 @@ 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
+ ---------------------------------------------------------------
156
+ Server answer API error: #{JSON.pretty_unparse(result["error"])}
157
+ on request: #{pretty_body(body)}
158
+ ---------------------------------------------------------------
159
+
160
+ MOJO
161
+
162
+ # 抛出自定义异常 ZbxError,并传递错误消息和完整的响应结果
163
+ raise ZbxError.new(msg, result)
165
164
  else
165
+ # 如果没有错误信息,则返回响应结果中的 "result" 部分
166
166
  result["result"]
167
167
  end
168
168
  end
169
169
 
170
- # Pretty print json body
171
- # @note 将 ruby 数据结构美化成 json 字符串后打印输出
172
- # @param body [String]
173
- # @return [Hash, String]
170
+ # Ruby 数据结构美化成 JSON 字符串后打印输出的方法
174
171
  def pretty_body(body)
172
+ # 解析 JSON 字符串
175
173
  data = JSON.parse(body)
176
174
 
177
- # If password is in body hide it
175
+ # 如果参数中包含密码字段,则将密码字段的值替换为 "***"
178
176
  if data["params"].is_a?(Hash) && data["params"].key?("password")
179
177
  data["params"]["password"] = "***"
180
178
  end
181
179
 
180
+ # 将美化后的数据转换为 JSON 字符串并返回
182
181
  JSON.pretty_unparse(data)
183
182
  end
184
183
 
185
- # Execute Zabbix API requests and return response
186
- # @note 通用的 api 调用发起方法
187
- # @param body [Hash]
188
- # @return [Hash, String]
184
+ # 通用的 API 调用发起方法
189
185
  def api_request(body)
186
+ # 调用之前定义的 json_payload 方法,将请求信息转换为 JSON 字符串
190
187
  _request json_payload(body)
191
188
  end
192
189
  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.3"
4
+ VERSION = "5.1.5"
6
5
  end
@@ -3,178 +3,165 @@
3
3
  require "zabbix_manager/version"
4
4
  require "zabbix_manager/client"
5
5
 
6
- # Dynamically load Basic Classes
6
+ # 动态加载基础类
7
7
  Dir.glob(File.join(__dir__, "zabbix_manager/basic", "**", "*.rb")).sort.each do |basic_class|
8
8
  require basic_class
9
9
  end
10
10
 
11
- # Dynamically load Extend Classes
11
+ # 动态加载扩展类
12
12
  Dir.glob(File.join(__dir__, "zabbix_manager/classes", "**", "*.rb")).sort.each do |extend_class|
13
13
  require extend_class
14
14
  end
15
15
 
16
16
  class ZabbixManager
17
- # @return [ZabbixManager::Client]
18
17
  attr_reader :client
19
18
 
20
- # Initializes a new ZabbixManager object
21
- #
22
- # @param options [Hash]
23
- # @return [ZabbixManager]
19
+ # 初始化一个新的 ZabbixManager 对象
24
20
  def self.connect(options = {})
25
21
  new(options)
26
22
  end
27
23
 
28
- # @note TODO
29
- # @return [ZabbixManager]
24
+ # 获取当前 ZabbixManager 对象
30
25
  def self.current
31
- @current ||= ZabbixManager.new
26
+ @current ||= new
32
27
  end
33
28
 
34
- # Executes an API request directly using a custom query
35
- # @note 通用的查询方法,自行提供 method 和 params
36
- # @param data [Hash]
37
- # @return [Hash, String]
29
+ # 直接使用自定义查询执行 API 请求
38
30
  def query(data)
39
31
  @client.api_request(method: data[:method], params: data[:params])
40
32
  end
41
33
 
42
- # Invalidate current authentication token
43
- # @note TODO
44
- # @return [Boolean]
34
+ # 注销当前身份验证令牌
45
35
  def logout
46
36
  @client.logout
47
37
  end
48
38
 
49
- # Initializes a new ZabbixManager object
50
- # @note 实例化 ZabbixManager 对象,Client.new 进行参数检查
51
- # @param options [Hash]
52
- # @return [ZabbixManager::Client]
39
+ # 初始化一个新的 ZabbixManager 对象
53
40
  def initialize(options = {})
54
41
  @client = Client.new(options)
55
42
  end
56
43
 
57
- # @return [ZabbixManager::Actions]
44
+ # 返回 ZabbixManager::Actions 对象
58
45
  def actions
59
46
  @actions ||= Actions.new(@client)
60
47
  end
61
48
 
62
- # @return [ZabbixManager::Applications]
49
+ # 返回 ZabbixManager::Applications 对象
63
50
  def applications
64
51
  @applications ||= Applications.new(@client)
65
52
  end
66
53
 
67
- # @return [ZabbixManager::Configurations]
54
+ # 返回 ZabbixManager::Configurations 对象
68
55
  def configurations
69
56
  @configurations ||= Configurations.new(@client)
70
57
  end
71
58
 
72
- # @return [ZabbixManager::Events]
59
+ # 返回 ZabbixManager::Events 对象
73
60
  def events
74
61
  @events ||= Events.new(@client)
75
62
  end
76
63
 
77
- # @return [ZabbixManager::Graphs]
64
+ # 返回 ZabbixManager::Graphs 对象
78
65
  def graphs
79
66
  @graphs ||= Graphs.new(@client)
80
67
  end
81
68
 
82
- # @return [ZabbixManager::HostGroups]
69
+ # 返回 ZabbixManager::HostGroups 对象
83
70
  def hostgroups
84
71
  @hostgroups ||= HostGroups.new(@client)
85
72
  end
86
73
 
87
- # @return [ZabbixManager::HostInterfaces]
74
+ # 返回 ZabbixManager::HostInterfaces 对象
88
75
  def hostinterfaces
89
76
  @hostinterfaces ||= HostInterfaces.new(@client)
90
77
  end
91
78
 
92
- # @return [ZabbixManager::Hosts]
79
+ # 返回 ZabbixManager::Hosts 对象
93
80
  def hosts
94
81
  @hosts ||= Hosts.new(@client)
95
82
  end
96
83
 
97
- # @return [ZabbixManager::HttpTests]
84
+ # 返回 ZabbixManager::HttpTests 对象
98
85
  def httptests
99
86
  @httptests ||= HttpTests.new(@client)
100
87
  end
101
88
 
102
- # @return [ZabbixManager::Items]
89
+ # 返回 ZabbixManager::Items 对象
103
90
  def items
104
91
  @items ||= Items.new(@client)
105
92
  end
106
93
 
107
- # @return [ZabbixManager::Maintenance]
94
+ # 返回 ZabbixManager::Maintenance 对象
108
95
  def maintenance
109
96
  @maintenance ||= Maintenance.new(@client)
110
97
  end
111
98
 
112
- # @return [ZabbixManager::Mediatypes]
99
+ # 返回 ZabbixManager::Mediatypes 对象
113
100
  def mediatypes
114
101
  @mediatypes ||= Mediatypes.new(@client)
115
102
  end
116
103
 
117
- # @return [ZabbixManager::Problems]
104
+ # 返回 ZabbixManager::Problems 对象
118
105
  def problems
119
106
  @problems ||= Problems.new(@client)
120
107
  end
121
108
 
122
- # @return [ZabbixManager::Proxies]
109
+ # 返回 ZabbixManager::Proxies 对象
123
110
  def proxies
124
111
  @proxies ||= Proxies.new(@client)
125
112
  end
126
113
 
127
- # @return [ZabbixManager::Roles]
114
+ # 返回 ZabbixManager::Roles 对象
128
115
  def roles
129
116
  @roles ||= Roles.new(@client)
130
117
  end
131
118
 
132
- # @return [ZabbixManager::Screens]
119
+ # 返回 ZabbixManager::Screens 对象
133
120
  def screens
134
121
  @screens ||= Screens.new(@client)
135
122
  end
136
123
 
137
- # @return [ZabbixManager::Scripts]
124
+ # 返回 ZabbixManager::Scripts 对象
138
125
  def scripts
139
126
  @scripts ||= Scripts.new(@client)
140
127
  end
141
128
 
142
- # @return [ZabbixManager::Server]
129
+ # 返回 ZabbixManager::Server 对象
143
130
  def server
144
131
  @server ||= Server.new(@client)
145
132
  end
146
133
 
147
- # @return [ZabbixManager::Templates]
134
+ # 返回 ZabbixManager::Templates 对象
148
135
  def templates
149
136
  @templates ||= Templates.new(@client)
150
137
  end
151
138
 
152
- # @return [ZabbixManager::Triggers]
139
+ # 返回 ZabbixManager::Triggers 对象
153
140
  def triggers
154
141
  @triggers ||= Triggers.new(@client)
155
142
  end
156
143
 
157
- # @return [ZabbixManager::Usergroups]
144
+ # 返回 ZabbixManager::Usergroups 对象
158
145
  def usergroups
159
146
  @usergroups ||= Usergroups.new(@client)
160
147
  end
161
148
 
162
- # @return [ZabbixManager::Usermacros]
149
+ # 返回 ZabbixManager::Usermacros 对象
163
150
  def usermacros
164
151
  @usermacros ||= Usermacros.new(@client)
165
152
  end
166
153
 
167
- # @return [ZabbixManager::Users]
154
+ # 返回 ZabbixManager::Users 对象
168
155
  def users
169
156
  @users ||= Users.new(@client)
170
157
  end
171
158
 
172
- # @return [ZabbixManager::ValueMaps]
159
+ # 返回 ZabbixManager::ValueMaps 对象
173
160
  def valuemaps
174
161
  @valuemaps ||= ValueMaps.new(@client)
175
162
  end
176
163
 
177
- # @return [ZabbixManager::Drules]
164
+ # 返回 ZabbixManager::Drules 对象
178
165
  def drules
179
166
  @drules ||= Drules.new(@client)
180
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.3
4
+ version: 5.1.5
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-26 00:00:00.000000000 Z
11
+ date: 2023-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  - !ruby/object:Gem::Version
121
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