Fix merge conflict

This commit is contained in:
Basti 2013-04-29 18:38:40 +02:00
commit c78be51e8f
9 changed files with 101 additions and 111 deletions

View File

@ -2,8 +2,8 @@ source "http://rubygems.org"
gem "sinatra" gem "sinatra"
gem "sinatra-contrib" gem "sinatra-contrib"
gem "activesupport"
gem "riak-client" gem "riak-client"
gem "airbrake"
group :test do group :test do
gem 'rake' gem 'rake'

View File

@ -1,16 +1,13 @@
GEM GEM
remote: http://rubygems.org/ remote: http://rubygems.org/
specs: specs:
activesupport (3.2.2) activesupport (3.2.13)
i18n (~> 0.6) i18n (= 0.6.1)
multi_json (~> 1.0) multi_json (~> 1.0)
airbrake (3.0.9) backports (3.3.0)
activesupport
builder
backports (2.3.0)
beefcake (0.3.7) beefcake (0.3.7)
builder (3.1.3) builder (3.1.3)
eventmachine (0.12.10) eventmachine (1.0.3)
i18n (0.6.1) i18n (0.6.1)
kgio (2.7.4) kgio (2.7.4)
m (1.2.1) m (1.2.1)
@ -22,9 +19,9 @@ GEM
purdytest (1.0.0) purdytest (1.0.0)
minitest (~> 2.2) minitest (~> 2.2)
rack (1.5.2) rack (1.5.2)
rack-protection (1.1.4) rack-protection (1.5.0)
rack rack
rack-test (0.6.1) rack-test (0.6.2)
rack (>= 1.0) rack (>= 1.0)
raindrops (0.10.0) raindrops (0.10.0)
rake (0.9.2.2) rake (0.9.2.2)
@ -33,18 +30,18 @@ GEM
builder (>= 2.1.2) builder (>= 2.1.2)
i18n (>= 0.4.0) i18n (>= 0.4.0)
multi_json (~> 1.0) multi_json (~> 1.0)
sinatra (1.3.1) sinatra (1.4.2)
rack (~> 1.3, >= 1.3.4) rack (~> 1.5, >= 1.5.2)
rack-protection (~> 1.1, >= 1.1.2) rack-protection (~> 1.4)
tilt (~> 1.3, >= 1.3.3) tilt (~> 1.3, >= 1.3.4)
sinatra-contrib (1.3.1) sinatra-contrib (1.4.0)
backports (>= 2.0) backports (>= 2.0)
eventmachine eventmachine
rack-protection rack-protection
rack-test rack-test
sinatra (~> 1.3.0) sinatra (~> 1.4.2)
tilt (~> 1.3) tilt (~> 1.3)
tilt (1.3.3) tilt (1.3.7)
unicorn (4.3.1) unicorn (4.3.1)
kgio (~> 2.6) kgio (~> 2.6)
rack rack
@ -54,7 +51,7 @@ PLATFORMS
ruby ruby
DEPENDENCIES DEPENDENCIES
airbrake activesupport
m m
purdytest purdytest
rake rake

View File

@ -1,25 +1,26 @@
defaults: &defaults development: &defaults
riak: riak:
host: localhost host: localhost
http_port: 8098 http_port: 8098
buckets: buckets:
data: "user_data" data: rs_data
directories: "rs_directories" directories: rs_directories
binaries: "rs_binaries" binaries: rs_binaries
authorizations: "authorizations" authorizations: rs_authorizations
info: "rs_info" opslog: rs_opslog
development:
<<: *defaults
test: test:
<<: *defaults <<: *defaults
buckets: riak:
data: "user_data_test" buckets:
directories: "rs_directories_test" data: rs_data_test
binaries: "rs_binaries_test" directories: rs_directories_test
authorizations: "authorizations_test" binaries: rs_binaries_test
info: "rs_info_test" authorizations: rs_authorizations_test
opslog: rs_opslog_test
staging:
<<: *defaults
production: production:
<<: *defaults <<: *defaults

View File

@ -1,6 +1,8 @@
require "riak" require "riak"
require "json" require "json"
require "cgi" require "cgi"
require "active_support/core_ext/time/conversions"
require "active_support/core_ext/numeric/time"
module RemoteStorage module RemoteStorage
module Riak module Riak
@ -8,23 +10,24 @@ module RemoteStorage
::Riak.url_decoding = true ::Riak.url_decoding = true
def client def client
@client ||= ::Riak::Client.new(LiquorCabinet.config['riak'].symbolize_keys) @client ||= ::Riak::Client.new(:host => settings.riak['host'],
:http_port => settings.riak['http_port'])
end end
def data_bucket def data_bucket
@data_bucket ||= client.bucket(LiquorCabinet.config['buckets']['data']) @data_bucket ||= client.bucket(settings.riak['buckets']['data'])
end end
def directory_bucket def directory_bucket
@directory_bucket ||= client.bucket(LiquorCabinet.config['buckets']['directories']) @directory_bucket ||= client.bucket(settings.riak['buckets']['directories'])
end end
def auth_bucket def auth_bucket
@auth_bucket ||= client.bucket(LiquorCabinet.config['buckets']['authorizations']) @auth_bucket ||= client.bucket(settings.riak['buckets']['authorizations'])
end end
def binary_bucket def binary_bucket
@binary_bucket ||= client.bucket(LiquorCabinet.config['buckets']['binaries']) @binary_bucket ||= client.bucket(settings.riak['buckets']['binaries'])
end end
def info_bucket def info_bucket

View File

