From 20d33cc1af9130b6d7f771d934ae2d11adf956b2 Mon Sep 17 00:00:00 2001 From: Garret Alfert Date: Fri, 11 Oct 2013 17:30:05 +0200 Subject: [PATCH] Read CS credentials from file --- .gitignore | 1 + config.yml.example | 6 ++++++ lib/remote_storage/riak.rb | 9 ++++++--- spec/spec_helper.rb | 11 +++++++++-- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 6382493..34387c2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ config.yml +cs_credentials.json pids diff --git a/config.yml.example b/config.yml.example index 3a9c112..2ae1ca3 100644 --- a/config.yml.example +++ b/config.yml.example @@ -3,20 +3,26 @@ development: &defaults riak: &riak_defaults host: localhost http_port: 8098 + riak_cs: + credentials_file: "cs_credentials.json" + endpoint: "http://cs.example.com:8080" buckets: data: rs_data directories: rs_directories binaries: rs_binaries + cs_binaries: rs.binaries authorizations: rs_authorizations opslog: rs_opslog test: + <<: *defaults riak: <<: *riak_defaults buckets: data: rs_data_test directories: rs_directories_test binaries: rs_binaries_test + cs_binaries: rs.binaries.test authorizations: rs_authorizations_test opslog: rs_opslog_test diff --git a/lib/remote_storage/riak.rb b/lib/remote_storage/riak.rb index 250070e..cec809c 100644 --- a/lib/remote_storage/riak.rb +++ b/lib/remote_storage/riak.rb @@ -9,11 +9,14 @@ module RemoteStorage ::Riak.url_decoding = true - attr_accessor :settings, :server + attr_accessor :settings, :server, :cs_credentials def initialize(settings, server) self.settings = settings self.server = server + + credentials = File.read(settings['riak_cs']['credentials_file']) + self.cs_credentials = JSON.parse(credentials) end def authorize_request(user, directory, token, listing=false) @@ -435,8 +438,8 @@ module RemoteStorage def cs_client @cs_client ||= Fog::Storage.new({ :provider => 'AWS', - :aws_access_key_id => settings['riak_cs']['access_key'], - :aws_secret_access_key => settings['riak_cs']['secret_key'], + :aws_access_key_id => cs_credentials['key_id'], + :aws_secret_access_key => cs_credentials['key_secret'], :endpoint => settings['riak_cs']['endpoint'] }) end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 5608959..2547b47 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -69,11 +69,18 @@ if app.settings.riak end end + def cs_credentials + @cs_credentials ||= begin + credentials = File.read(app.settings.riak['riak_cs']['credentials_file']) + JSON.parse(credentials) + end + end + def cs_client @cs_client ||= Fog::Storage.new({ :provider => 'AWS', - :aws_access_key_id => app.settings.riak['riak_cs']['access_key'], - :aws_secret_access_key => app.settings.riak['riak_cs']['secret_key'], + :aws_access_key_id => cs_credentials['key_id'], + :aws_secret_access_key => cs_credentials['key_secret'], :endpoint => app.settings.riak['riak_cs']['endpoint'] }) end