diff options
| author | Stefan Boberg <[email protected]> | 2023-10-24 22:15:22 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-10-24 22:15:22 +0200 |
| commit | 8e6ccf2fa22354e541fe9c308011dacd4dfd8f38 (patch) | |
| tree | 802faf452475a17e7f57fd109c5dbb6496392b2c /src/zenserver | |
| parent | merge disk and memory layers (#493) (diff) | |
| download | zen-8e6ccf2fa22354e541fe9c308011dacd4dfd8f38.tar.xz zen-8e6ccf2fa22354e541fe9c308011dacd4dfd8f38.zip | |
removed HttpCidStore (#497)
Diffstat (limited to 'src/zenserver')
| -rw-r--r-- | src/zenserver/httpcidstore.cpp | 124 | ||||
| -rw-r--r-- | src/zenserver/httpcidstore.h | 35 | ||||
| -rw-r--r-- | src/zenserver/zenserver.cpp | 4 | ||||
| -rw-r--r-- | src/zenserver/zenserver.h | 2 |
4 files changed, 0 insertions, 165 deletions
diff --git a/src/zenserver/httpcidstore.cpp b/src/zenserver/httpcidstore.cpp deleted file mode 100644 index 233a45edb..000000000 --- a/src/zenserver/httpcidstore.cpp +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#include "httpcidstore.h" - -#include <zencore/compress.h> -#include <zencore/fmtutils.h> -#include <zencore/logging.h> -#include <zenstore/cidstore.h> - -#include <gsl/gsl-lite.hpp> - -namespace zen { - -HttpCidService::HttpCidService(CidStore& Store) : m_CidStore(Store) -{ - m_Router.AddPattern("cid", "([0-9A-Fa-f]{40})"); - - m_Router.RegisterRoute( - "{cid}", - [this](HttpRouterRequest& Req) { - IoHash Hash = IoHash::FromHexString(Req.GetCapture(1)); - ZEN_DEBUG("CID request for {}", Hash); - - HttpServerRequest& ServerRequest = Req.ServerRequest(); - - switch (ServerRequest.RequestVerb()) - { - case HttpVerb::kGet: - case HttpVerb::kHead: - { - if (IoBuffer Value = m_CidStore.FindChunkByCid(Hash)) - { - return ServerRequest.WriteResponse(HttpResponseCode::OK, HttpContentType::kBinary, Value); - } - - return ServerRequest.WriteResponse(HttpResponseCode::NotFound); - } - break; - - case HttpVerb::kPut: - { - IoBuffer Payload = ServerRequest.ReadPayload(); - IoHash RawHash; - uint64_t RawSize; - if (!CompressedBuffer::ValidateCompressedHeader(Payload, RawHash, RawSize)) - { - return ServerRequest.WriteResponse(HttpResponseCode::UnsupportedMediaType); - } - - // URI hash must match content hash - if (RawHash != Hash) - { - return ServerRequest.WriteResponse(HttpResponseCode::BadRequest); - } - - m_CidStore.AddChunk(Payload, RawHash); - - return ServerRequest.WriteResponse(HttpResponseCode::OK); - } - break; - - default: - break; - } - }, - HttpVerb::kGet | HttpVerb::kPut | HttpVerb::kHead); -} - -const char* -HttpCidService::BaseUri() const -{ - return "/cid/"; -} - -void -HttpCidService::HandleRequest(zen::HttpServerRequest& Request) -{ - if (Request.RelativeUri().empty()) - { - // Root URI request - - switch (Request.RequestVerb()) - { - case HttpVerb::kPut: - case HttpVerb::kPost: - { - IoBuffer Payload = Request.ReadPayload(); - IoHash RawHash; - uint64_t RawSize; - if (!CompressedBuffer::ValidateCompressedHeader(Payload, RawHash, RawSize)) - { - return Request.WriteResponse(HttpResponseCode::UnsupportedMediaType); - } - - ZEN_DEBUG("CID POST request for {} ({} bytes)", RawHash, Payload.Size()); - - auto InsertResult = m_CidStore.AddChunk(Payload, RawHash); - - if (InsertResult.New) - { - return Request.WriteResponse(HttpResponseCode::Created); - } - else - { - return Request.WriteResponse(HttpResponseCode::OK); - } - } - break; - - case HttpVerb::kGet: - case HttpVerb::kHead: - break; - - default: - break; - } - } - else - { - m_Router.HandleRequest(Request); - } -} - -} // namespace zen diff --git a/src/zenserver/httpcidstore.h b/src/zenserver/httpcidstore.h deleted file mode 100644 index 8e7832b35..000000000 --- a/src/zenserver/httpcidstore.h +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#pragma once - -#include <zenhttp/httpserver.h> - -namespace zen { - -/** - * Simple CID store HTTP endpoint - * - * Note that since this does not end up pinning any of the chunks it's only really useful for a small subset of use cases where you know a - * chunk exists in the underlying CID store. Thus it's mainly useful for internal use when communicating between Zen store instances - * - * Using this interface for adding CID chunks makes little sense except for testing purposes as garbage collection may reap anything you add - * before anything ever gets to access it - */ - -class CidStore; - -class HttpCidService : public HttpService -{ -public: - explicit HttpCidService(CidStore& Store); - ~HttpCidService() = default; - - virtual const char* BaseUri() const override; - virtual void HandleRequest(zen::HttpServerRequest& Request) override; - -private: - CidStore& m_CidStore; - HttpRequestRouter m_Router; -}; - -} // namespace zen diff --git a/src/zenserver/zenserver.cpp b/src/zenserver/zenserver.cpp index d53b602c1..e5346abf0 100644 --- a/src/zenserver/zenserver.cpp +++ b/src/zenserver/zenserver.cpp @@ -210,7 +210,6 @@ ZenServer::Initialize(const ZenServerOptions& ServerOptions, ZenServerState::Zen m_CidStore = std::make_unique<CidStore>(m_GcManager); m_CidStore->Initialize(Config); - m_CidService.reset(new HttpCidService{*m_CidStore}); ZEN_INFO("instantiating project service"); @@ -237,8 +236,6 @@ ZenServer::Initialize(const ZenServerOptions& ServerOptions, ZenServerState::Zen m_Http->RegisterService(*m_HttpProjectService); } - m_Http->RegisterService(*m_CidService); - m_FrontendService = std::make_unique<HttpFrontendService>(m_ContentRoot); if (m_FrontendService) @@ -614,7 +611,6 @@ ZenServer::Cleanup() m_HttpProjectService.reset(); m_ProjectStore = {}; - m_CidService.reset(); m_CidStore.reset(); m_AuthService.reset(); m_AuthMgr.reset(); diff --git a/src/zenserver/zenserver.h b/src/zenserver/zenserver.h index cc5b53cef..25e45ccd0 100644 --- a/src/zenserver/zenserver.h +++ b/src/zenserver/zenserver.h @@ -30,7 +30,6 @@ ZEN_THIRD_PARTY_INCLUDES_END #include "cache/structuredcachestore.h" #include "diag/diagsvcs.h" #include "frontend/frontend.h" -#include "httpcidstore.h" #include "objectstore/objectstore.h" #include "projectstore/httpprojectstore.h" #include "projectstore/projectstore.h" @@ -123,7 +122,6 @@ private: #if ZEN_WITH_TESTS HttpTestingService m_TestingService; #endif - std::unique_ptr<HttpCidService> m_CidService; RefPtr<ProjectStore> m_ProjectStore; std::unique_ptr<HttpProjectService> m_HttpProjectService; std::unique_ptr<UpstreamCache> m_UpstreamCache; |