From a35fef3727286bdb0fdff799c57366a8e4f59ec9 Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Tue, 23 Apr 2013 15:58:34 +0200 Subject: [PATCH] Don't change usage counter on DELETE to non-existing resource --- lib/remote_storage/riak.rb | 6 ++++-- spec/riak_spec.rb | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/remote_storage/riak.rb b/lib/remote_storage/riak.rb index 9fa0ba3..128aa8d 100644 --- a/lib/remote_storage/riak.rb +++ b/lib/remote_storage/riak.rb @@ -122,8 +122,10 @@ module RemoteStorage riak_response = data_bucket.delete("#{user}:#{directory}:#{key}") - log_object_count(user, directory, -1) - log_object_size(user, directory, 0, existing_object_size) + if riak_response[:code] != 404 + log_object_count(user, directory, -1) + log_object_size(user, directory, 0, existing_object_size) + end timestamp = (Time.now.to_f * 1000).to_i delete_or_update_directory_objects(user, directory, timestamp) diff --git a/spec/riak_spec.rb b/spec/riak_spec.rb index 337904e..327a89f 100644 --- a/spec/riak_spec.rb +++ b/spec/riak_spec.rb @@ -374,6 +374,20 @@ describe "App with Riak backend" do info_bucket.get("usage:jimmy:documents").data["count"].must_equal 999 end + context "non-existing object" do + before do + set_usage_info "jimmy", "documents", "size", 10 + set_usage_info "jimmy", "documents", "count", 10 + delete "/jimmy/documents/foozius" + end + + it "doesn't change the category usage info" do + usage = info_bucket.get("usage:jimmy:documents").data + usage["size"].must_equal 10 + usage["count"].must_equal 10 + end + end + context "binary data" do before do header "Content-Type", "image/jpeg; charset=binary"