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 | |
| 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')
| -rw-r--r-- | zenserver/cache/structuredcache.cpp | 12 | ||||
| -rw-r--r-- | zenserver/cache/structuredcache.h | 2 |
2 files changed, 10 insertions, 4 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('/'); diff --git a/zenserver/cache/structuredcache.h b/zenserver/cache/structuredcache.h index e9796999b..73b0825dc 100644 --- a/zenserver/cache/structuredcache.h +++ b/zenserver/cache/structuredcache.h @@ -64,7 +64,7 @@ private: IoHash PayloadId; }; - [[nodiscard]] bool ValidateUri(zen::HttpServerRequest& Request, CacheRef& OutRef); + [[nodiscard]] bool ValidateKeyUri(zen::HttpServerRequest& Request, CacheRef& OutRef); void HandleCacheRecordRequest(zen::HttpServerRequest& Request, CacheRef& Ref); void HandleCachePayloadRequest(zen::HttpServerRequest& Request, CacheRef& Ref); void HandleCacheBucketRequest(zen::HttpServerRequest& Request, std::string_view Bucket); |