class Broadside::Configuration

Attributes

application[RW]
aws[R]
config_file[RW]
default_docker_image[RW]
logger[RW]
posthook[RW]
prehook[RW]
ssh[RW]
targets[R]
timeout[RW]

Public Class Methods

new() click to toggle source
# File lib/broadside/configuration/configuration.rb, line 34
def initialize
  @aws = AwsConfiguration.new
  @logger = ::Logger.new(STDOUT)
  @logger.level = ::Logger::INFO
  @logger.datetime_format = '%Y-%m-%d_%H:%M:%S'
  @ssh = {}
  @timeout = 600
end

Public Instance Methods

get_target_by_name!(name) click to toggle source
# File lib/broadside/configuration/configuration.rb, line 52
def get_target_by_name!(name)
  @targets.fetch(name) { raise ArgumentError, "Deploy target '#{name}' does not exist!" }
end
ssh_cmd(ip, options = {}) click to toggle source
# File lib/broadside/configuration/configuration.rb, line 56
def ssh_cmd(ip, options = {})
  cmd = 'ssh -o StrictHostKeyChecking=no'
  cmd << ' -t -t' if options[:tty]
  cmd << " -i #{@ssh[:keyfile]}" if @ssh[:keyfile]
  if (proxy = @ssh[:proxy])
    cmd << ' -o ProxyCommand="ssh -q'
    cmd << " -i #{proxy[:keyfile]}" if proxy[:keyfile]
    cmd << ' '
    cmd << "#{proxy[:user]}@" if proxy[:user]
    cmd << "#{proxy[:host]} nc #{ip} #{proxy[:port]}\""
  end
  cmd << ' '
  cmd << "#{@ssh[:user]}@" if @ssh[:user]
  cmd << ip.to_s
  cmd
end
targets=(targets_hash) click to toggle source

Transform deploy target configs to Target objects

# File lib/broadside/configuration/configuration.rb, line 44
def targets=(targets_hash)
  raise ConfigurationError, ':targets must be a hash' unless targets_hash.is_a?(Hash)

  @targets = targets_hash.inject({}) do |h, (target_name, config)|
    h.merge(target_name => Target.new(target_name, config))
  end
end