class F2yAwsTool::Deploy
Public Class Methods
new(options)
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 4 def initialize(options) @options = options end
Public Instance Methods
client()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 20 def client @client ||= Aws::OpsWorks::Client.new( region: region, access_key_id: access_key_id, secret_access_key: secret_access_key, logger: aws_logger, log_level: aws_log_level ) end
run()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 8 def run deploy_id = create_deployment.deployment_id deployed_app = describe_deployment(deploy_id) log.info(sprintf("ID: %s, STATUS: %s", deploy_id, deployed_app.status)) if wait? client.wait_until(:deployment_successful, deployment_ids: [deploy_id]) deployed_app = describe_deployment(deploy_id) log.info(sprintf("ID: %s, STATUS: %s, DURATION: %s", deploy_id, deployed_app.status, Time.at(deployed_app.duration).utc.strftime("%H:%M:%S"))) end return {deployment_id: deploy_id, status: deployed_app.status.to_sym} end
Private Instance Methods
access_key_id()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 37 def access_key_id @access_key_id ||= @options.fetch(:access_key_id){ENV.fetch('AWS_ACCESS_KEY_ID')} end
app_id()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 49 def app_id @app_id ||= config.fetch(:app_id) end
aws_log_level()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 77 def aws_log_level @aws_log_level ||= log_level.downcase.to_sym end
aws_logger()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 73 def aws_logger @log_aws ||= @options.fetch(:log_aws) ? log : nil end
comment()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 69 def comment @comment ||= @options.fetch(:comment) end
config()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 103 def config @config ||= begin HashWithIndifferentAccess.new(YAML.load(File.read(target.fetch(:file)))) rescue KeyError target end end
create_deployment()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 85 def create_deployment client.create_deployment( { stack_id: stack_id, app_id: app_id, command: { name: "deploy", args: {"migrate" => ["#{migrate?}"]}, }, comment: comment } ) end
describe_deployment(deploy_id)
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 32 def describe_deployment(deploy_id) client.describe_deployments({deployment_ids: [deploy_id]}).deployments.first end
log()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 81 def log @log ||= F2yAwsTool.log(log_level) end
log_level()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 65 def log_level @log_level ||= @options.fetch(:log_level) end
migrate?()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 57 def migrate? @migrate ||= @options.fetch(:migrate) end
region()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 53 def region @region ||= config.fetch(:region){ENV.fetch('AWS_REGION')} end
secret_access_key()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 41 def secret_access_key @secret_access_key ||= @options.fetch(:secret_access_key){ENV.fetch('AWS_SECRET_ACCESS_KEY')} end
stack_id()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 45 def stack_id @stack_id ||= config.fetch(:stack_id) end
target()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 99 def target @target ||= HashWithIndifferentAccess.new(@options.fetch(:target)) end
wait?()
click to toggle source
# File lib/f2y_aws_tool/deploy.rb, line 61 def wait? @wait ||= @options.fetch(:wait) end