Class: KumoDockerCloud::Environment

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/kumo_dockercloud/environment.rb

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ Environment

Returns a new instance of Environment.



17
18
19
20
21
22
23
24
25
# File 'lib/kumo_dockercloud/environment.rb', line 17

def initialize(params = {})
  @env_name = params.fetch(:name)
  @env_vars = params.fetch(:env_vars, {})
  @stack_template_path = params.fetch(:stack_template_path)
  @timeout = params.fetch(:timeout, 120)

  app_name = params.fetch(:app_name)
  @config = EnvironmentConfig.new(app_name: app_name, env_name: @env_name, config_path: params.fetch(:config_path))
end

Instance Method Details

#applyObject



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/kumo_dockercloud/environment.rb', line 27

def apply
  if @config.image_tag == 'latest'
    puts 'WARNING: Deploying latest. The deployed container version may arbitrarily change'
  end

  stack_file = write_stack_config_file(configure_stack(stack_template))
  run_command(stack_command(stack_file))
  stack_file.unlink

  run_command("docker-cloud stack redeploy #{stack_name}")

  wait_for_running(@timeout)
end

#destroyObject



41
42
43
# File 'lib/kumo_dockercloud/environment.rb', line 41

def destroy
  run_command("docker-cloud stack terminate --sync #{stack_name}")
end