class Dumbwaiter::App

Attributes

opsworks[R]
opsworks_app[R]
stack[R]

Public Class Methods

all(stack, opsworks = Aws::OpsWorks::Client.new(region: "us-east-1")) click to toggle source
# File lib/dumbwaiter/app.rb, line 8
def self.all(stack, opsworks = Aws::OpsWorks::Client.new(region: "us-east-1"))
  opsworks.describe_apps(stack_id: stack.id).apps.map { |app| new(stack, app, opsworks) }
end
find(stack, app_name, opsworks = Aws::OpsWorks::Client.new(region: "us-east-1")) click to toggle source
# File lib/dumbwaiter/app.rb, line 12
def self.find(stack, app_name, opsworks = Aws::OpsWorks::Client.new(region: "us-east-1"))
  app = all(stack, opsworks).detect { |app| app.name == app_name }
  raise NotFound.new("No app found with name #{app_name}") if app.nil?
  app
end
find_by_id(stack, app_id, opsworks = Aws::OpsWorks::Client.new(region: "us-east-1")) click to toggle source
# File lib/dumbwaiter/app.rb, line 18
def self.find_by_id(stack, app_id, opsworks = Aws::OpsWorks::Client.new(region: "us-east-1"))
  app = all(stack, opsworks).detect { |app| app.id == app_id }
  raise NotFound.new("No app found with id #{app_id}") if app.nil?
  app
end
new(stack, opsworks_app, opsworks = Aws::OpsWorks::Client.new(region: "us-east-1")) click to toggle source
# File lib/dumbwaiter/app.rb, line 24
def initialize(stack, opsworks_app, opsworks = Aws::OpsWorks::Client.new(region: "us-east-1"))
  @stack = stack
  @opsworks_app = opsworks_app
  @opsworks = opsworks
end

Public Instance Methods

deploy(revision = nil) click to toggle source
# File lib/dumbwaiter/app.rb, line 46
def deploy(revision = nil)
  deployment = as_deployment("deploy", args: {migrate: ["true"]})
  unless revision.nil?
    custom_json = Dumbwaiter::DeploymentCustomJson.create(name, revision)
    deployment[:custom_json] = custom_json.to_json
  end
  opsworks.create_deployment(deployment)
end
id() click to toggle source
# File lib/dumbwaiter/app.rb, line 34
def id
  opsworks_app.app_id
end
name() click to toggle source
# File lib/dumbwaiter/app.rb, line 30
def name
  opsworks_app.name
end
revision() click to toggle source
# File lib/dumbwaiter/app.rb, line 42
def revision
  opsworks_app.app_source.revision || "master"
end
rollback() click to toggle source
# File lib/dumbwaiter/app.rb, line 55
def rollback
  opsworks.create_deployment(as_deployment("rollback"))
end
url() click to toggle source
# File lib/dumbwaiter/app.rb, line 38
def url
  opsworks_app.app_source.url
end

Protected Instance Methods

as_deployment(command_name, args = {}) click to toggle source
# File lib/dumbwaiter/app.rb, line 61
def as_deployment(command_name, args = {})
  {
    app_id: id,
    stack_id: stack.id,
    command: {name: command_name}.merge(args),
  }
end