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,23 +2,17 @@
2
2
 
3
3
  class ZabbixManager
4
4
  class Drules < Basic
5
- # The method name used for interacting with Drules via Zabbix API
6
- #
7
- # @return [String]
5
+ # 用于通过 Zabbix API Drules 交互的方法名称
8
6
  def method_name
9
7
  "drule"
10
8
  end
11
9
 
12
- # The id field name used for identifying specific Drule objects via Zabbix API
13
- #
14
- # @return [String]
10
+ # 用于通过 Zabbix API 标识特定 Drule 对象的 id 字段名称
15
11
  def identify
16
12
  "name"
17
13
  end
18
14
 
19
- # The default options used when creating Drule objects via Zabbix API
20
- #
21
- # @return [Hash]
15
+ # 创建 Drule 对象时使用的默认选项
22
16
  def default_options
23
17
  {
24
18
  name: nil,
@@ -28,14 +22,9 @@ class ZabbixManager
28
22
  }
29
23
  end
30
24
 
31
- # Get or Create Drule object using Zabbix API
32
- #
33
- # @param data [Hash] Needs to include name to properly identify Drule via Zabbix API
34
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
35
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
36
- # @return [Integer] Zabbix object id
25
+ # 通过 Zabbix API 获取或创建 Drule 对象
37
26
  def get_or_create(data)
38
- log "[DEBUG] Call get_or_create with parameters: #{data.inspect}"
27
+ log "[DEBUG] 调用 get_or_create,参数为:#{data.inspect}"
39
28
 
40
29
  unless (id = get_id(name: data[:name]))
41
30
  id = create(data)
@@ -43,12 +32,7 @@ class ZabbixManager
43
32
  id
44
33
  end
45
34
 
46
- # Create or update Drule object using Zabbix API
47
- #
48
- # @param data [Hash] Needs to include name to properly identify Drules via Zabbix API
49
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
50
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
51
- # @return [Integer, TrueClass, FalseClass] Zabbix object id
35
+ # 通过 Zabbix API 创建或更新 Drule 对象
52
36
  def create_or_update(data)
53
37
  druleid = get_id(name: data[:name])
54
38
  druleid ? update(data.merge(druleid: druleid)) : create(data)
@@ -1,29 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ZabbixManager
4
+ # BaseError 是 ZabbixManager 模块中处理异常的基类
4
5
  class BaseError < RuntimeError
5
- attr_accessor :response, :error, :error_message
6
+ # 用于存储响应对象
7
+ attr_accessor :response
8
+ # 用于存储 Zabbix API 错误信息
9
+ attr_accessor :error
10
+ # 用于存储格式化后的错误消息
11
+ attr_accessor :error_message
6
12
 
13
+ # 初始化异常对象
7
14
  def initialize(message, response = nil)
8
15
  super(message)
9
16
  @response = response
10
-
11
17
  set_error! if @response
12
18
  end
13
19
 
14
20
  private
15
- def set_error!
16
- @error = @response["error"]
17
- @error_message = "#{@error["message"]}: #{@error["data"]}"
18
- rescue StandardError
19
- @error = nil
20
- @error_message = nil
21
- end
21
+
22
+ # 从响应中提取 Zabbix API 错误信息
23
+ def set_error!
24
+ @error = @response["error"]
25
+ @error_message = "#{@error["message"]}: #{@error["data"]}"
26
+ rescue StandardError
27
+ @error = nil
28
+ @error_message = nil
29
+ end
22
30
  end
23
31
 
32
+ # ZbxError 是 ZabbixManager 模块中处理 Zabbix API 异常的类
24
33
  class ZbxError < BaseError
25
34
  end
26
35
 
36
+ # HttpError 是 ZabbixManager 模块中处理 HTTP 异常的类
27
37
  class HttpError < BaseError
28
38
  end
29
39
  end
@@ -2,16 +2,12 @@
2
2
 
3
3
  class ZabbixManager
4
4
  class Events < Basic
5
- # The method name used for interacting with Events via Zabbix API
6
- #
7
- # @return [String]
5
+ # 用于通过 Zabbix API Events 交互的方法名称
8
6
  def method_name
9
7
  "event"
10
8
  end
11
9
 
12
- # The id field name used for identifying specific Event objects via Zabbix API
13
- #
14
- # @return [String]
10
+ # 用于通过 Zabbix API 标识特定 Event 对象的 id 字段名称
15
11
  def identify
