blob: c4b9688e39b26e20c303ded9aa4d99c680b9d395 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#pragma once
#include "settings.h"
#include <library/cpp/tvmauth/client/misc/utils.h>
#include <library/cpp/tvmauth/client/logger.h>
#include <library/cpp/http/simple/http_client.h>
namespace NTvmAuth::NTvmTool {
class TMetaInfo {
public:
using TDstAliases = THashMap<TClientSettings::TAlias, TTvmId>;
struct TConfig {
TTvmId SelfTvmId = 0;
EBlackboxEnv BbEnv = EBlackboxEnv::Prod;
TDstAliases DstAliases;
bool AreTicketsRequired() const {
return !DstAliases.empty();
}
TString ToString() const;
bool operator==(const TConfig& c) const {
return SelfTvmId == c.SelfTvmId &&
BbEnv == c.BbEnv &&
DstAliases == c.DstAliases;
}
};
using TConfigPtr = std::shared_ptr<TConfig>;
public:
TMetaInfo(TLoggerPtr logger);
TConfigPtr Init(TKeepAliveHttpClient& client,
const TClientSettings& settings);
static TString GetRequestForTickets(const TMetaInfo::TConfig& config);
const TKeepAliveHttpClient::THeaders& GetAuthHeader() const {
return AuthHeader_;
}
TConfigPtr GetConfig() const {
return Config_.Get();
}
bool TryUpdateConfig(TKeepAliveHttpClient& client);
protected:
void TryPing(TKeepAliveHttpClient& client);
TString Fetch(TKeepAliveHttpClient& client) const;
static TConfigPtr ParseMetaString(const TString& meta, const TString& self);
void ApplySettings(const TClientSettings& settings);
static EBlackboxEnv BbEnvFromString(const TString& env, const TString& meta);
protected:
NUtils::TProtectedValue<TConfigPtr> Config_;
TKeepAliveHttpClient::THeaders AuthHeader_;
TLoggerPtr Logger_;
TString SelfAlias_;
};
}
|