Sha256: bcfa890ba677828bf889124113d03cec19072434b20a9ca965e9a269fbf0bd89
Contents?: true
Size: 1.42 KB
Versions: 2
Compression:
Stored size: 1.42 KB
Contents
module BBC module Cosmos module Config class AWS def initialize(ec2, s3) @ec2 = ec2 @s3 = s3 end def tags instance.tags end def region ::AWS.config.region end def instance_id BBC::Cosmos.production? ? aws_instance_id : "instance_id" end def config(config, path) BBC::Cosmos.production? ? s3_config(config[:component_resources_bucket], path, config[:environment], config[:configuration][:commit]) : config[:configuration] end private def s3_config_location tags['AppName'] end def s3_config(bucket, path, env, version) JSON.parse(@s3.buckets[bucket].objects["#{path}/#{env}/config/#{version}/#{s3_config_location}.json"].read, :symbolize_names => true) end def instance BBC::Cosmos.production? ? aws_instance : dummy_instance end def dummy_instance Struct.new(:tags).new({ "aws:cloudformation:stack-name" => "stack_name", "Component" => "component_name", "AppName" => "app_name" }) end def aws_instance @instance ||= @ec2.regions[region].instances[instance_id] end def aws_instance_id `curl http://169.254.169.254/latest/meta-data/instance-id` end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bbc-cosmos-config-0.1.0 | lib/bbc/cosmos/config/aws.rb |
bbc-cosmos-config-0.0.9 | lib/bbc/cosmos/config/aws.rb |