aboutsummaryrefslogtreecommitdiff
path: root/zenserver/upstream/jupiter.cpp
diff options
context:
space:
mode:
authorMartin Ridgers <[email protected]>2021-11-17 13:51:15 +0100
committerMartin Ridgers <[email protected]>2021-11-17 13:51:15 +0100
commitb4c04c87a8d5bf9d61b8ca5dbd2f4bb3e9fe20b1 (patch)
tree8cf0e4b589d2d0b16cfebb12f9cba8dba19fafee /zenserver/upstream/jupiter.cpp
parentSubmitted some debug printing in error (diff)
parentCheck both success and error code when initializing Jupiter upstream. (diff)
downloadzen-b4c04c87a8d5bf9d61b8ca5dbd2f4bb3e9fe20b1.tar.xz
zen-b4c04c87a8d5bf9d61b8ca5dbd2f4bb3e9fe20b1.zip
Merged main
Diffstat (limited to 'zenserver/upstream/jupiter.cpp')
-rw-r--r--zenserver/upstream/jupiter.cpp47
1 files changed, 28 insertions, 19 deletions
diff --git a/zenserver/upstream/jupiter.cpp b/zenserver/upstream/jupiter.cpp
index af416c182..42cb9ede4 100644
--- a/zenserver/upstream/jupiter.cpp
+++ b/zenserver/upstream/jupiter.cpp
@@ -45,13 +45,20 @@ namespace detail {
void InvalidateAccessToken() { AccessToken = {}; }
- void Reset()
+ void Reset(std::chrono::milliseconds ConnectTimeout, std::chrono::milliseconds Timeout)
{
Session.SetBody({});
Session.SetHeader({});
+ Session.SetConnectTimeout(ConnectTimeout);
+ Session.SetTimeout(Timeout);
AccessToken = GetAccessToken();
}
+ cpr::Session& GetSession() { return Session; }
+
+ private:
+ friend class CloudCacheClient;
+
CloudCacheClient& OwnerClient;
CloudCacheAccessToken AccessToken;
cpr::Session Session;
@@ -88,7 +95,7 @@ CloudCacheSession::GetDerivedData(std::string_view BucketId, std::string_view Ke
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/c/ddc/" << m_CacheClient->DdcNamespace() << "/" << BucketId << "/" << Key;
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Accept", "application/octet-stream"}});
@@ -132,7 +139,7 @@ CloudCacheSession::GetRef(std::string_view BucketId, const IoHash& Key, ZenConte
Uri << m_CacheClient->ServiceUrl() << "/api/v1/refs/" << m_CacheClient->BlobStoreNamespace() << "/" << BucketId << "/"
<< Key.ToHexString();
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Accept", ContentType}});
@@ -168,7 +175,7 @@ CloudCacheSession::GetBlob(const IoHash& Key)
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/blobs/" << m_CacheClient->BlobStoreNamespace() << "/" << Key.ToHexString();
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Accept", "application/octet-stream"}});
@@ -205,7 +212,7 @@ CloudCacheSession::GetCompressedBlob(const IoHash& Key)
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/compressed-blobs/" << m_CacheClient->BlobStoreNamespace() << "/" << Key.ToHexString();
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Accept", "application/x-ue-comp"}});
@@ -241,7 +248,7 @@ CloudCacheSession::GetObject(const IoHash& Key)
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/objects/" << m_CacheClient->BlobStoreNamespace() << "/" << Key.ToHexString();
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Accept", "application/x-ue-cb"}});
@@ -279,7 +286,7 @@ CloudCacheSession::PutDerivedData(std::string_view BucketId, std::string_view Ke
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/c/ddc/" << m_CacheClient->DdcNamespace() << "/" << BucketId << "/" << Key;
- auto& Session = m_SessionState->Session;
+ auto& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value},
@@ -330,7 +337,7 @@ CloudCacheSession::PutRef(std::string_view BucketId, const IoHash& Key, IoBuffer
Uri << m_CacheClient->ServiceUrl() << "/api/v1/refs/" << m_CacheClient->BlobStoreNamespace() << "/" << BucketId << "/"
<< Key.ToHexString();
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(
@@ -393,7 +400,7 @@ CloudCacheSession::FinalizeRef(std::string_view BucketId, const IoHash& Key, con
Uri << m_CacheClient->ServiceUrl() << "/api/v1/refs/" << m_CacheClient->BlobStoreNamespace() << "/" << BucketId << "/"
<< Key.ToHexString() << "/finalize/" << RefHash.ToHexString();
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value},
@@ -453,7 +460,7 @@ CloudCacheSession::PutBlob(const IoHash& Key, IoBuffer Blob)
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/blobs/" << m_CacheClient->BlobStoreNamespace() << "/" << Key.ToHexString();
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Content-Type", "application/octet-stream"}});
@@ -488,7 +495,7 @@ CloudCacheSession::PutCompressedBlob(const IoHash& Key, IoBuffer Blob)
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/compressed-blobs/" << m_CacheClient->BlobStoreNamespace() << "/" << Key.ToHexString();
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Content-Type", "application/x-ue-comp"}});
@@ -523,7 +530,7 @@ CloudCacheSession::PutObject(const IoHash& Key, IoBuffer Object)
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/objects/" << m_CacheClient->BlobStoreNamespace() << "/" << Key.ToHexString();
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Content-Type", "application/x-ue-cb"}});
@@ -559,7 +566,7 @@ CloudCacheSession::RefExists(std::string_view BucketId, const IoHash& Key)
Uri << m_CacheClient->ServiceUrl() << "/api/v1/refs/" << m_CacheClient->BlobStoreNamespace() << "/" << BucketId << "/"
<< Key.ToHexString();
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}});
@@ -628,7 +635,7 @@ CloudCacheSession::PostComputeTasks(std::string_view ChannelId, IoBuffer TasksDa
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/compute/" << ChannelId;
- auto& Session = m_SessionState->Session;
+ auto& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Content-Type", "application/x-ue-cb"}});
@@ -661,7 +668,7 @@ CloudCacheSession::GetComputeUpdates(std::string_view ChannelId, const uint32_t
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/compute/" << ChannelId << "/updates?wait=" << WaitSeconds;
- auto& Session = m_SessionState->Session;
+ auto& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Accept", "application/x-ue-cb"}});
@@ -696,7 +703,7 @@ CloudCacheSession::GetObjectTree(const IoHash& Key)
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/objects/" << m_CacheClient->BlobStoreNamespace() << "/" << Key.ToHexString() << "/tree";
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Accept", "application/octet-stream"}});
@@ -760,7 +767,7 @@ CloudCacheSession::CacheTypeExists(std::string_view TypeId, const IoHash& Key)
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/" << TypeId << "/" << m_CacheClient->BlobStoreNamespace() << "/" << Key.ToHexString();
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}});
@@ -798,7 +805,7 @@ CloudCacheSession::CacheTypeExists(std::string_view TypeId, const std::set<IoHas
ExtendableStringBuilder<256> Uri;
Uri << m_CacheClient->ServiceUrl() << "/api/v1/" << TypeId << "/" << m_CacheClient->BlobStoreNamespace() << "/exists?" << Query;
- cpr::Session& Session = m_SessionState->Session;
+ cpr::Session& Session = m_SessionState->GetSession();
Session.SetOption(cpr::Url{Uri.c_str()});
Session.SetOption(cpr::Header{{"Authorization", AccessToken.Value}, {"Accept", "application/x-ue-cb"}});
@@ -852,6 +859,8 @@ CloudCacheClient::CloudCacheClient(const CloudCacheClientOptions& Options)
, m_OAuthClientId(Options.OAuthClientId)
, m_OAuthSecret(Options.OAuthSecret)
, m_AccessToken(Options.AccessToken)
+, m_ConnectTimeout(Options.ConnectTimeout)
+, m_Timeout(Options.Timeout)
{
if (!Options.AccessToken.empty())
{
@@ -954,7 +963,7 @@ CloudCacheClient::AllocSessionState()
State = new detail::CloudCacheSessionState(*this);
}
- State->Reset();
+ State->Reset(m_ConnectTimeout, m_Timeout);
return State;
}