class Buyerquest::Opsgenie::Heartbeat

Attributes

name[R]

Public Class Methods

new(opts={}) click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 6
def initialize(opts={})
  @name = opts[:name]
  @opts = opts
  raise "[OpsGenie Error] No name provided" if @name.nil?
end

Public Instance Methods

add() click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 53
def add
  return false if exist?
  default_opts = get_default_heartbeat_opts
  payload = default_opts
  payload = payload.merge @opts
  payload[:name] = @name
  opsg_request = {
      :method  => 'POST',
      :uri     => '/heartbeats',
      :payload => payload
  }
  @exist_status =  Buyerquest::Opsgenie::Client.execute opsg_request
  true
end
delete() click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 94
def delete
  return false unless exist?
  opsg_request ={
      :method  => 'DELETE',
      :uri     => "/heartbeats/#{@name}",
  }
  Buyerquest::Opsgenie::Client.execute opsg_request
  @exist_status = nil
  true
end
disable() click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 43
def disable
  raise "[OpsGenie Error] Can't enable non-existent heartbeat" unless exist?

  opsg_request ={
      :method  => 'POST',
      :uri     => "/heartbeats/#{@name}/disable",
  }
  Buyerquest::Opsgenie::Client.execute opsg_request
end
enable() click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 34
def enable
  raise "[OpsGenie Error] Can't enable non-existent heartbeat" unless exist?
  opsg_request ={
      :method  => 'POST',
      :uri     => "/heartbeats/#{@name}/enable",
  }
  Buyerquest::Opsgenie::Client.execute opsg_request
end
exist?() click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 113
def exist?
  if @exist_status.nil?
    @exist_status = get
  end
  if @exist_status.nil?
    false
  else
    true
  end
end
get() click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 105
def get
  opsg_request ={
      :method  => 'GET',
      :uri     => "/heartbeats/#{@name}",
  }
  Buyerquest::Opsgenie::Client.execute opsg_request
end
get_default_heartbeat_opts() click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 24
def get_default_heartbeat_opts
  {
      :intervalUnit => "minutes",
      :interval => 10,
      :enabled => true,
      :alertMessage => "Heartbeat [#{@name}] expired",
      :alertPriority=> "P3"
  }
end
ping() click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 68
def ping
  raise "[OpsGenie Error] Can't ping non-existent heartbeat" unless exist?
  opsg_request ={
      :method  => 'GET',
      :uri     => "/heartbeats/#{@name}/ping",
  }
  Buyerquest::Opsgenie::Client.execute opsg_request
end
start() click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 12
def start
  self.update({}) unless self.add
  self.enable
  # Initial ping request
  self.ping
end
stop() click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 19
def stop
  self.disable
  self.delete
end
update(opts) click to toggle source
# File lib/buyerquest/opsgenie/heartbeat.rb, line 77
def update (opts)
  raise "[OpsGenie Error] Can't update non-existent heartbeat" unless exist?
  @opts = @opts.merge opts
  default_opts = get_default_heartbeat_opts
  payload = default_opts
  payload = payload.merge @opts
  payload[:name] = @name

  opsg_request = {
      :method  => 'PATCH',
      :uri     => "/heartbeats/#{@name}",
      :payload => payload
  }
  @exist_status = Buyerquest::Opsgenie::Client.execute opsg_request
  true
end