Use directory backend config from redis instead of config file

This commit is contained in:
Garret Alfert
2016-01-29 16:18:09 +01:00
parent 16dcc56fba
commit a4673e9661
4 changed files with 38 additions and 4 deletions

View File

@@ -75,7 +75,7 @@ module RemoteStorage
end
def get_directory_listing(user, directory)
if settings.use_redis_dir_listing
if directory_backend(user).match /new/
get_directory_listing_from_redis(user, directory)
else
get_directory_listing_from_swift(user, directory)
@@ -289,7 +289,7 @@ module RemoteStorage
end
def has_name_collision?(user, directory, key)
if settings.use_redis_dir_listing
if directory_backend(user).match /new/
has_name_collision_via_redis?(user, directory, key)
else
has_name_collision_via_swift?(user, directory, key)
@@ -518,6 +518,10 @@ module RemoteStorage
@redis ||= Redis.new(host: settings.redis["host"], port: settings.redis["port"])
end
def directory_backend(user)
@directory_backend ||= redis.get("rs_config:dir_backend:#{user}") || "legacy"
end
def etag_for(body)
objects = JSON.parse(body)