class GoodData::Bricks::AWSMiddleware
Public Instance Methods
call(params)
click to toggle source
# File lib/gooddata/bricks/middleware/aws_middleware.rb, line 13 def call(params) params = params.to_hash s3_config = get_s3_config(params) unless s3_config.empty? GoodData.logger.info('Setting up AWS-S3 connection') if params.key?('aws_client') params['s3_client'] = {} elsif params.key?('s3_client') params['input_source'] = {} unless params.key?('input_source') params['input_source']['bucket'] = params['s3_client']['bucket'] end s3_config = rewrite_for_aws_sdk_v2(s3_config) symbolized_config = GoodData::Helpers.symbolize_keys(s3_config) params['s3_client']['client'] = Aws::S3::Resource.new(symbolized_config) end @app.call(params) end
Private Instance Methods
get_s3_config(params)
click to toggle source
# File lib/gooddata/bricks/middleware/aws_middleware.rb, line 34 def get_s3_config(params) s3_config = {} if params.key?('aws_client') GoodData.logger.warn('Found two configuration aws_client and s3_client for S3 input source, use aws_client configuration') if params.key?('s3_client') raise 'Unable to connect to AWS. Parameter "aws_client" seems to be empty' unless params['aws_client'] raise 'Unable to connect to AWS. Parameter "access_key_id" is missing' if params['aws_client']['access_key_id'].blank? raise 'Unable to connect to AWS. Parameter "secret_access_key" is missing' if params['aws_client']['secret_access_key'].blank? s3_config = params['aws_client'] elsif params.key?('s3_client') raise 'Unable to connect to AWS. Parameter "s3_client" seems to be empty' unless params['s3_client'] raise 'Unable to connect to AWS. Parameter "accessKey" is missing' if params['s3_client']['accessKey'].blank? raise 'Unable to connect to AWS. Parameter "secretKey" is missing' if params['s3_client']['secretKey'].blank? raise 'Unable to connect to AWS. Parameter "bucket" is missing' if params['s3_client']['bucket'].blank? s3_config['access_key_id'] = params['s3_client']['accessKey'] s3_config['secret_access_key'] = params['s3_client']['secretKey'] s3_config['region'] = params['s3_client']['region'] end s3_config end
rewrite_for_aws_sdk_v2(config)
click to toggle source
# File lib/gooddata/bricks/middleware/aws_middleware.rb, line 56 def rewrite_for_aws_sdk_v2(config) config['region'] = 'us-west-2' unless config['region'] if config['use_ssl'] fail 'Parameter use_ssl has been deprecated. Version 2 of the AWS ' \ 'SDK uses SSL everywhere. To disable SSL you must ' \ 'configure an endpoint that uses http://.' end config end