Sha256: 255435025084f65717affff4787be380946737d65ec4d58bdf0cf3bb0932a19f

Contents?: true

Size: 1.74 KB

Versions: 6

Compression:

Stored size: 1.74 KB

Contents

module Zabbix
  class ZabbixApi

    def add_trigger(trigger)
      message = {
          'method' => 'trigger.create',
          'params' => [ trigger ]
      }
      response = send_request(message)
      response.empty? ? nil : response['triggerids'][0]
    end

    def add_or_get_trigger(host_id, trigger)
      unless tr_id = get_trigger_id(host_id, trigger['description'])
        tr_id = add_trigger(trigger)
      end
      return tr_id
    end

    def get_trigger_id(host_id, trigger_name)
      message = {
          'method' => 'trigger.get',
          'params' => {
              'filter' => {
                  'hostid' => host_id,
                  'description' => [ trigger_name ]
              }
          }
      }
      response = send_request(message)
      response.empty? ? nil : response[0]['triggerid']
    end

    def get_triggers_by_host(host_id)
      message = {
          'method' => 'trigger.get',
          'params' => {
              'filter' => {
                  'hostid' => host_id,
              },
              'extendoutput' => '1'
          }
      }
      response = send_request(message)
      if response.empty?
        result = {}
      else
        result = {}
        response.each do |trigger|
          trigger_id = trigger['triggerid']
          description = trigger['description']
          result[trigger_id] = description
        end
      end
      return result
    end

    def update_trigger_status(trigger_id, status)
      message = {
          'method' => 'trigger.update_status',
          'params' => {
              'triggerid' => trigger_id,
              'status' => status
          }
      }
      response = send_request(message)
      response.empty? ? nil : response['triggerids'][0]
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
zabbixapi-0.3.0 lib/zabbixapi/trigger.rb
zabbixapi-0.2.0 lib/zabbixapi/trigger.rb
zabbixapi-0.1.9 lib/zabbixapi/trigger.rb
zabbixapi-0.1.8 lib/zabbixapi/trigger.rb
zabbixapi-0.1.7 lib/zabbixapi/trigger.rb
zabbixapi-0.1.6.4 lib/zabbixapi/trigger.rb