Class: ZabbixApi::Templates

Inherits:
Basic
  • Object
show all
Defined in:
lib/zabbixapi/classes/templates.rb

Instance Method Summary collapse

Methods inherited from Basic

#add, #all, #create, #create_or_update, #default_options, #destroy, #dump_by_id, #get, #get_full_data, #get_id, #get_raw, #hash_equals?, #initialize, #key, #keys, #log, #merge_params, #normalize_array, #normalize_hash, #parse_keys, #symbolize_keys, #update

Constructor Details

This class inherits a constructor from ZabbixApi::Basic

Instance Method Details

#delete(data) ⇒ Integer

Delete Template object using Zabbix API

Parameters:

  • data (Array)

    Should include array of templateid's

Returns:

  • (Integer)

    The Template object id that was deleted

Raises:

  • (ApiError)

    Error returned when there is a problem with the Zabbix API call.

  • (HttpError)

    Error raised when HTTP status from Zabbix Server response is not a 200 OK.



23
24
25
26
# File 'lib/zabbixapi/classes/templates.rb', line 23

def delete(data)
  result = @client.api_request(:method => 'template.delete', :params => [data])
  result.empty? ? nil : result['templateids'][0].to_i
end

#get_ids_by_host(data) ⇒ Array

Get Template ids for Host from Zabbix API

Parameters:

  • data (Hash)

    Should include host value to query for matching templates

Returns:

  • (Array)

    Returns array of Template ids

Raises:

  • (ApiError)

    Error returned when there is a problem with the Zabbix API call.

  • (HttpError)

    Error raised when HTTP status from Zabbix Server response is not a 200 OK.



34
35
36
37
38
39
40
# File 'lib/zabbixapi/classes/templates.rb', line 34

def get_ids_by_host(data)
  result = []
  @client.api_request(:method => 'template.get', :params => data).each do |tmpl|
    result << tmpl['templateid']
  end
  result
end

#get_or_create(data) ⇒ Integer

Get or Create Template object using Zabbix API

Parameters:

  • data (Hash)

    Needs to include host to properly identify Templates via Zabbix API

Returns:

  • (Integer)

    Zabbix object id

Raises:

  • (ApiError)

    Error returned when there is a problem with the Zabbix API call.

  • (HttpError)

    Error raised when HTTP status from Zabbix Server response is not a 200 OK.



48
49
50
51
52
53
# File 'lib/zabbixapi/classes/templates.rb', line 48

def get_or_create(data)
  unless (templateid = get_id(:host => data[:host]))
    templateid = create(data)
  end
  templateid
end

#indentifyString

The id field name used for identifying specific Template objects via Zabbix API

Returns:

  • (String)


13
14
15
# File 'lib/zabbixapi/classes/templates.rb', line 13

def indentify
  'host'
end

#mass_add(data) ⇒ Boolean

Mass add Templates to Hosts using Zabbix API

Parameters:

  • data (Hash)

    Should include hosts_id array and templates_id array

Returns:

  • (Boolean)

Raises:

  • (ApiError)

    Error returned when there is a problem with the Zabbix API call.

  • (HttpError)

    Error raised when HTTP status from Zabbix Server response is not a 200 OK.



78
79
80
81
82
83
84
85
86
87
# File 'lib/zabbixapi/classes/templates.rb', line 78

def mass_add(data)
  result = @client.api_request(
    :method => 'template.massAdd',
    :params => {
      :hosts => data[:hosts_id].map { |t| {:hostid => t} },
      :templates => data[:templates_id].map { |t| {:templateid => t} },
    }
  )
  result.empty? ? false : true
end

#mass_remove(data) ⇒ Boolean

Mass remove Templates to Hosts using Zabbix API

Parameters:

  • data (Hash)

    Should include hosts_id array and templates_id array

Returns:

  • (Boolean)

Raises:

  • (ApiError)

    Error returned when there is a problem with the Zabbix API call.

  • (HttpError)

    Error raised when HTTP status from Zabbix Server response is not a 200 OK.



95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/zabbixapi/classes/templates.rb', line 95

def mass_remove(data)
  result = @client.api_request(
    :method => 'template.massRemove',
    :params => {
      :hostids => data[:hosts_id],
      :templateids => data[:templates_id],
      :groupids => data[:group_id],
      :force => 1,
    }
  )
  result.empty? ? false : true
end

#mass_update(data) ⇒ Boolean

Mass update Templates for Hosts using Zabbix API

Parameters:

  • data (Hash)

    Should include hosts_id array and templates_id array

Returns:

  • (Boolean)

Raises:

  • (ApiError)

    Error returned when there is a problem with the Zabbix API call.

  • (HttpError)

    Error raised when HTTP status from Zabbix Server response is not a 200 OK.



61
62
63
64
65
66
67
68
69
70
# File 'lib/zabbixapi/classes/templates.rb', line 61

def mass_update(data)
  result = @client.api_request(
    :method => 'template.massUpdate',
    :params => {
      :hosts => data[:hosts_id].map { |t| {:hostid => t} },
      :templates => data[:templates_id].map { |t| {:templateid => t} },
    }
  )
  result.empty? ? false : true
end

#method_nameString

The method name used for interacting with Templates via Zabbix API

Returns:

  • (String)


6
7
8
# File 'lib/zabbixapi/classes/templates.rb', line 6

def method_name
  'template'
end