Class: InstanceAgent::Agent::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/instance_agent/agent/base.rb

Direct Known Subclasses

CodeDeployPlugin::CommandPoller

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.runnerObject



6
7
8
# File 'lib/instance_agent/agent/base.rb', line 6

def self.runner
  self.new
end

Instance Method Details

#descriptionObject



10
11
12
# File 'lib/instance_agent/agent/base.rb', line 10

def description
  self.class.to_s
end

#log(severity, message) ⇒ Object

Raises:

  • (ArgumentError)


14
15
16
17
# File 'lib/instance_agent/agent/base.rb', line 14

def log(severity, message)
  raise ArgumentError, "Unknown severity #{severity.inspect}" unless InstanceAgent::Log::SEVERITIES.include?(severity.to_s)
  InstanceAgent::Log.send(severity.to_sym, "#{description}: #{message}")
end

#runObject



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/instance_agent/agent/base.rb', line 19

def run
  perform
rescue Aws::Errors::MissingCredentialsError
  log(:error, "Missing credentials - please check if this instance was started with an IAM instance profile")
  sleep InstanceAgent::Config.config[:wait_after_error]
rescue SocketError, Errno::ENETDOWN, Aws::Errors::ServiceError => e
  log(:error, "Cannot reach InstanceService: #{e.class} - #{e.message}")
  sleep InstanceAgent::Config.config[:wait_after_error]
rescue Exception => e
  log(:error, "Error during perform: #{e.class} - #{e.message} - #{e.backtrace.join("\n")}")
  sleep InstanceAgent::Config.config[:wait_after_error]
end