16
12
  "name"
17
13
  end
@@ -2,32 +2,22 @@
2
2
 
3
3
  class ZabbixManager
4
4
  class Graphs < Basic
5
- # The method name used for interacting with Graphs via Zabbix API
6
- #
7
- # @return [String]
5
+ # 用于通过 Zabbix API Graphs 交互的方法名称
8
6
  def method_name
9
7
  "graph"
10
8
  end
11
9
 
12
- # The id field name used for identifying specific Graph objects via Zabbix API
13
- #
14
- # @return [String]
10
+ # 用于通过 Zabbix API 标识特定 Graph 对象的 id 字段名称
15
11
  def identify
16
12
  "name"
17
13
  end
18
14
 
19
- # Get full/extended Graph data from Zabbix API
20
- #
21
- # @param data [Hash] Should include object's id field name (identify) and id value
22
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
23
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
24
- # @return [Hash]
15
+ # Zabbix API 获取完整/扩展的 Graph 数据
25
16
  def get_full_data(data)
26
- log "[DEBUG] Call get_full_data with parameters: #{data.inspect}"
17
+ log "[DEBUG] 使用参数调用 get_full_data: #{data.inspect}"
27
18
 
28
- @client.api_request(
29
- method: "#{method_name}.get",
30
- params: {
19
+ get_raw(
20
+ {
31
21
  search: {
32
22
  identify.to_sym => data[identify.to_sym]
33
23
  },
@@ -36,16 +26,10 @@ class ZabbixManager
36
26
  )
37
27
  end
38
28
 
39
- # Get Graph ids for Host from Zabbix API
40
- #
41
- # @param data [Hash] Should include host value to query for matching graphs
42
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
43
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
44
- # @return [Array] Returns array of Graph ids
29
+ # Zabbix API 获取主机的 Graph ids
45
30
  def get_ids_by_host(data)
46
- result = @client.api_request(
47
- method: "graph.get",
48
- params: {
31
+ result = get_raw(
32
+ {
49
33
  filter: {
50
34
  host: data[:host]
51
35
  },
@@ -54,38 +38,28 @@ class ZabbixManager
54
38
  )
55
39
 
56
40
  result.filter_map do |graph|
57
- num = graph["graphid"]
58
- name = graph["name"]
59
- filter = data[:filter]
41
+ graphid = graph["graphid"]
42
+ name = graph["name"]
43
+ filter = data[:filter]
60
44
 
61
- num if filter.nil? || /#{filter}/ =~ name
45
+ graphid if filter.nil? || name.match?(/#{filter}/)
62
46
  end
63
47
  end
64
48
 
65
- # Get Graph Item object using Zabbix API
66
- #
67
- # @param data [Hash] Needs to include graphids to properly identify Graph Items via Zabbix API
68
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
69
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
70
- # @return [Hash]
49
+ # 通过 Zabbix API 获取 Graph Item 对象
71
50
  def get_items(data)
72
51
  @client.api_request(
73
52
  method: "graphitem.get",
74
53
  params: {
75
54
  graphids: [data],
76
- output: "extend"
55
+ output: "extend"
77
56
  }
78
57
  )
79
58
  end
80
59
 
81
- # Get or Create Graph object using Zabbix API
82
- #
83
- # @param data [Hash] Needs to include name and templateid to properly identify Graphs via Zabbix API
84
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
85
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
86
- # @return [Integer] Zabbix object id
60
+ # 通过 Zabbix API 获取或创建 Graph 对象
87
61
  def get_or_create(data)
88
- log "[DEBUG] Call get_or_create with parameters: #{data.inspect}"
62
+ log "[DEBUG] 使用参数调用 get_or_create: #{data.inspect}"
89
63
 
90
64
  unless (id = get_id(name: data[:name], templateid: data[:templateid]))
91
65
  id = create(data)
@@ -94,12 +68,7 @@ class ZabbixManager
94
68
  id
95
69
  end
96
70
 
97
- # Create or update Graph object using Zabbix API
98
- #
99
- # @param data [Hash] Needs to include name and templateid to properly identify Graphs via Zabbix API
100
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
101
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
102
- # @return [Integer, TrueClass, FalseClass] Zabbix object id
71
+ # 通过 Zabbix API 创建或更新 Graph 对象
103
72
  def create_or_update(data)
104
73
  graphid = get_id(name: data[:name], templateid: data[:templateid])
105
74
  graphid ? _update(data.merge(graphid: graphid)) : create(data)
@@ -2,23 +2,17 @@
2
2
 
3
3
  class ZabbixManager
4
4
  class HostGroups < Basic
5
- # The method name used for interacting with HostGroups via Zabbix API
6
- #
7
- # @return [String]
5
+ # 用于通过 Zabbix API HostGroups 交互的方法名称
8
6
  def method_name
9
7
  "hostgroup"
10
8
  end
11
9
 
12
- # The id field name used for identifying specific HostGroup objects via Zabbix API
13
- #
14
- # @return [String]
10
+ # 用于通过 Zabbix API 标识特定 HostGroup 对象的 id 字段名称
15
11
  def identify
16
12
  "name"
17
13
  end
18
14
 
19
- # The key field name used for HostGroup objects via Zabbix API
20
- #
21
- # @return [String]
15
+ # HostGroup 对象通过 Zabbix API 使用的 key 字段名称
22
16
  def key
23
17
  "groupid"
24
18
  end
@@ -2,35 +2,27 @@
2
2
 
3
3
  class ZabbixManager
4
4
  class HostInterfaces < Basic
5
- # The method name used for interacting with HostInterfaces via Zabbix API
6
- #
7
- # @return [String]
5
+ # 用于通过 Zabbix API HostInterfaces 交互的方法名称
8
6
  def method_name
9
7
  "hostinterface"
10
8
  end
11
9
 
12
- # The id field name used for identifying specific HostInterface objects via Zabbix API
13
- #
14
- # @return [String]
10
+ # 用于通过 Zabbix API 标识特定 HostInterface 对象的 id 字段名称
15
11
  def identify
16
12
  "hostids"
17
13
  end
18
14
 
19
- # The key field name used for HostInterface objects via Zabbix API
20
- #
21
- # @return [String]
15
+ # HostInterface 对象通过 Zabbix API 使用的 key 字段名称
22
16
  def key
23
17
  "interfaceid"
24
18
  end
25
19
 
26
- # Get Zabbix interface id from API based on provided hostid
20
+ # 通过 Zabbix API 基于提供的 hostid 获取 Zabbix interface id
27
21
  # @note 基于 hostid 查询关联的 Interfaceid
28
- # @param hostid [Integer, String]
29
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call or missing object's id field name (identify).
30
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
31
- # @return [Integer, NilClass] Zabbix object id
32
22
  def get_interfaceid(hostid)
33
- result = get_raw({ output: key, "#{identify}": hostid })
23
+ result = get_raw({ output: key, identify.to_sym => hostid })
24
+
25
+ # 如果查询结果不为空,且第一个元素不为空,则继续获取 {interfaceid} 并转换为整数
34
26
  result&.[](0)&.[](key)&.to_i
35
27
  end
36
28
  end
@@ -2,44 +2,17 @@
2
2
 
3
3
  class ZabbixManager
4
4
  class Hosts < Basic
5
- # The method name used for interacting with Hosts via Zabbix API
6
- #
7
- # @return [String]
5
+ # Zabbix API 交互的主机方法名称
8
6
  def method_name
9
7
  "host"
10
8
  end
11
9
 
12
- # The id field name used for identifying specific Host objects via Zabbix API
13
- #
14
- # @return [String]
10
+ # 用于通过 Zabbix API 标识特定主机对象的 id 字段名称
15
11
  def identify
16
12
  "host"
17
13
  end
18
14
 
19
- # Dump Host object data by key from Zabbix API
20
- #
21
- # @param data [Hash] Should include desired object's key and value
22
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
23
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
24
- # @return [Hash]
25
- def dump_by_id(data)
26
- log "[DEBUG] Call dump_by_id with parameters: #{data.inspect}"
27
-
28
- @client.api_request(
29
- method: "host.get",
30
- params: {
31
- filter: {
32
- key.to_sym => data[key.to_sym]
33
- },
34
- output: "extend",
35
- selectHosts: "shorten"
36
- }
37
- )
38
- end
39
-
40
- # The default options used when creating Host objects via Zabbix API
41
- # @note Create Host 缺省的配置参数
42
- # @return [Hash]
15
+ # 在通过 Zabbix API 创建主机对象时使用的默认选项
43
16
  def default_options
44
17
  {
45
18
  host: nil,
@@ -63,76 +36,88 @@ class ZabbixManager
63
36
  }
64
37
  end
65
38
 
66
- # Unlink/Remove Templates from Hosts using Zabbix API
67
- #
68
- # @param data [Hash] Should include hosts_id array and templates_id array
69
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
70
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
71
- # @return [Boolean]
72
- def unlink_templates(data)
73
- result = @client.api_request(
74
- method: "host.massRemove",
75
- params: {
76
- hostids: data[:hosts_id],
77
- templates: data[:templates_id]
78
- }
39
+ # 通过 Zabbix API 从指定的 key 值获取主机对象数据
40
+ def dump_by_id(data)
41
+ log "[DEBUG] 调用 dump_by_id 方法,参数: #{data.inspect}"
42
+
43
+ get_raw({
44
+ filter: {
45
+ key.to_sym => data[key.to_sym]
46
+ },
47
+ output: "extend",
48
+ selectHosts: "shorten"
49
+ }
79
50
  )
80
- result.empty? ? false : true
81
51
  end
82
52
 
83
- # Get Zabbix object ID by name using Zabbix API
84
- # @note 基于监控对象索引键(#{identify})查询 #{key}
85
- # @param data [String, Array] Needs to include host to properly identify Zabbix Objects via Zabbix API
86
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
87
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
88
- # @return [Array, NilClass] Zabbix object id
53
+ # 通过 Zabbix API 根据名称获取 Zabbix 对象的 ID
89
54
  def get_ids_by_name(data)
90
- log "[DEBUG] Call #{method_name}.get_ids_by_name with parameters: #{data.inspect}"
55
+ log "[DEBUG] 调用 #{method_name}.get_ids_by_name 方法,参数: #{data.inspect}"
91
56
 
92
- result = get_raw(
93
- {
94
- filter: { name: [data].flatten },
95
- output: ["#{key}"]
96
- }
57
+ result = get_raw({
58
+ filter: { name: [data].flatten },
59
+ output: [key]
60
+ }
97
61
  )
98
- result.empty? ? nil : result.map { |i| { "#{key}": i[key] } }
62
+ result.empty? ? nil : result.map { |i| { key.to_sym => i[key] } }
99
63
  end
100
64
 
101
- # Create or update Zabbix object using API
102
- # @note 创建或更新 Host 监控对象,入参为基于符号的哈希对象,返回监控对象 id
103
- # @note 重写基类方法 create_or_update,特殊处理 interfaces 对象
104
- # @param data [Hash] Should include object's id field name (identify) and id value
105
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
106
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
107
- # @return [Integer] The object id if a single object is created
108
- # @return [Boolean] True/False if multiple objects are created
65
+ # 使用 Zabbix API 创建或更新 Zabbix 对象
109
66
  def create_or_update(data)
110
- log "[DEBUG] Call #{method_name}.create_or_update with parameters: #{data.inspect}"
67
+ # 输出调试日志,显示方法调用和参数信息
68
+ log "[DEBUG] 调用 #{method_name}.create_or_update 方法,参数: #{data.inspect}"
111
69
 
70
+ # 获取 Zabbix 对象的 ID
112
71
  hostid = get_id(identify.to_sym => data[identify.to_sym])
72
+ # 如果不存在对应的对象ID,则创建新对象
113
73
  return create(data) unless hostid
114
74
 
75
+ # 获取对象的接口 ID
115
76
  interface_id = get_interfaceid(hostid)
116
- raise ZbxError, "interfaceid not found in call to get_interfaceid" unless interface_id
77
+ # 如果接口 ID 不存在,抛出异常
78
+ raise ZbxError, "#{data.inspect} get_interfaceid 查无记录" unless interface_id
79
+
80
+ # 复制数据以避免修改原始数据
81
+ dump_data = data.dup
117
82
 
118
- interfaces = data.delete(:interfaces)&.merge(interfaceid: interface_id)
119
- params = data.merge(interfaces: interfaces).merge(key.to_sym => hostid.to_s)
83
+ # 从数据中提取并删除 interfaces,并合并接口 ID
84
+ interfaces = dump_data.delete(:interfaces)&.merge(interfaceid: interface_id)
85
+
86
+ # 构建参数,包括 interfaces 和 Zabbix 对象的键值对
87
+ params = dump_data.merge(interfaces: interfaces).merge(key.to_sym => hostid.to_s)
88
+
89
+ # 更新对象
120
90
  update(params)
121
91
  end
122
92
 
123
- # Get Zabbix interface id from API based on provided hostid
124
- # @note 基于 hostid 查询关联的 Interfaceid
125
- # @param hostid [Integer, String]
126
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call or missing object's id field name (identify).
127
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
128
- # @return [Integer, NilClass] Zabbix object id
93
+ # API 中基于提供的 hostid 获取 Zabbix interface id
129
94
  def get_interfaceid(hostid)
95
+ log "[DEBUG] 调用 #{method_name}.get_interfaceid 方法,参数: #{hostid.inspect}"
96
+
130
97
  result = @client.api_request(
131
98
  method: "hostinterface.get",
132
99
  params: { output: "interfaceid", hostids: hostid }
133
100
  )
134
- result&.[](0)&.[]("interfaceid")&.to_i
101
+
102
+ # 使用 dig 方法获取深层嵌套的值
103
+ interface_id = result&.dig(0, "interfaceid")&.to_i
104
+
105
+ # 如果获取接口 ID 失败,提供更具体的错误信息
106
+ raise ZbxError, "无法获取 #{hostid} 的接口 ID" if interface_id.nil?
107
+
108
+ interface_id
109
+ end
110
+
111
+ # 在 Hosts 中使用 Zabbix API 取消关联/移除模板
112
+ def unlink_templates(data)
113
+ result = @client.api_request(
114
+ method: "host.massRemove",
115
+ params: {
116
+ hostids: data[:hosts_id],
117
+ templates: data[:templates_id]
118
+ }
119
+ )
120
+ result.empty? ? false : true
135
121
  end
136
122
  end
137
123
  end
138
-
@@ -2,39 +2,28 @@
2
2
 
3
3
  class ZabbixManager
4
4
  class HttpTests < Basic
5
- # The method name used for interacting with HttpTests via Zabbix API
6
- #
7
- # @return [String]
5
+ # 用于通过 Zabbix API HttpTests 交互的方法名称
8
6
  def method_name
9
7
  "httptest"
10
8
  end
11
9
 
12
- # The id field name used for identifying specific HttpTest objects via Zabbix API
13
- #
14
- # @return [String]
10
+ # 用于通过 Zabbix API 标识特定 HttpTest 对象的 id 字段名称
15
11
  def identify
16
12
  "name"
17
13
  end
18
14
 
19
- # The default options used when creating HttpTest objects via Zabbix API
20
- #
21
- # @return [Hash]
15
+ # 通过 Zabbix API 创建 HttpTest 对象时使用的默认选项
22
16
  def default_options
23
17
  {
24
18
  hostid: nil,
25
- name: nil,
26
- steps: []
19
+ name: nil,
20
+ steps: []
27
21
  }
28
22
  end
29
23
 
30
- # Get or Create HttpTest object using Zabbix API
31
- #
32
- # @param data [Hash] Needs to include name and hostid to properly identify HttpTests via Zabbix API
33
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
34
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
35
- # @return [Integer] Zabbix object id
24
+ # 通过 Zabbix API 获取或创建 HttpTest 对象
36
25
  def get_or_create(data)
37
- log "[DEBUG] Call get_or_create with parameters: #{data.inspect}"
26
+ log "[DEBUG] 使用参数调用 get_or_create: #{data.inspect}"
38
27
 
39
28
  unless (id = get_id(name: data[:name], hostid: data[:hostid]))
40
29
  id = create(data)
@@ -42,12 +31,7 @@ class ZabbixManager
42
31
  id
43
32
  end
44
33
 
45
- # Create or update HttpTest object using Zabbix API
46
- #
47
- # @param data [Hash] Needs to include name and hostid to properly identify HttpTests via Zabbix API
48
- # @raise [ZbxError] Error returned when there is a problem with the Zabbix API call.
49
- # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
50
- # @return [Integer, TrueClass, FalseClass] Zabbix object id
34
+ # 通过 Zabbix API 创建或更新 HttpTest 对象
51
35
  def create_or_update(data)
52
36
  httptestid = get_id(name: data[:name], hostid: data[:hostid])
53
37
  httptestid ? update(data.merge(httptestid: httptestid)) : create(data)