Sha256: ffa212b3f38abfa6890f5b041170e8ca939d8a0a2ce30c58bf6d671e46cd532d

Contents?: true

Size: 1013 Bytes

Versions: 5

Compression:

Stored size: 1013 Bytes

Contents

module Zabbix
  class ZabbixApi

    def add_application(app_options)
      app_options_default = {
          'hostid' => nil,
          'name' => nil
      }
      application = merge_opt(app_options_default, app_options)
      message = {
          'method' => 'application.create',
          'params' => application
      }
      response = send_request(message)
      response.empty? ? nil : response['applicationids'][0].to_i
    end

    def add_or_get_application(host_id, app_options)
      unless a_id = get_app_id(host_id, app_options['name'])
        a_id = add_application(app_options)
      end
      return a_id
    end

    def get_app_id(host_id, app_name)
      message = {
          'method' => 'application.get',
          'params' => {
              'filter' => {
                  'name' => app_name,
                  'hostid' => host_id
              }
          }
      }
      responce = send_request(message)
      responce.empty? ? nil : responce[0]['applicationid']
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

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