class Dumbwaiter::Mock

Attributes

apps[R]
deployments[R]
instances[R]
layers[R]
stacks[R]
user_profiles[R]

Public Class Methods

new() click to toggle source
# File lib/dumbwaiter/mock.rb, line 29
def initialize
  clear
end

Public Instance Methods

clear() click to toggle source
# File lib/dumbwaiter/mock.rb, line 20
def clear
  @stacks = []
  @deployments = []
  @apps = []
  @layers = []
  @instances = []
  @user_profiles = []
end
create_app(params = {}) click to toggle source
# File lib/dumbwaiter/mock.rb, line 42
def create_app(params = {})
  params[:stack_id] ||= create_stack.stack_id
  params[:name] ||= Faker::Name.last_name
  params[:shortname] ||= Faker::Name.first_name.downcase
  params[:app_source] = Hashie::Mash.new(params.fetch(:app_source, {}))
  params[:app_source][:url] ||= Faker::Internet.url
  params[:app_source][:revision] = params[:app_source].fetch(:revision, make_revision)
  app = OpenStruct.new(params.merge(app_id: make_id))
  apps << app
  app
end
create_deployment(params = {}) click to toggle source
# File lib/dumbwaiter/mock.rb, line 66
def create_deployment(params = {})
  params[:stack_id] ||= create_stack.stack_id
  params[:app_id] ||= create_app.app_id
  params[:command] = Hashie::Mash.new(params.fetch(:command, {}))
  params[:command][:name] ||= %w[install_dependencies update_dependencies update_custom_cookbooks execute_recipes deploy rollback start stop restart undeploy].sample
  params[:custom_json] ||= "{}"
  params[:comment] ||= Faker::Company.bs
  params[:iam_user_arn] = params.fetch(:iam_user_arn, create_user_profile.iam_user_arn)
  params[:created_at] ||= Time.now.to_s
  params[:status] ||= %w[running failed successful].sample
  deployment = OpenStruct.new(params.merge(deployment_id: make_id))
  deployments << deployment
  deployment
end
create_instance(params = {}) click to toggle source
# File lib/dumbwaiter/mock.rb, line 81
def create_instance(params = {})
  params[:stack_id] ||= create_stack.stack_id
  params[:layer_id] ||= create_layer.layer_id
  instance = OpenStruct.new(params.merge(instance_id: make_id))
  instances << instance
  instance
end
create_layer(params = {}) click to toggle source
# File lib/dumbwaiter/mock.rb, line 54
def create_layer(params = {})
  params[:stack_id] ||= create_stack.stack_id
  params[:name] ||= Faker::Name.last_name
  params[:shortname] ||= Faker::Name.first_name.downcase
  params[:custom_recipes] = params[:custom_recipes] || {}
  params[:custom_recipes] = {setup: [], configure: [], deploy: [], undeploy: [], shutdown:[]}.merge(params[:custom_recipes])
  params[:type] ||= %w[lb web php-app rails-app nodejs-app memcached db-master monitoring-master custom].sample
  layer = OpenStruct.new(params.merge(layer_id: make_id))
  layers << layer
  layer
end
create_stack(params = {}) click to toggle source
# File lib/dumbwaiter/mock.rb, line 33
def create_stack(params = {})
  params[:name] ||= Faker::Name.first_name
  params[:attributes] ||= {}
  params[:attributes]["Color"] ||= make_color
  stack = OpenStruct.new(params.merge(stack_id: make_id))
  stacks << stack
  stack
end
create_user_profile(params = {}) click to toggle source
# File lib/dumbwaiter/mock.rb, line 89
def create_user_profile(params = {})
  params[:iam_user_arn] ||= Faker::Name.first_name.downcase
  params[:ssh_username] ||= Faker::Name.first_name.downcase
  params[:name] ||= Faker::Name.first_name.downcase
  user_profile = OpenStruct.new(params)
  user_profiles << user_profile
  user_profile
end
describe_apps(*_) click to toggle source
# File lib/dumbwaiter/mock.rb, line 15
def describe_apps(*_); OpenStruct.new(apps: apps); end
describe_deployments(*_) click to toggle source
# File lib/dumbwaiter/mock.rb, line 14
def describe_deployments(*_); OpenStruct.new(deployments: deployments); end
describe_instances(*_) click to toggle source
# File lib/dumbwaiter/mock.rb, line 17
def describe_instances(*_); OpenStruct.new(instances: instances); end
describe_layers(*_) click to toggle source
# File lib/dumbwaiter/mock.rb, line 16
def describe_layers(*_); OpenStruct.new(layers: layers); end
describe_stacks(*_) click to toggle source
# File lib/dumbwaiter/mock.rb, line 13
def describe_stacks(*_); OpenStruct.new(stacks: stacks); end
describe_user_profiles(*_) click to toggle source
# File lib/dumbwaiter/mock.rb, line 18
def describe_user_profiles(*_); OpenStruct.new(user_profiles: user_profiles); end
opsworks() click to toggle source
# File lib/dumbwaiter/mock.rb, line 12
def opsworks; self; end

Protected Instance Methods

make_color() click to toggle source
# File lib/dumbwaiter/mock.rb, line 104
def make_color
  "rgb(#{rand(255)},#{rand(255)},#{rand(255)})"
end
make_id() click to toggle source
# File lib/dumbwaiter/mock.rb, line 108
def make_id
  @id ||= 0
  @id += 1
  "taco-#{@id}"
end
make_revision() click to toggle source
# File lib/dumbwaiter/mock.rb, line 100
def make_revision
  "%06x" % (rand * 0xffffff)
end