aboutsummaryrefslogtreecommitdiff
path: root/zenserver/cache/structuredcache.cpp
diff options
context:
space:
mode:
authorMartin Ridgers <[email protected]>2021-09-15 09:22:32 +0200
committerMartin Ridgers <[email protected]>2021-09-15 09:23:33 +0200
commit8f5e773529858223beeecf5d1b69c23991df644e (patch)
tree2c360c67e028f5ecd7368212b0adf8b23578ff9d /zenserver/cache/structuredcache.cpp
parentUse zen::Sleep() in timer.cpp's tests (diff)
parentUpdated function service to new package management API (diff)
downloadzen-8f5e773529858223beeecf5d1b69c23991df644e.tar.xz
zen-8f5e773529858223beeecf5d1b69c23991df644e.zip
Merge main
Diffstat (limited to 'zenserver/cache/structuredcache.cpp')
-rw-r--r--zenserver/cache/structuredcache.cpp63
1 files changed, 23 insertions, 40 deletions
diff --git a/zenserver/cache/structuredcache.cpp b/zenserver/cache/structuredcache.cpp
index 0e235a9be..b2f8d191c 100644
--- a/zenserver/cache/structuredcache.cpp
+++ b/zenserver/cache/structuredcache.cpp
@@ -4,8 +4,8 @@
#include <zencore/compactbinaryvalidation.h>
#include <zencore/compress.h>
#include <zencore/fmtutils.h>
-#include <zencore/httpserver.h>
#include <zencore/timer.h>
+#include <zenhttp/httpserver.h>
#include "structuredcache.h"
#include "structuredcachestore.h"
@@ -25,27 +25,6 @@ namespace zen {
using namespace std::literals;
-zen::HttpContentType
-MapToHttpContentType(zen::ZenContentType Type)
-{
- switch (Type)
- {
- default:
- case zen::ZenContentType::kBinary:
- return zen::HttpContentType::kBinary;
- case zen::ZenContentType::kCbObject:
- return zen::HttpContentType::kCbObject;
- case zen::ZenContentType::kCbPackage:
- return zen::HttpContentType::kCbPackage;
- case zen::ZenContentType::kText:
- return zen::HttpContentType::kText;
- case zen::ZenContentType::kJSON:
- return zen::HttpContentType::kJSON;
- case zen::ZenContentType::kYAML:
- return zen::HttpContentType::kYAML;
- }
-};
-
//////////////////////////////////////////////////////////////////////////
HttpStructuredCacheService::HttpStructuredCacheService(::ZenCacheStore& InCacheStore,
@@ -93,7 +72,7 @@ HttpStructuredCacheService::HandleRequest(zen::HttpServerRequest& Request)
return HandleCacheBucketRequest(Request, Key);
}
- return Request.WriteResponse(zen::HttpResponse::BadRequest); // invalid URL
+ return Request.WriteResponse(zen::HttpResponseCode::BadRequest); // invalid URL
}
if (Ref.PayloadId == IoHash::Zero)
@@ -128,11 +107,11 @@ HttpStructuredCacheService::HandleCacheBucketRequest(zen::HttpServerRequest& Req
if (m_CacheStore.DropBucket(Bucket))
{
- return Request.WriteResponse(zen::HttpResponse::OK);
+ return Request.WriteResponse(zen::HttpResponseCode::OK);
}
else
{
- return Request.WriteResponse(zen::HttpResponse::NotFound);
+ return Request.WriteResponse(zen::HttpResponseCode::NotFound);
}
break;
}
@@ -209,7 +188,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req
{
m_Log.debug("MISS - '{}/{}'", Ref.BucketSegment, Ref.HashKey);
- return Request.WriteResponse(zen::HttpResponse::NotFound);
+ return Request.WriteResponse(zen::HttpResponseCode::NotFound);
}
if (Verb == kHead)
@@ -224,7 +203,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req
Value.Value.GetContentType(),
InUpstreamCache ? "upstream" : "local");
- return Request.WriteResponse(zen::HttpResponse::OK, MapToHttpContentType(Value.Value.GetContentType()), Value.Value);
+ return Request.WriteResponse(zen::HttpResponseCode::OK, Value.Value.GetContentType(), Value.Value);
}
break;
@@ -234,7 +213,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req
if (!Body || Body.Size() == 0)
{
- return Request.WriteResponse(zen::HttpResponse::BadRequest);
+ return Request.WriteResponse(zen::HttpResponseCode::BadRequest);
}
const HttpContentType ContentType = Request.RequestContentType();
@@ -253,7 +232,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req
break;
default:
- return Request.WriteResponse(zen::HttpResponse::BadRequest);
+ return Request.WriteResponse(zen::HttpResponseCode::BadRequest);
}
if (!IsCompactBinary)
@@ -272,7 +251,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req
{.Type = ZenContentType::kBinary, .CacheKey = {Ref.BucketSegment, Ref.HashKey}});
}
- return Request.WriteResponse(zen::HttpResponse::Created);
+ return Request.WriteResponse(zen::HttpResponseCode::Created);
}
// Validate payload before accessing it
@@ -284,7 +263,9 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req
m_Log.warn("Payload for key '{}/{}' ({} bytes) failed validation", Ref.BucketSegment, Ref.HashKey, Body.Size());
// TODO: add details in response, kText || kCbObject?
- return Request.WriteResponse(HttpResponse::BadRequest, HttpContentType::kText, "Compact binary validation failed"sv);
+ return Request.WriteResponse(HttpResponseCode::BadRequest,
+ HttpContentType::kText,
+ "Compact binary validation failed"sv);
}
// Extract referenced payload hashes
@@ -336,7 +317,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req
.PayloadIds = std::move(References)});
}
- return Request.WriteResponse(zen::HttpResponse::Created);
+ return Request.WriteResponse(zen::HttpResponseCode::Created);
}
else
{
@@ -351,7 +332,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req
Response.EndArray();
// Return Created | BadRequest?
- return Request.WriteResponse(zen::HttpResponse::Created, Response.Save());
+ return Request.WriteResponse(zen::HttpResponseCode::Created, Response.Save());
}
}
break;
@@ -407,7 +388,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re
if (!Payload)
{
m_Log.debug("MISS - '{}/{}/{}'", Ref.BucketSegment, Ref.HashKey, Ref.PayloadId);
- return Request.WriteResponse(zen::HttpResponse::NotFound);
+ return Request.WriteResponse(zen::HttpResponseCode::NotFound);
}
m_Log.debug("HIT - '{}/{}/{}' ({} bytes, {}) ({})",
@@ -423,7 +404,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re
Request.SetSuppressResponseBody();
}
- return Request.WriteResponse(zen::HttpResponse::OK, zen::HttpContentType::kBinary, Payload);
+ return Request.WriteResponse(zen::HttpResponseCode::OK, zen::HttpContentType::kBinary, Payload);
}
break;
@@ -433,7 +414,9 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re
{
if (Body.Size() == 0)
{
- return Request.WriteResponse(zen::HttpResponse::BadRequest, HttpContentType::kText, "Empty payload not permitted");
+ return Request.WriteResponse(zen::HttpResponseCode::BadRequest,
+ HttpContentType::kText,
+ "Empty payload not permitted");
}
zen::IoHash ChunkHash = zen::IoHash::HashBuffer(Body);
@@ -443,7 +426,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re
if (!Compressed)
{
// All attachment payloads need to be in compressed buffer format
- return Request.WriteResponse(zen::HttpResponse::BadRequest,
+ return Request.WriteResponse(zen::HttpResponseCode::BadRequest,
HttpContentType::kText,
"Attachments must be compressed");
}
@@ -452,7 +435,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re
if (IoHash::FromBLAKE3(Compressed.GetRawHash()) != Ref.PayloadId)
{
// the URL specified content id and content hashes don't match!
- return Request.WriteResponse(HttpResponse::BadRequest);
+ return Request.WriteResponse(HttpResponseCode::BadRequest);
}
zen::CasStore::InsertResult Result = m_CasStore.InsertChunk(Body, ChunkHash);
@@ -469,11 +452,11 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re
if (Result.New)
{
- return Request.WriteResponse(zen::HttpResponse::Created);
+ return Request.WriteResponse(zen::HttpResponseCode::Created);
}
else
{
- return Request.WriteResponse(zen::HttpResponse::OK);
+ return Request.WriteResponse(zen::HttpResponseCode::OK);
}
}
}