class OpenStudio::Aws::Config
Attributes
access_key[RW]
secret_key[RW]
Public Class Methods
new(yml_config_file = nil)
click to toggle source
# File lib/openstudio/aws/config.rb, line 44 def initialize(yml_config_file = nil) # If the AWS keys are set in the env variable and the yml_config_file is nil, then use those keys @access_key = ENV['AWS_ACCESS_KEY_ID'] if ENV['AWS_ACCESS_KEY_ID'] @secret_key = ENV['AWS_SECRET_ACCESS_KEY'] if ENV['AWS_SECRET_ACCESS_KEY'] if @access_key && @secret_key && yml_config_file.nil? logger.info 'Using AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY from environment variables' else # Otherwise read the file logger.info 'Reading AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY from aws config file' @yml_config_file = yml_config_file @config = nil @yml_config_file = File.join(File.expand_path('~'), 'aws_config.yml') if @yml_config_file.nil? unless File.exist?(@yml_config_file) write_config_file raise "Config file not found. A template has been added, please edit and save: #{@yml_config_file}" exit 1 end begin @config = YAML.load(File.read(@yml_config_file)) # always convert to symbolized hash @config = @config.inject({}) { |a, (k, v)| a[k.to_sym] = v; a } @access_key = @config[:access_key_id] @secret_key = @config[:secret_access_key] rescue StandardError raise "Couldn't read config file #{@yml_config_file}. Delete file then recreate by rerunning script" end end end
Private Instance Methods
write_config_file()
click to toggle source
# File lib/openstudio/aws/config.rb, line 82 def write_config_file # create the file data = { access_key_id: 'YOUR_ACCESS_KEY_ID', secret_access_key: 'YOUR_SECRET_ACCESS_KEY' } File.open(@yml_config_file, 'w') { |f| f << data.to_yaml } end