lib/zabbixapi/basic/basic_logic.rb in zabbixapi-2.4.7 vs lib/zabbixapi/basic/basic_logic.rb in zabbixapi-2.4.8
- old
+ new
@@ -1,34 +1,34 @@
class ZabbixApi
class Basic
def create(data)
- log "[DEBUG] Call create with parametrs: #{data.inspect}"
+ log "[DEBUG] Call create with parameters: #{data.inspect}"
data_with_default = default_options.empty? ? data : merge_params(default_options, data)
data_create = [data_with_default]
result = @client.api_request(:method => "#{method_name}.create", :params => data_create)
parse_keys result
end
def delete(data)
- log "[DEBUG] Call delete with parametrs: #{data.inspect}"
+ log "[DEBUG] Call delete with parameters: #{data.inspect}"
data_delete = [data]
result = @client.api_request(:method => "#{method_name}.delete", :params => data_delete)
parse_keys result
end
def create_or_update(data)
- log "[DEBUG] Call create_or_update with parametrs: #{data.inspect}"
+ log "[DEBUG] Call create_or_update with parameters: #{data.inspect}"
id = get_id(indentify.to_sym => data[indentify.to_sym])
id ? update(data.merge(key.to_sym => id.to_s)) : create(data)
end
def update(data, force=false)
- log "[DEBUG] Call update with parametrs: #{data.inspect}"
+ log "[DEBUG] Call update with parameters: #{data.inspect}"
dump = {}
item_id = data[key.to_sym].to_i
dump_by_id(key.to_sym => data[key.to_sym]).each do |item|
dump = symbolize_keys(item) if item[key].to_i == data[key.to_sym].to_i
@@ -44,11 +44,11 @@
end
end
def get_full_data(data)
- log "[DEBUG] Call get_full_data with parametrs: #{data.inspect}"
+ log "[DEBUG] Call get_full_data with parameters: #{data.inspect}"
@client.api_request(
:method => "#{method_name}.get",
:params => {
:filter => {
@@ -57,12 +57,21 @@
:output => "extend"
}
)
end
+ def get_raw(data)
+ log "[DEBUG] Call get_raw with parameters: #{data.inspect}"
+
+ @client.api_request(
+ :method => "#{method_name}.get",
+ :params => data
+ )
+ end
+
def dump_by_id(data)
- log "[DEBUG] Call dump_by_id with parametrs: #{data.inspect}"
+ log "[DEBUG] Call dump_by_id with parameters: #{data.inspect}"
@client.api_request(
:method => "#{method_name}.get",
:params => {
:filter => {
@@ -80,19 +89,32 @@
end
result
end
def get_id(data)
- log "[DEBUG] Call get_id with parametrs: #{data.inspect}"
+ log "[DEBUG] Call get_id with parameters: #{data.inspect}"
- result = symbolize_keys( get_full_data(data) )
+ # symbolize keys if the user used string keys instead of symbols
+ data = symbolize_keys(data) if data.key?(indentify)
+ # raise an error if indentify name was not supplied
+ name = data[indentify.to_sym]
+ raise ApiError.new("#{indentify} not supplied in call to get_id") if name == nil
+ result = @client.api_request(
+ :method => "#{method_name}.get",
+ :params => {
+ :filter => {
+ indentify.to_sym => name
+ },
+ :output => [key, indentify]
+ }
+ )
id = nil
- result.each { |item| id = item[key.to_sym].to_i if item[indentify.to_sym] == data[indentify.to_sym] }
+ result.each { |item| id = item[key].to_i if item[indentify] == data[indentify.to_sym] }
id
end
def get_or_create(data)
- log "[DEBUG] Call get_or_create with parametrs: #{data.inspect}"
+ log "[DEBUG] Call get_or_create with parameters: #{data.inspect}"
unless (id = get_id(data))
id = create(data)
end
id