Sha256: d4bd3ceb221bc60b9ba595f4f9c71121b43039901baea42bcdeda113d74db9df

Contents?: true

Size: 1.94 KB

Versions: 1

Compression:

Stored size: 1.94 KB

Contents

require 'rest-client'
require 'json'

module Pingdom
  module Cli
    class Core

      def initialize(config)
        @config = config
        @url_base = "https://#{CGI::escape @config['user']}:#{CGI::escape @config['password']}@api.pingdom.com/api/2.0/"
        @header = {"App-Key" => @config['app_key']}
      end

      def checks
        response = RestClient.get(get_url('checks'), @header)
        results = JSON.parse(response.body, :symbolize_names => true)
        results[:checks].each do |result|
          result[:lasttesttime] = Time.at(result[:lasttesttime]) unless result[:lasttesttime].nil?
          result[:lasterrortime] = Time.at(result[:lasterrortime]) unless result[:lasterrortime].nil?
          result[:created] = Time.at(result[:created]) unless result[:created].nil?
        end
        results
      end

      def actions
        response = RestClient.get(get_url('actions'), @header)
        JSON.parse(response.body, :symbolize_names => true)
      end

      def contacts
        response = RestClient.get(get_url('contacts'), @header)
        JSON.parse(response.body, :symbolize_names => true)
      end

      def probes
        response = RestClient.get(get_url('probes'), @header)
        JSON.parse(response.body, :symbolize_names => true)
      end

      def reference
        response = RestClient.get(get_url('reference'), @header)
        JSON.parse(response.body, :symbolize_names => true)
      end

      def reports_public
        response = RestClient.get(get_url('reports.public'), @header)
        JSON.parse(response.body, :symbolize_names => true)
      end

      def settings
        response = RestClient.get(get_url('settings'), @header)
        JSON.parse(response.body, :symbolize_names => true)
      end

      def update(params)
        response = RestClient.put(get_url('checks'), params, @header)
        response.body
      end

      private
      def get_url(action)
        @url_base + action
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pingdom-cli-0.2.0 lib/pingdom/cli/core.rb