class EbDeployer::DeploymentStrategy::BlueOnly

Public Class Methods

new(component) click to toggle source
# File lib/eb_deployer/deployment_strategy/blue_only.rb, line 4
def initialize(component)
  @component = component
end

Public Instance Methods

deploy(version_label, env_settings, inactive_settings=[]) click to toggle source
# File lib/eb_deployer/deployment_strategy/blue_only.rb, line 15
def deploy(version_label, env_settings, inactive_settings=[])
  if !ebenvs.any?(&method(:active_ebenv?))
    ebenv('a', @component.cname_prefix).
      deploy(version_label, env_settings)
    return
  end

  inactive_ebenv = ebenvs.reject(&method(:active_ebenv?)).first

  inactive_ebenv.deploy(version_label, env_settings)
end
test_compatibility(env_create_options) click to toggle source
# File lib/eb_deployer/deployment_strategy/blue_only.rb, line 8
def test_compatibility(env_create_options)
  tier = env_create_options[:tier]
  if tier && tier.downcase == 'worker'
    raise "Blue only deployment is not supported for Worker tier"
  end
end

Private Instance Methods

active_ebenv?(ebenv) click to toggle source
# File lib/eb_deployer/deployment_strategy/blue_only.rb, line 28
def active_ebenv?(ebenv)
  ebenv.cname_prefix == @component.cname_prefix
end
ebenv(suffix, cname_prefix=nil) click to toggle source
# File lib/eb_deployer/deployment_strategy/blue_only.rb, line 36
def ebenv(suffix, cname_prefix=nil)
  @component.new_eb_env(suffix, cname_prefix || inactive_cname_prefix)
end
ebenvs() click to toggle source
# File lib/eb_deployer/deployment_strategy/blue_only.rb, line 32
def ebenvs
  [ebenv('a'), ebenv('b')]
end
inactive_cname_prefix() click to toggle source
# File lib/eb_deployer/deployment_strategy/blue_only.rb, line 40
def inactive_cname_prefix
  "#{@component.cname_prefix}-inactive"
end