class KumoDockerCloud::EnvironmentConfig
Constants
- LOGGER
Attributes
app_name[R]
env_name[R]
Public Class Methods
new(options, logger = LOGGER)
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 10 def initialize(options, logger = LOGGER) @env_name = options.fetch(:env_name) @config_path = options.fetch(:config_path) @log = logger @app_name = options.fetch(:app_name) @app_image = options.fetch(:app_image) end
Public Instance Methods
config()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 68 def config return @config if @config file = File.read(config_file_path) erb_result = ERB.new(file).result(get_binding) @config = YAML.load(erb_result) end
deploy_tag()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 26 def deploy_tag production? ? 'production' : 'non-production' end
development?()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 34 def development? !(%w(production staging).include?(env_name)) end
error_queue_url()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 98 def error_queue_url @error_queue_url ||= AssetWala::SqsQueue.get_error_queue_url end
get_binding()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 18 def get_binding binding end
image_name()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 43 def image_name if existing_image_name? existing_image_name else @app_image end end
image_tag()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 56 def image_tag image_name.split(':').last end
plain_text_secrets()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 76 def plain_text_secrets @plain_text_secrets ||= Hash[ encrypted_secrets.map do |name, cipher_text| @log.info "Decrypting '#{name}'" if cipher_text.start_with? '[ENC,' begin [name, "#{kms.decrypt cipher_text[5, cipher_text.size]}"] rescue @log.error "Error decrypting secret '#{name}' from '#{encrypted_secrets_filename}'" raise end else [name, cipher_text] end end ] end
production?()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 30 def production? env_name == 'production' end
rails_env(name)
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 60 def rails_env(name) if %w(development test cucumber demo staging production).include?(name) name else 'demo' end end
ruby_env()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 38 def ruby_env return 'development' if development? env_name end
stack_name()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 22 def stack_name "#{app_name}-#{env_name}" end
tagged_app_image(service_name)
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 51 def tagged_app_image(service_name) service = docker_cloud_api.service_by_stack_and_service_name(stack_name, service_name) service ? service.image_name : @app_image end
Private Instance Methods
config_file_path()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 121 def config_file_path path = File.join(config_path, "#{env_name}.yml") path = File.join(config_path, "development.yml") unless File.exist?(path) path end
config_path()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 133 def config_path File.expand_path(File.join(@config_path), __FILE__) end
docker_cloud_api()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 113 def docker_cloud_api @docker_cloud_api ||= KumoDockerCloud::DockerCloudApi.new end
encrypted_secrets()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 141 def encrypted_secrets file = File.read(encrypted_secrets_path) erb_result = ERB.new(file).result(get_binding) @encrypted_secrets ||= YAML.load(erb_result) end
encrypted_secrets_filename()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 137 def encrypted_secrets_filename File.basename encrypted_secrets_path end
encrypted_secrets_path()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 127 def encrypted_secrets_path secrets_filepath = File.join(config_path, "#{env_name}_secrets.yml") secrets_filepath = File.join(config_path, 'development_secrets.yml') unless File.exist?(secrets_filepath) secrets_filepath end
existing_image_name()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 108 def existing_image_name @service ||= docker_cloud_api.services_by_stack_name(stack_name).first @service ? @service.image_name : nil end
existing_image_name?()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 104 def existing_image_name? !!existing_image_name end
kms()
click to toggle source
# File lib/kumo_dockercloud/environment_config.rb, line 117 def kms @kms ||= KumoKi::KMS.new end