Make dir_empty? method use Redis metadata
This commit is contained in:
parent
573dadf365
commit
7084a50d1b
@ -453,10 +453,14 @@ module RemoteStorage
|
|||||||
end
|
end
|
||||||
|
|
||||||
def dir_empty?(user, dir)
|
def dir_empty?(user, dir)
|
||||||
|
if directory_backend(user).match /new/
|
||||||
|
redis.smembers("rs_meta:#{user}:#{dir}/:items").empty?
|
||||||
|
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"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def container_url_for(user)
|
def container_url_for(user)
|
||||||
"#{base_url}/#{container_for(user)}"
|
"#{base_url}/#{container_for(user)}"
|
||||||
|
@ -157,13 +157,11 @@ describe "App" do
|
|||||||
|
|
||||||
it "deletes the metadata object in redis" do
|
it "deletes the metadata object in redis" do
|
||||||
put_stub = OpenStruct.new(headers: {etag: "bla"})
|
put_stub = OpenStruct.new(headers: {etag: "bla"})
|
||||||
RemoteStorage::Swift.stub_any_instance :dir_empty?, false do
|
|
||||||
RestClient.stub :put, put_stub do
|
RestClient.stub :put, put_stub do
|
||||||
RestClient.stub :delete, "" do
|
RestClient.stub :delete, "" do
|
||||||
delete "/phil/food/aguacate"
|
delete "/phil/food/aguacate"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
metadata = redis.hgetall "rs_meta:phil:food/aguacate"
|
metadata = redis.hgetall "rs_meta:phil:food/aguacate"
|
||||||
metadata.must_be_empty
|
metadata.must_be_empty
|
||||||
@ -173,13 +171,11 @@ describe "App" do
|
|||||||
old_metadata = redis.hgetall "rs_meta:phil:food/"
|
old_metadata = redis.hgetall "rs_meta:phil:food/"
|
||||||
|
|
||||||
put_stub = OpenStruct.new(headers: {etag: "newetag"})
|
put_stub = OpenStruct.new(headers: {etag: "newetag"})
|
||||||
RemoteStorage::Swift.stub_any_instance :dir_empty?, false do
|
|
||||||
RestClient.stub :put, put_stub do
|
RestClient.stub :put, put_stub do
|
||||||
RestClient.stub :delete, "" do
|
RestClient.stub :delete, "" do
|
||||||
delete "/phil/food/aguacate"
|
delete "/phil/food/aguacate"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
metadata = redis.hgetall "rs_meta:phil:food/"
|
metadata = redis.hgetall "rs_meta:phil:food/"
|
||||||
metadata["etag"].must_equal "newetag"
|
metadata["etag"].must_equal "newetag"
|
||||||
@ -195,16 +191,9 @@ describe "App" do
|
|||||||
|
|
||||||
it "deletes the parent directory objects metadata when deleting all items" do
|
it "deletes the parent directory objects metadata when deleting all items" do
|
||||||
put_stub = OpenStruct.new(headers: {etag: "bla"})
|
put_stub = OpenStruct.new(headers: {etag: "bla"})
|
||||||
RemoteStorage::Swift.stub_any_instance :dir_empty?, false do
|
|
||||||
RestClient.stub :put, put_stub do
|
RestClient.stub :put, put_stub do
|
||||||
RestClient.stub :delete, "" do
|
RestClient.stub :delete, "" do
|
||||||
delete "/phil/food/aguacate"
|
delete "/phil/food/aguacate"
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
RemoteStorage::Swift.stub_any_instance :dir_empty?, true do
|
|
||||||
RestClient.stub :delete, "" do
|
|
||||||
delete "/phil/food/camaron"
|
delete "/phil/food/camaron"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user