class Admiral::Layers::AdmiralBuildSh

Public Class Methods

new(config, ipaddress) click to toggle source
Calls superclass method Admiral::LayerBase::new
# File lib/admiral/layers/admiral.build.sh.rb, line 9
def initialize(config, ipaddress)
  description = "Executing build script"

  super(description, config, ipaddress)
  add_parameter('build_script', 'Script file for build (ex: bootstap.sh)')
  add_parameter('build_env', 'Hash of environmental variables (ex: {"param1"=>"value1", "param2"=>"value2"} )')
end

Public Instance Methods

do_action() click to toggle source
# File lib/admiral/layers/admiral.build.sh.rb, line 17
def do_action()
  username     = @config['username']
  build_script = @config['build_script']
  build_env    = @config['build_env']

  work_dir = "/tmp/#{username}/"

  if not File.exists?(build_script)
    STDERR.puts "File #{build_script} not found"
    return false
  end

  upload(build_script, work_dir)

  cmd = %Q[bash /tmp/#{username}/#{build_script}]

  rc = run_ssh_command(cmd, :env => build_env)
  return (rc == 0)
end