Sha256: 2f0b94e9efe2b94b4b6bbf010d2c5c87b244a62d8ff25e583f1f7c299d3b07e6
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
module Codebuild class Deploy < Stack def run handle_rollback_completed! if stack_exists?(@stack_name) Update.new(@options).run else Create.new(@options).run end end def handle_rollback_completed! @stack = find_stack(@stack_name) if @stack && rollback_complete?(@stack) puts "Existing stack in ROLLBACK_COMPLETE state. Deleting stack before continuing." cfn.delete_stack(stack_name: @stack_name) status.wait status.reset @stack = nil # at this point stack has been deleted end end def rollback_complete?(stack) stack.stack_status == 'ROLLBACK_COMPLETE' end def find_stack(stack_name) resp = cfn.describe_stacks(stack_name: stack_name) resp.stacks.first rescue Aws::CloudFormation::Errors::ValidationError => e # example: Stack with id demo-web does not exist if e.message =~ /Stack with/ && e.message =~ /does not exist/ nil else raise end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
codebuild-0.6.1 | lib/codebuild/deploy.rb |