Use more explicit key name for items

This commit is contained in:
Garret Alfert 2016-03-02 18:06:42 +01:00
parent c2fd9bc6d0
commit 9b7b224f79
3 changed files with 13 additions and 13 deletions

View File

@ -87,7 +87,7 @@ module RemoteStorage
lua_script = <<-EOF lua_script = <<-EOF
local user = ARGV[1] local user = ARGV[1]
local directory = ARGV[2] local directory = ARGV[2]
local items = redis.call("smembers", "rs:m:"..user..":"..directory.."/:i") local items = redis.call("smembers", "rs:m:"..user..":"..directory.."/:items")
local listing = {} local listing = {}
for index, name in pairs(items) do for index, name in pairs(items) do
@ -403,7 +403,7 @@ module RemoteStorage
def update_metadata_object(user, directory, key, metadata) def update_metadata_object(user, directory, key, metadata)
redis_key = "rs:m:#{user}:#{directory}/#{key}" redis_key = "rs:m:#{user}:#{directory}/#{key}"
redis.hmset(redis_key, *metadata) redis.hmset(redis_key, *metadata)
redis.sadd "rs:m:#{user}:#{directory}/:i", key redis.sadd "rs:m:#{user}:#{directory}/:items", key
true true
end end
@ -421,7 +421,7 @@ module RemoteStorage
key = "rs:m:#{user}:#{dir}/" key = "rs:m:#{user}:#{dir}/"
metadata = {e: etag, m: timestamp} metadata = {e: etag, m: timestamp}
redis.hmset(key, *metadata) redis.hmset(key, *metadata)
redis.sadd "rs:m:#{user}:#{parent_directory_for(dir)}:i", "#{top_directory(dir)}/" redis.sadd "rs:m:#{user}:#{parent_directory_for(dir)}:items", "#{top_directory(dir)}/"
end end
true true
@ -438,7 +438,7 @@ module RemoteStorage
def delete_metadata_objects(user, directory, key) def delete_metadata_objects(user, directory, key)
redis_key = "rs:m:#{user}:#{directory}/#{key}" redis_key = "rs:m:#{user}:#{directory}/#{key}"
redis.del(redis_key) redis.del(redis_key)
redis.srem "rs:m:#{user}:#{directory}/:i", key redis.srem "rs:m:#{user}:#{directory}/:items", key
end end
def delete_dir_objects(user, directory) def delete_dir_objects(user, directory)
@ -450,7 +450,7 @@ module RemoteStorage
do_delete_request("#{url_for_directory(user, dir)}/") do_delete_request("#{url_for_directory(user, dir)}/")
end end
redis.del "rs:m:#{user}:#{directory}/" redis.del "rs:m:#{user}:#{directory}/"
redis.srem "rs:m:#{user}:#{parent_directory_for(dir)}:i", "#{dir}/" redis.srem "rs:m:#{user}:#{parent_directory_for(dir)}:items", "#{dir}/"
else else
unless dir == "" unless dir == ""
res = do_put_request("#{url_for_directory(user, dir)}/", timestamp.to_s, "text/plain") res = do_put_request("#{url_for_directory(user, dir)}/", timestamp.to_s, "text/plain")
@ -467,7 +467,7 @@ module RemoteStorage
def dir_empty?(user, dir) def dir_empty?(user, dir)
if directory_backend(user).match(/new/) if directory_backend(user).match(/new/)
redis.smembers("rs:m:#{user}:#{dir}/:i").empty? redis.smembers("rs:m:#{user}:#{dir}/:items").empty?
else else
do_get_request("#{container_url_for(user)}/?format=plain&limit=1&path=#{escape(dir)}/") do |res| do_get_request("#{container_url_for(user)}/?format=plain&limit=1&path=#{escape(dir)}/") do |res|
return res.headers[:content_length] == "0" return res.headers[:content_length] == "0"

View File

@ -85,7 +85,7 @@ class Migrator
end end
def add_item_to_parent_dir(dir, item) def add_item_to_parent_dir(dir, item)
key = "rs:m:#{username}:#{parent_directory_for(dir)}:i" key = "rs:m:#{username}:#{parent_directory_for(dir)}:items"
logger.debug "Adding item #{item} to #{key}" logger.debug "Adding item #{item} to #{key}"
redis.sadd(key, item) unless dry_run redis.sadd(key, item) unless dry_run
end end

View File

@ -58,12 +58,12 @@ describe "App" do
metadata["e"].must_equal "bla" metadata["e"].must_equal "bla"
metadata["m"].length.must_equal 13 metadata["m"].length.must_equal 13
food_items = redis.smembers "rs:m:phil:food/:i" food_items = redis.smembers "rs:m:phil:food/:items"
food_items.each do |food_item| food_items.each do |food_item|
["camaron", "aguacate"].must_include food_item ["camaron", "aguacate"].must_include food_item
end end
root_items = redis.smembers "rs:m:phil:/:i" root_items = redis.smembers "rs:m:phil:/:items"
root_items.must_equal ["food/"] root_items.must_equal ["food/"]
end end
@ -202,10 +202,10 @@ describe "App" do
metadata["m"].length.must_equal 13 metadata["m"].length.must_equal 13
metadata["m"].wont_equal old_metadata["m"] metadata["m"].wont_equal old_metadata["m"]
food_items = redis.smembers "rs:m:phil:food/:i" food_items = redis.smembers "rs:m:phil:food/:items"
food_items.must_equal ["camaron"] food_items.must_equal ["camaron"]
root_items = redis.smembers "rs:m:phil:/:i" root_items = redis.smembers "rs:m:phil:/:items"
root_items.must_equal ["food/"] root_items.must_equal ["food/"]
end end
@ -226,10 +226,10 @@ describe "App" do
metadata = redis.hgetall "rs:m:phil:food/" metadata = redis.hgetall "rs:m:phil:food/"
metadata.must_be_empty metadata.must_be_empty
food_items = redis.smembers "rs:m:phil:food/:i" food_items = redis.smembers "rs:m:phil:food/:items"
food_items.must_be_empty food_items.must_be_empty
root_items = redis.smembers "rs:m:phil:/:i" root_items = redis.smembers "rs:m:phil:/:items"
root_items.must_be_empty root_items.must_be_empty
end end
end end