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