@ -2,39 +2,42 @@ $LOAD_PATH << File.join(File.expand_path(File.dirname(__FILE__)), 'lib')
require "json" require "json"
require "sinatra/base" require "sinatra/base"
require 'sinatra/config_file'
require "sinatra/reloader" require "sinatra/reloader"
require "remote_storage/riak" require "remote_storage/riak"
class LiquorCabinet < Sinatra::Base class LiquorCabinet < Sinatra::Base
include RemoteStorage::Riak #
# Configuration
#
def self.config=(config) configure do
@config = config disable :protection
configure_airbrake
end
def self.config register Sinatra::ConfigFile
return @config if @config set :environments, %w{development test production staging}
config = File.read(File.expand_path('config.yml', File.dirname(__FILE__))) config_file 'config.yml'
self.config = YAML.load(config)[ENV['RACK_ENV']]
end end
configure :development do configure :development do
register Sinatra::Reloader register Sinatra::Reloader
end
configure :development, :staging, :production do
enable :logging enable :logging
disable :protection
end end
configure :production do if settings.riak
disable :logging include RemoteStorage::Riak
disable :protection # elsif settings.redis
# include RemoteStorage::Redis
# end
end end
configure :staging do #
disable :logging # Cabinet doors
disable :protection #
end
["/:user/*/:key", "/:user/:key", "/:user/*/", "/:user/"].each do |path| ["/:user/*/:key", "/:user/:key", "/:user/*/", "/:user/"].each do |path|
before path do before path do
@ -91,19 +94,4 @@ class LiquorCabinet < Sinatra::Base
end end
end end
private
def self.configure_airbrake
if @config['airbrake'] && @config['airbrake']['api_key']
require "airbrake"
Airbrake.configure do |airbrake|
airbrake.api_key = @config['airbrake']['api_key']
end
use Airbrake::Rack
enable :raise_errors
end
end
end end

View File

@ -2,7 +2,6 @@ require_relative "spec_helper"
describe "Directories" do describe "Directories" do
include Rack::Test::Methods include Rack::Test::Methods
include RemoteStorage::Riak
before do before do
purge_all_buckets purge_all_buckets

View File

@ -2,7 +2,6 @@ require_relative "spec_helper"
describe "Permissions" do describe "Permissions" do
include Rack::Test::Methods include Rack::Test::Methods
include RemoteStorage::Riak
before do before do
purge_all_buckets purge_all_buckets

View File

@ -11,7 +11,6 @@ end
describe "App with Riak backend" do describe "App with Riak backend" do
include Rack::Test::Methods include Rack::Test::Methods
include RemoteStorage::Riak
before do before do
purge_all_buckets purge_all_buckets
@ -126,6 +125,11 @@ describe "App with Riak backend" do
indexes["directory_bin"].must_include "documents" indexes["directory_bin"].must_include "documents"
end end
# it "logs the operation" do
# logs = storage_client.get_index("rs_opslog", "user_id_bin", "jimmy")
# logs.count.must_equal 1
# end
end end
describe "with explicit content type" do describe "with explicit content type" do

View File

@ -8,49 +8,13 @@ require 'rack/test'
require 'purdytest' require 'purdytest'
require 'riak' require 'riak'
set :environment, :test
ENV["RACK_ENV"] = "test" ENV["RACK_ENV"] = "test"
config_file = File.read(File.expand_path('../config.yml', File.dirname(__FILE__)))
config = YAML.load(config_file)[ENV['RACK_ENV']]
set :riak_config, config['riak'].symbolize_keys
set :bucket_config, config['buckets']
::Riak.disable_list_keys_warnings = true
def app def app
LiquorCabinet LiquorCabinet
end end
def storage_client app.set :environment, :test
@storage_client ||= ::Riak::Client.new(settings.riak_config)
end
def data_bucket
@data_bucket ||= storage_client.bucket(settings.bucket_config['data'])
end
def auth_bucket
@auth_bucket ||= storage_client.bucket(settings.bucket_config['authorizations'])
end
def directory_bucket
@directory_bucket ||= storage_client.bucket(settings.bucket_config['directories'])
end
def binary_bucket
@binary_bucket ||= storage_client.bucket(settings.bucket_config['binaries'])
end
def info_bucket
@info_bucket ||= storage_client.bucket(settings.bucket_config['info'])
end
def purge_all_buckets
[data_bucket, directory_bucket, auth_bucket, binary_bucket, info_bucket].each do |bucket|
bucket.keys.each {|key| bucket.delete key}
end
end
def wait_a_second def wait_a_second
now = Time.now.to_i now = Time.now.to_i
@ -64,3 +28,38 @@ def write_last_response_to_file(filename = "last_response.html")
end end
alias context describe alias context describe
if app.settings.riak
::Riak.disable_list_keys_warnings = true
def client
@client ||= ::Riak::Client.new(:host => app.settings.riak['host'],
:http_port => app.settings.riak['http_port'])
end
def data_bucket
@data_bucket ||= client.bucket(app.settings.riak['buckets']['data'])
end
def auth_bucket
@auth_bucket ||= client.bucket(app.settings.riak['buckets']['authorizations'])
end
def directory_bucket
@directory_bucket ||= client.bucket(app.settings.riak['buckets']['directories'])
end
def binary_bucket
@binary_bucket ||= client.bucket(app.settings.riak['buckets']['binaries'])
end
def opslog_bucket
@opslog_bucket ||= client.bucket(app.settings.riak['buckets']['opslog'])
end
def purge_all_buckets
[data_bucket, directory_bucket, auth_bucket, binary_bucket].each do |bucket|
bucket.keys.each {|key| bucket.delete key}
end
end
end