diff options
| author | Per Larsson <[email protected]> | 2023-02-16 13:58:49 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-02-16 13:58:49 +0100 |
| commit | f30de2640d99451a85ff2820fdd0b0b5816d2e61 (patch) | |
| tree | 70bacc76c1eb8738e72387dfdf131230744e7ac8 /zenserver/zenserver.cpp | |
| parent | changelog (diff) | |
| download | zen-f30de2640d99451a85ff2820fdd0b0b5816d2e61.tar.xz zen-f30de2640d99451a85ff2820fdd0b0b5816d2e61.zip | |
Experimental ObjectStore/CDN like endpoint
Diffstat (limited to 'zenserver/zenserver.cpp')
| -rw-r--r-- | zenserver/zenserver.cpp | 21 |
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; |