Class: SimpleDeploy::Stack::Deployment
- Inherits:
-
Object
- Object
- SimpleDeploy::Stack::Deployment
- Defined in:
- lib/simple_deploy/stack/deployment.rb,
lib/simple_deploy/stack/deployment/status.rb
Defined Under Namespace
Classes: Status
Instance Method Summary collapse
- #clear_deployment_lock(force = false) ⇒ Object
- #clear_for_deployment? ⇒ Boolean
- #create_deployment ⇒ Object
- #execute(force = false) ⇒ Object
-
#initialize(args) ⇒ Deployment
constructor
A new instance of Deployment.
- #ssh ⇒ Object
Constructor Details
#initialize(args) ⇒ Deployment
Returns a new instance of Deployment.
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/simple_deploy/stack/deployment.rb', line 9 def initialize(args) @config = args[:config] @instances = args[:instances] @environment = args[:environment] @ssh_user = args[:ssh_user] @ssh_key = args[:ssh_key] @stack = args[:stack] @name = args[:name] @attributes = @stack.attributes @logger = @config.logger @region = @config.region @environment end |
Instance Method Details
#clear_deployment_lock(force = false) ⇒ Object
60 61 62 |
# File 'lib/simple_deploy/stack/deployment.rb', line 60 def clear_deployment_lock(force = false) status.clear_deployment_lock force end |
#clear_for_deployment? ⇒ Boolean
56 57 58 |
# File 'lib/simple_deploy/stack/deployment.rb', line 56 def clear_for_deployment? status.clear_for_deployment? end |
#create_deployment ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/simple_deploy/stack/deployment.rb', line 22 def create_deployment if @instances.nil? || @instances.empty? raise "There are no running instances to deploy to" end @deployment = Capistrano::Configuration.new :output => @logger @deployment.logger.level = 3 @logger.info "Creating deployment to #{@name}." set_ssh_gateway set_ssh_user set_instances set_deploy_command end |
#execute(force = false) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/simple_deploy/stack/deployment.rb', line 38 def execute(force = false) if !clear_for_deployment? && force clear_deployment_lock true end if clear_for_deployment? status.set_deployment_in_progress @logger.info 'Starting deployment.' @deployment.simpledeploy @logger.info 'Deployment complete.' status.unset_deployment_in_progress true else @logger.error "Not clear to deploy." false end end |
#ssh ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/simple_deploy/stack/deployment.rb', line 64 def ssh @stack.instances.map do |instance| info = instance['instancesSet'].first if info['vpcId'] gw = @attributes['ssh_gateway'] "\nssh -i #{@ssh_key} -l #{@ssh_user} -L 9998:#{info['privateIpAddress']}:22 -N #{gw} &\nssh -p 9998 localhost" else "\nssh -i #{@ssh_key} -l #{@ssh_user} #{info['ipAddress']}" end end end |