aboutsummaryrefslogtreecommitdiff
path: root/zenserver/cache/structuredcache.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-08-17 22:14:28 +0200
committerStefan Boberg <[email protected]>2021-08-17 22:14:28 +0200
commit5bbca1c180bd40544ba0fee3d699202e81aa9da1 (patch)
treee5bc14180fe1e2e1c637032b371bc8cc30fc5afc /zenserver/cache/structuredcache.cpp
parentImplemented support for dropping z$ buckets while online (diff)
downloadzen-5bbca1c180bd40544ba0fee3d699202e81aa9da1.tar.xz
zen-5bbca1c180bd40544ba0fee3d699202e81aa9da1.zip
added 'zen drop' command to drop cache buckets online
also cleaned up the server side implementation a bit
Diffstat (limited to 'zenserver/cache/structuredcache.cpp')
-rw-r--r--zenserver/cache/structuredcache.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/zenserver/cache/structuredcache.cpp b/zenserver/cache/structuredcache.cpp
index f744ae131..def1adb90 100644
--- a/zenserver/cache/structuredcache.cpp
+++ b/zenserver/cache/structuredcache.cpp
@@ -92,7 +92,7 @@ HttpStructuredCacheService::HandleRequest(zen::HttpServerRequest& Request)
{
CacheRef Ref;
- if (!ValidateUri(Request, /* out */ Ref))
+ if (!ValidateKeyUri(Request, /* out */ Ref))
{
std::string_view Key = Request.RelativeUri();
@@ -129,14 +129,20 @@ HttpStructuredCacheService::HandleCacheBucketRequest(zen::HttpServerRequest& Req
case kHead:
case kGet:
{
+ // Query stats
}
break;
+
case kDelete:
// Drop bucket
if (m_CacheStore.DropBucket(Bucket))
{
- return Request.WriteResponse(zen::HttpResponse::OK); // invalid URL
+ return Request.WriteResponse(zen::HttpResponse::OK);
+ }
+ else
+ {
+ return Request.WriteResponse(zen::HttpResponse::NotFound);
}
break;
}
@@ -496,7 +502,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re
}
bool
-HttpStructuredCacheService::ValidateUri(zen::HttpServerRequest& Request, CacheRef& OutRef)
+HttpStructuredCacheService::ValidateKeyUri(zen::HttpServerRequest& Request, CacheRef& OutRef)
{
std::string_view Key = Request.RelativeUri();
std::string_view::size_type BucketSplitOffset = Key.find_first_of('/');