class InstanceAgent::LinuxUtil

Public Class Methods

codedeploy_version_file() click to toggle source
# File lib/instance_agent/platform/linux_util.rb, line 55
def self.codedeploy_version_file
  File.join(ProcessManager::Config.config[:root_dir], '..')
end
extract_tar(bundle_file, dst) click to toggle source
# File lib/instance_agent/platform/linux_util.rb, line 41
def self.extract_tar(bundle_file, dst)
  FileUtils.mkdir_p(dst)
  execute_tar_command("/bin/tar -xpsf #{bundle_file} -C #{dst}")
end
extract_tgz(bundle_file, dst) click to toggle source
# File lib/instance_agent/platform/linux_util.rb, line 46
def self.extract_tgz(bundle_file, dst)
  FileUtils.mkdir_p(dst)
  execute_tar_command("/bin/tar -zxpsf #{bundle_file} -C #{dst}")
end
prepare_script_command(script, absolute_cmd_path) click to toggle source
# File lib/instance_agent/platform/linux_util.rb, line 11
def self.prepare_script_command(script, absolute_cmd_path)
  runas = !!script.runas
  sudo = !!script.sudo

  if runas && sudo
    return 'sudo su ' + script.runas + ' -c ' + absolute_cmd_path
  end

  if runas && !sudo
    return 'su ' + script.runas + ' -c ' + absolute_cmd_path
  end

  if !runas && sudo
    return 'sudo ' + absolute_cmd_path
  end

  # If neither sudo or runas is specified, execute the
  # command as the code deploy agent user
  absolute_cmd_path
end
quit() click to toggle source
# File lib/instance_agent/platform/linux_util.rb, line 32
def self.quit()
  # Send kill signal to parent and exit
  Process.kill('TERM', Process.ppid)
end
script_executable?(path) click to toggle source
# File lib/instance_agent/platform/linux_util.rb, line 37
def self.script_executable?(path)
  File.executable?(path)
end
supported_oses() click to toggle source
# File lib/instance_agent/platform/linux_util.rb, line 7
def self.supported_oses()
  ['linux']
end
supported_versions() click to toggle source
# File lib/instance_agent/platform/linux_util.rb, line 3
def self.supported_versions()
  [0.0]
end
supports_process_groups?() click to toggle source
# File lib/instance_agent/platform/linux_util.rb, line 51
def self.supports_process_groups?()
  true
end

Private Class Methods

execute_tar_command(cmd) click to toggle source
# File lib/instance_agent/platform/linux_util.rb, line 60
def self.execute_tar_command(cmd)
  log(:debug, "Executing #{cmd}")

  output = `#{cmd} 2>&1`
  exit_status = $?.exitstatus

  log(:debug, "Command status: #{$?}")
  log(:debug, "Command output: #{output}")

  if exit_status != 0
    msg = "Error extracting tar archive: #{exit_status}"
    log(:error, msg)
    raise msg
  end
end
log(severity, message) click to toggle source
# File lib/instance_agent/platform/linux_util.rb, line 77
def self.log(severity, message)
  raise ArgumentError, "Unknown severity #{severity.inspect}" unless InstanceAgent::Log::SEVERITIES.include?(severity.to_s)
  InstanceAgent::Log.send(severity.to_sym, "#{self.to_s}: #{message}")
end