Sha256: f2c80a46de239c5ae3559d298ec3af23a3d1e0a5da6511fbde7d67a08686b272
Contents?: true
Size: 1.84 KB
Versions: 2
Compression:
Stored size: 1.84 KB
Contents
class ZabbixApi class HostGroups def initialize(client) @client = client end def create(data) result = @client.api_request(:method => "hostgroup.create", :params => [data]) result.empty? ? nil : result['groupids'][0].to_i end def add(data) create(data) end def delete(data) result = @client.api_request(:method => "hostgroup.delete", :params => [:groupid => data]) result.empty? ? nil : result['groupids'][0].to_i end def destroy(data) delete(data) end def create_or_update(data) userid = get_id(:name => data[:name]) userid ? update(data.merge(:groupid => userid)) : create(data) end def update(data) result = @client.api_request(:method => "hostgroup.update", :params => data) result ? result['groupids'][0].to_i : nil end def get_or_create(data) unless hostgroupid = get_id(data) hostgroupid = create(data) end hostgroupid end def get_full_data(data) case @client.api_version when "1.2" @client.api_request(:method => "hostgroup.get", :params => {:filter => data, :output => "extend"}) else @client.api_request(:method => "hostgroup.get", :params => {:filter => data, :output => "extend"}) end end # Return all hostgroups # # * *Returns* : # - Hash with {"Hostgroup1" => "id1", "Hostgroup2" => "id2"} def all result = {} @client.api_request(:method => "hostgroup.get", :params => {:output => "extend"}).each do |hostgrp| result[hostgrp['name']] = hostgrp['groupid'] end result end def get_id(data) result = get_full_data(data) hostgroupid = nil result.each { |hgroup| hostgroupid = hgroup['groupid'].to_i if hgroup['name'] == data[:name] } hostgroupid end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
zabbixapi-0.5.0 | lib/zabbixapi/hostgroups.rb |
zabbixapi-0.5.0b6 | lib/zabbixapi/hostgroups.rb |