class Ey::Core::Client::Alert

Attributes

agent[W]
database_server[W]
resource[W]
server[W]

Public Instance Methods

acknowledge!() click to toggle source
# File lib/ey-core/models/alert.rb, line 51
def acknowledge!
  requires :id
  merge_attributes(self.connection.acknowledge_alert("id" => self.id).body["legacy_alert"])
end
agent() click to toggle source
# File lib/ey-core/models/alert.rb, line 39
def agent
  type, identity = resource_keys

  (type == "agents" || nil) && self.connection.agents.get!(identity)
end
database_server() click to toggle source
# File lib/ey-core/models/alert.rb, line 45
def database_server
  type, identity = resource_keys

  (type == "database-servers" || nil) && self.connection.database_servers.get!(identity)
end
resource() click to toggle source
# File lib/ey-core/models/alert.rb, line 21
def resource
  type, identity = resource_keys

  self.connection.public_send(type.gsub("-", "_")).get!(identity)
end
resource_keys() click to toggle source
# File lib/ey-core/models/alert.rb, line 27
def resource_keys
  requires :resource_url

  resource_url.split("/")[-2..-1]
end
save!() click to toggle source
# File lib/ey-core/models/alert.rb, line 56
def save!
  response = if new_record?
               params = {
                 "url"   => self.collection.url,
                 "alert" => {
                   "description" => description,
                   "external_id" => external_id,
                   "finished_at" => finished_at,
                   "message"     => message,
                   "name"        => name,
                   "severity"    => severity,
                   "started_at"  => started_at,
                 }
               }

               if @database_server
                 params.merge!(database_server_id: @database_server.identity)
               elsif @server
                 params.merge!(server_id: @server.identity)
               end

               self.connection.create_alert(params)
             else
               requires :identity

               params = {
                 :id    => self.id,
                 :alert => {
                   :acknowledged => acknowledged,
                   :external_id  => external_id,
                   :finished_at  => finished_at,
                   :ignored      => ignored,
                   :message      => message,
                   :severity     => severity,
                   :started_at   => started_at
                 }
               }

               self.connection.update_alert(params)
             end

  merge_attributes(response.body["alert"])
end
server() click to toggle source
# File lib/ey-core/models/alert.rb, line 33
def server
  type, identity = resource_keys

  (type == "servers" || nil) && self.connection.servers.get!(identity)
end