Sha256: 9623fe6f234cf85dfa1a5800ca6620f668283246ff1d6f0f0338211b10e38d12

Contents?: true

Size: 1.88 KB

Versions: 32

Compression:

Stored size: 1.88 KB

Contents

class ZabbixApi
  class Screens < Basic

    # extracted from frontends/php/include/defines.inc.php
    #SCREEN_RESOURCE_GRAPH => 0,
    #SCREEN_RESOURCE_SIMPLE_GRAPH => 1,
    #SCREEN_RESOURCE_MAP => 2,
    #SCREEN_RESOURCE_PLAIN_TEXT => 3,
    #SCREEN_RESOURCE_HOSTS_INFO => 4,
    #SCREEN_RESOURCE_TRIGGERS_INFO => 5,
    #SCREEN_RESOURCE_SERVER_INFO => 6,
    #SCREEN_RESOURCE_CLOCK => 7,
    #SCREEN_RESOURCE_SCREEN => 8,
    #SCREEN_RESOURCE_TRIGGERS_OVERVIEW => 9,
    #SCREEN_RESOURCE_DATA_OVERVIEW => 10,
    #SCREEN_RESOURCE_URL => 11,
    #SCREEN_RESOURCE_ACTIONS => 12,
    #SCREEN_RESOURCE_EVENTS => 13,
    #SCREEN_RESOURCE_HOSTGROUP_TRIGGERS => 14,
    #SCREEN_RESOURCE_SYSTEM_STATUS => 15,
    #SCREEN_RESOURCE_HOST_TRIGGERS => 16

    def method_name
      "screen"
    end

    def indentify
      "name"
    end

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

    def get_or_create_for_host(data)
      screen_name = data[:host].to_s + "_graphs"
      graphids = data[:graphids]
      screenitems = []
      hsize = data[:hsize] || 3
      valign = data[:valign] || 2
      halign = data[:halign] || 2
      vsize = data[:vsize] || ((graphids.size/hsize) + 1).to_i
      screenid = get_id(:name => screen_name)
      unless screenid
        # Create screen
        graphids.each_with_index do |graphid, index|
          screenitems << {
            :resourcetype => 0,
            :resourceid => graphid,
            :x => (index % hsize).to_i,
            :y => (index % graphids.size/hsize).to_i,
            :valign =>valign,
            :halign =>halign
          }
        end
        screenid = create(
          :name => screen_name,
          :hsize => hsize,
          :vsize => vsize,
          :screenitems => screenitems
        )
      end
      screenid
    end

  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
zabbixapi-0.5.3b7u lib/zabbixapi/2.0/classes/screens.rb
zabbixapi-0.5.3b7 lib/zabbixapi/2.0/classes/screens.rb
zabbixapi-0.5.3b6 lib/zabbixapi/2.0/classes/screens.rb
zabbixapi-0.5.3b5 lib/zabbixapi/2.0/classes/screens.rb
zabbixapi-0.5.3b4 lib/zabbixapi/2.0/classes/screens.rb
zabbixapi-0.5.3b3 lib/zabbixapi/2.0/classes/screens.rb
zabbixapi-0.5.3b2 lib/zabbixapi/2.0/classes/screens.rb
zabbixapi-0.5.3b1 lib/zabbixapi/2.0/classes/screens.rb
zabbixapi-0.5.2 lib/zabbixapi/classes/screens.rb
zabbixapi-0.5.2b5 lib/zabbixapi/classes/screens.rb
zabbixapi-0.5.2b4 lib/zabbixapi/classes/screens.rb
zabbixapi-0.5.2b3 lib/zabbixapi/classes/screens.rb
zabbixapi-0.5.2b2 lib/zabbixapi/classes/screens.rb
zabbixapi-0.5.2b lib/zabbixapi/classes/screens.rb
zabbixapi-0.5.2a lib/zabbixapi/classes/screens.rb
zabbixapi-0.5.1 lib/zabbixapi/classes/screens.rb
zabbixapi-0.5.1b15 lib/zabbixapi/classes/screens.rb
zabbixapi-0.5.1b14 lib/zabbixapi/classes/screens.rb
zabbixapi-0.5.1b13 lib/zabbixapi/classes/screens.rb
zabbixapi-0.5.1b12 lib/zabbixapi/classes/screens.rb