aboutsummaryrefslogtreecommitdiff
path: root/zenserver/zenserver.cpp
diff options
context:
space:
mode:
authorPer Larsson <[email protected]>2023-02-16 13:58:49 +0100
committerGitHub <[email protected]>2023-02-16 13:58:49 +0100
commitf30de2640d99451a85ff2820fdd0b0b5816d2e61 (patch)
tree70bacc76c1eb8738e72387dfdf131230744e7ac8 /zenserver/zenserver.cpp
parentchangelog (diff)
downloadzen-f30de2640d99451a85ff2820fdd0b0b5816d2e61.tar.xz
zen-f30de2640d99451a85ff2820fdd0b0b5816d2e61.zip
Experimental ObjectStore/CDN like endpoint
Diffstat (limited to 'zenserver/zenserver.cpp')
-rw-r--r--zenserver/zenserver.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/zenserver/zenserver.cpp b/zenserver/zenserver.cpp
index 355df4523..6a9e19e50 100644
--- a/zenserver/zenserver.cpp
+++ b/zenserver/zenserver.cpp
@@ -108,6 +108,7 @@ ZEN_THIRD_PARTY_INCLUDES_END
#include "frontend/frontend.h"
#include "monitoring/httpstats.h"
#include "monitoring/httpstatus.h"
+#include "objectstore/objectstore.h"
#include "projectstore/projectstore.h"
#include "testing/httptest.h"
#include "upstream/upstream.h"
@@ -317,6 +318,23 @@ public:
m_Http->RegisterService(*m_FrontendService);
}
+ if (ServerOptions.ObjectStoreEnabled)
+ {
+ ObjectStoreConfig ObjCfg;
+ ObjCfg.RootDirectory = m_DataRoot / "obj";
+ ObjCfg.ServerPort = static_cast<uint16_t>(EffectiveBasePort);
+
+ for (const auto& Bucket : ServerOptions.ObjectStoreConfig.Buckets)
+ {
+ ObjectStoreConfig::BucketConfig NewBucket{.Name = Bucket.Name};
+ NewBucket.Directory = Bucket.Directory.empty() ? (ObjCfg.RootDirectory / Bucket.Name) : Bucket.Directory;
+ ObjCfg.Buckets.push_back(std::move(NewBucket));
+ }
+
+ m_ObjStoreService = std::make_unique<HttpObjectStoreService>(std::move(ObjCfg));
+ m_Http->RegisterService(*m_ObjStoreService);
+ }
+
ZEN_INFO("initializing GC, enabled '{}', interval {}s", ServerOptions.GcConfig.Enabled, ServerOptions.GcConfig.IntervalSeconds);
zen::GcSchedulerConfig GcConfig{.RootDirectory = m_DataRoot / "gc",
.MonitorInterval = std::chrono::seconds(ServerOptions.GcConfig.MonitorIntervalSeconds),
@@ -567,7 +585,8 @@ private:
#if ZEN_WITH_COMPUTE_SERVICES
std::unique_ptr<zen::HttpFunctionService> m_HttpFunctionService;
#endif // ZEN_WITH_COMPUTE_SERVICES
- std::unique_ptr<zen::HttpFrontendService> m_FrontendService;
+ std::unique_ptr<zen::HttpFrontendService> m_FrontendService;
+ std::unique_ptr<zen::HttpObjectStoreService> m_ObjStoreService;
bool m_DebugOptionForcedCrash = false;
bool m_UseSentry = false;