Class: Buyerquest::Opsgenie::Heartbeat
- Inherits:
-
Object
- Object
- Buyerquest::Opsgenie::Heartbeat
- Defined in:
- lib/buyerquest/opsgenie/heartbeat.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
- #add ⇒ Object
- #delete ⇒ Object
- #disable ⇒ Object
- #enable ⇒ Object
- #exist? ⇒ Boolean
- #get ⇒ Object
- #get_default_heartbeat_opts ⇒ Object
-
#initialize(opts = {}) ⇒ Heartbeat
constructor
A new instance of Heartbeat.
- #ping ⇒ Object
- #start ⇒ Object
- #stop ⇒ Object
- #update(opts) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Heartbeat
Returns a new instance of Heartbeat.
6 7 8 9 10 |
# 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 |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
4 5 6 |
# File 'lib/buyerquest/opsgenie/heartbeat.rb', line 4 def name @name end |
Instance Method Details
#add ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# 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 ⇒ Object
94 95 96 97 98 99 100 101 102 103 |
# 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 ⇒ Object
43 44 45 46 47 48 49 50 51 |
# 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 ⇒ Object
34 35 36 37 38 39 40 41 |
# 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? ⇒ Boolean
113 114 115 116 117 118 119 120 121 122 |
# 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 ⇒ Object
105 106 107 108 109 110 111 |
# 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 ⇒ Object
24 25 26 27 28 29 30 31 32 |
# 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 ⇒ Object
68 69 70 71 72 73 74 75 |
# 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 ⇒ Object
12 13 14 15 16 17 |
# File 'lib/buyerquest/opsgenie/heartbeat.rb', line 12 def start self.update({}) unless self.add self.enable # Initial ping request self.ping end |
#stop ⇒ Object
19 20 21 22 |
# File 'lib/buyerquest/opsgenie/heartbeat.rb', line 19 def stop self.disable self.delete end |
#update(opts) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# 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 |