class EY::Serverside::Callbacks::Executor::Executable

Public Instance Methods

calculate_wrapper(input = {}) click to toggle source
# File lib/engineyard-serverside/callbacks/executor/executable.rb, line 46
def calculate_wrapper(input = {})
  Success(
    input.merge(
      {
        :wrapper => hook.respond_to?(:service_name) ?
          About.service_hook_executor :
          About.hook_executor
      }
    )
  )
end
current_name() click to toggle source
# File lib/engineyard-serverside/callbacks/executor/executable.rb, line 111
def current_name
  name = config.current_name

  unless name
    return nil
  end

  name.to_s
end
current_roles() click to toggle source
# File lib/engineyard-serverside/callbacks/executor/executable.rb, line 107
def current_roles
  config.current_roles.to_a.join(' ')
end
handle_failure(payload = {}) click to toggle source
# File lib/engineyard-serverside/callbacks/executor/executable.rb, line 18
def handle_failure(payload = {})
  case payload[:reason]

  when :not_executable
    true
  when :execution_failed
    abort "*** [Error] Hook failed to exit cleanly: #{hook_path} ***\n"
  else
    abort "*** [Error] An unknown error occurred for hook: #{hook_path} ***\n"
  end
end
populate_environment(input = {}) click to toggle source
# File lib/engineyard-serverside/callbacks/executor/executable.rb, line 78
def populate_environment(input = {})
  env = {
    'EY_DEPLOY_ACCOUNT_NAME' => config.account_name,
    'EY_DEPLOY_APP' => config.app,
    'EY_DEPLOY_CONFIG' => config.to_json,
    'EY_DEPLOY_CURRENT_ROLES' => current_roles,
    'EY_DEPLOY_CURRENT_NAME' => current_name,
    'EY_DEPLOY_ENVIRONMENT_NAME' => config.environment_name,
    'EY_DEPLOY_FRAMEWORK_ENV' => config.framework_env.to_s,
    'EY_DEPLOY_RELEASE_PATH' => paths.active_release.to_s,
    'EY_DEPLOY_VERBOSE' => verbose,
  }

  Success(
    input.merge(
      {
        :environment => env.
          reject {|name, value| value.nil?}.
          map {|name, value| "#{name}=#{Escape.shell_command([value])}"}.
          join(' ')
      }
    )
  )
end
run_hook(input = {}) click to toggle source
# File lib/engineyard-serverside/callbacks/executor/executable.rb, line 58
def run_hook(input = {})
  env = "#{input[:environment]} #{config.framework_envs}"
  wrapper = input[:wrapper]
  name = hook.short_name

  result = run("#{env} #{wrapper} #{name}")

  unless result.success?
    return Failure(
      input.merge(
        {
          :reason => :execution_failed
        }
      )
    )
  end

  Success(input)
end
validate_hook(input = {}) click to toggle source
# File lib/engineyard-serverside/callbacks/executor/executable.rb, line 30
def validate_hook(input = {})
  unless hook_path.executable?
    shell.warning("Skipping possible deploy hook #{hook} because it is not executable.")

    return Failure(
      input.merge(
        {
          :reason => :not_executable
        }
      )
    )
  end

  Success(input)
end
verbose() click to toggle source
# File lib/engineyard-serverside/callbacks/executor/executable.rb, line 103
def verbose
  config.verbose ? '1' : '0'
end