diff options
| author | Stefan Boberg <[email protected]> | 2021-08-17 22:14:28 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2021-08-17 22:14:28 +0200 |
| commit | 5bbca1c180bd40544ba0fee3d699202e81aa9da1 (patch) | |
| tree | e5bc14180fe1e2e1c637032b371bc8cc30fc5afc /zenserver/cache/structuredcache.cpp | |
| parent | Implemented support for dropping z$ buckets while online (diff) | |
| download | zen-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.cpp | 12 |
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('/'); |