Sha256: b33c135772c2fc3f7b5daf71f3a546967fba203c3a709c48a2feb86a043ca258

Contents?: true

Size: 1.79 KB

Versions: 5

Compression:

Stored size: 1.79 KB

Contents

module Zabbix
  class ZabbixApi

    def update_host(host_id, host_options)
      host = host_options
      host['hostid'] = host_id
      message = {
          'method' => 'host.update',
          'params' => host
      }
      response = send_request(message)
      response.empty? ?  nil :  response['hostids'][0].to_i 
    end

    def add_host(host_options)
      host_default = {
          'host' => nil,
          'port' => 10050,
          'status' => 0,
          'useip' => 0,
          'dns' => '',
          'ip' => '0.0.0.0',
          'proxy_hostid' => 0,
          'groups' => [],
          'useipmi' => 0,
          'ipmi_ip' => '',
          'ipmi_port' => 623,
          'ipmi_authtype' => 0,
          'ipmi_privilege' => 0,
          'ipmi_username' => '',
          'ipmi_password' => ''
      }
      host_options['groups'].nil? || host_options['groups'].map! { |group_id| {'groupid' => group_id} }
      host = merge_opt(host_default, host_options)
      message = {
          'method' => 'host.create',
          'params' => host
      }
      response = send_request(message)
      response.empty? ? nil : response['hostids'][0].to_i
    end

    def get_host_id(hostname)
      message = {
          'method' => 'host.get',
          'params' => {
              'filter' => {
                  'host' => hostname
              }
          }
      }
      response = send_request(message)
      response.empty? ? nil : response[0]['hostid'].to_i
    end

    def delete_host(hostname)
      if host_id = get_host_id(hostname)
        message = {
            'method' => 'host.delete',
            'params' => {
                'hostid' => host_id
            }
        }
        response = send_request(message)
        response.empty? ?  nil :  response['hostids'][0].to_i
      end
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

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