Determine which container to use from Redis
This commit is contained in:
parent
49ec6effa7
commit
fdc819d53d
@ -20,7 +20,7 @@ module RemoteStorage
|
|||||||
def authorize_request(user, directory, token, listing=false)
|
def authorize_request(user, directory, token, listing=false)
|
||||||
request_method = server.env["REQUEST_METHOD"]
|
request_method = server.env["REQUEST_METHOD"]
|
||||||
|
|
||||||
if request_method.match(/PUT|DELETE/) && redis.sismember("migration_in_progress", user)
|
if request_method.match(/PUT|DELETE/) && container_type(user) == "locked"
|
||||||
server.halt 503, "Down for maintenance. Back soon!"
|
server.halt 503, "Down for maintenance. Back soon!"
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -383,13 +383,11 @@ module RemoteStorage
|
|||||||
end
|
end
|
||||||
|
|
||||||
def container_url_for(user)
|
def container_url_for(user)
|
||||||
user_container_url = "#{base_url}/#{container_for(user)}"
|
if container_type(user) == "shared"
|
||||||
res = do_head_request(user_container_url)
|
|
||||||
# User before container migration
|
|
||||||
return user_container_url if res.status == 200
|
|
||||||
rescue RestClient::ResourceNotFound
|
|
||||||
# User after container migration
|
|
||||||
"#{base_url}/rs:documents:#{settings.environment.to_s}/#{user}"
|
"#{base_url}/rs:documents:#{settings.environment.to_s}/#{user}"
|
||||||
|
else
|
||||||
|
user_container_url
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def url_for_key(user, directory, key)
|
def url_for_key(user, directory, key)
|
||||||
@ -404,6 +402,10 @@ module RemoteStorage
|
|||||||
"rs:#{settings.environment.to_s.chars.first}:#{user}"
|
"rs:#{settings.environment.to_s.chars.first}:#{user}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def container_type(user)
|
||||||
|
redis.get("rs:container:#{user}") || "legacy"
|
||||||
|
end
|
||||||
|
|
||||||
def default_headers
|
def default_headers
|
||||||
{"x-auth-token" => swift_token}
|
{"x-auth-token" => swift_token}
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user