Skip to content
Open
Show file tree
Hide file tree
Changes from 47 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
454fc11
cli tune for explicit no database
Enjection Dec 17, 2024
3d1db48
WIP
Enjection Jan 15, 2025
4022f4b
distinguish ydb-cli admin commands from common one
Enjection Jan 10, 2025
d127585
tmp
Enjection Jan 15, 2025
e76eec2
cleanup
Enjection Jan 15, 2025
fc1bd99
better
Enjection Jan 16, 2025
295f580
better
Enjection Jan 16, 2025
3e1a5f7
better
Enjection Jan 16, 2025
81f07be
WIP
Enjection Jan 29, 2025
8b42b6a
WIP
Enjection Jan 29, 2025
1655b79
WIP
Enjection Jan 29, 2025
940a873
WIP
Enjection Jan 29, 2025
396c8b8
WIP
Enjection Jan 30, 2025
dcd2644
WIP
Enjection Jan 30, 2025
9afe5d9
WIP
Enjection Jan 30, 2025
d330e71
WIP
Enjection Jan 30, 2025
ab86064
WIP
Enjection Jan 30, 2025
538b67d
WIP
Enjection Jan 30, 2025
5bd5df7
WIP
Enjection Jan 30, 2025
b9a70fe
WIP
Enjection Jan 30, 2025
5e95ae4
WIP
Enjection Feb 2, 2025
b7c07ab
WIP
Enjection Feb 2, 2025
a3c6542
WIP
Enjection Feb 2, 2025
a20f2da
WIP
Enjection Feb 2, 2025
e0753b0
WIP
Enjection Feb 2, 2025
e3e5d34
WIP
Enjection Feb 2, 2025
390a60d
WIP
Enjection Feb 2, 2025
2592a3b
WIP
Enjection Feb 2, 2025
ffe8668
WIP
Enjection Feb 2, 2025
651e918
WIP
Enjection Feb 2, 2025
17ba81b
WIP
Enjection Feb 2, 2025
b70c9b2
WIP
Enjection Feb 2, 2025
c326bff
WIP
Enjection Feb 2, 2025
ec81445
WIP
Enjection Feb 2, 2025
82452e6
WIP
Enjection Feb 2, 2025
9cec723
WIP
Enjection Feb 2, 2025
dd90e64
WIP
Enjection Feb 2, 2025
59d0c34
WIP
Enjection Feb 2, 2025
b88f924
WIP
Enjection Feb 2, 2025
281dcfe
WIP
Enjection Feb 2, 2025
5dbd044
WIP
Enjection Feb 2, 2025
87e25e4
WIP
Enjection Feb 2, 2025
4d3ce73
WIP
Enjection Feb 2, 2025
e790299
WIP
Enjection Feb 2, 2025
962634a
WIP
Enjection Feb 2, 2025
dafd61c
WIP
Enjection Feb 2, 2025
a84c1e9
WIP
Enjection Feb 2, 2025
4b2c081
WIP
Enjection Feb 2, 2025
f845ad9
WIP
Enjection Feb 3, 2025
97d32da
WIP
Enjection Feb 3, 2025
71bcb2a
WIP
Enjection Feb 3, 2025
0c3a3c6
WIP
Enjection Feb 3, 2025
4016ea1
WIP
Enjection Feb 3, 2025
ea9282e
WIP
Enjection Feb 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 24 additions & 5 deletions ydb/core/cms/console/configs_dispatcher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,7 @@ class TConfigsDispatcher : public TActorBootstrapped<TConfigsDispatcher> {
TString YamlConfig;
TMap<ui64, TString> VolatileYamlConfigs;
TMap<ui64, size_t> VolatileYamlConfigHashes;
std::optional<TString> DatabaseYamlConfig;
TString ResolvedYamlConfig;
TString ResolvedJsonConfig;
NKikimrConfig::TAppConfig YamlProtoConfig;
Expand Down Expand Up @@ -378,6 +379,7 @@ NKikimrConfig::TAppConfig TConfigsDispatcher::ParseYamlProtoConfig()
VolatileYamlConfigs,
Labels,
newYamlProtoConfig,
DatabaseYamlConfig,
&ResolvedYamlConfig,
&ResolvedJsonConfig);
} catch (const yexception& ex) {
Expand Down Expand Up @@ -767,25 +769,34 @@ class TConfigurationResult
{
public:
// TODO make ref
const NKikimrConfig::TAppConfig& GetConfig() const {
const NKikimrConfig::TAppConfig& GetConfig() const override {
return Config;
}

bool HasYamlConfig() const {
bool HasYamlConfig() const override {
return !YamlConfig.empty();
}

const TString& GetYamlConfig() const {
const TString& GetYamlConfig() const override {
return YamlConfig;
}

TMap<ui64, TString> GetVolatileYamlConfigs() const {
TMap<ui64, TString> GetVolatileYamlConfigs() const override {
return VolatileYamlConfigs;
}

bool HasDatabaseYamlConfig() const override {
return !DatabaseYamlConfig.empty();
}

const TString& GetDatabaseYamlConfig() const override {
return DatabaseYamlConfig;
}

NKikimrConfig::TAppConfig Config;
TString YamlConfig;
TMap<ui64, TString> VolatileYamlConfigs;
TString DatabaseYamlConfig;
};

void TConfigsDispatcher::UpdateCandidateStartupConfig(TEvConsole::TEvConfigSubscriptionNotification::TPtr &ev)
Expand All @@ -806,6 +817,9 @@ try {
dcClient->SavedResult = configs;
configs->Config = rec.GetRawConsoleConfig();
configs->YamlConfig = rec.GetYamlConfig();
if (rec.HasDatabaseConfig()) {
configs->DatabaseYamlConfig = rec.GetDatabaseConfig();
}
// TODO volatile
RecordedInitialConfiguratorDeps->DynConfigClient = std::move(dcClient);
auto deps = RecordedInitialConfiguratorDeps->GetDeps();
Expand Down Expand Up @@ -870,10 +884,15 @@ void TConfigsDispatcher::Handle(TEvConsole::TEvConfigSubscriptionNotification::T

CurrentConfig = rec.GetConfig();

const auto& newYamlConfig = rec.GetYamlConfig();
auto newYamlConfig = rec.GetYamlConfig();

bool isYamlChanged = newYamlConfig != YamlConfig;

if (rec.HasDatabaseConfig() && rec.GetDatabaseConfig() != DatabaseYamlConfig.value_or("")) {
DatabaseYamlConfig = rec.GetDatabaseConfig();
isYamlChanged = true;
}

if (rec.VolatileConfigsSize() != VolatileYamlConfigs.size()) {
isYamlChanged = true;
}
Expand Down
9 changes: 9 additions & 0 deletions ydb/core/cms/console/console.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,15 @@ void TConsole::Handle(TEvConsole::TEvSetConfigRequest::TPtr &ev, const TActorCon
TxProcessor->ProcessTx(CreateTxSetConfig(ev), ctx);
}

bool TConsole::HasTenant(const TString& path) const
{
if (!TenantsManager) {
return false;
}

return TenantsManager->HasTenant(path);
}

IActor *CreateConsole(const TActorId &tablet, TTabletStorageInfo *info)
{
return new TConsole(tablet, info);
Expand Down
29 changes: 29 additions & 0 deletions ydb/core/cms/console/console.h
Original file line number Diff line number Diff line change
Expand Up @@ -375,6 +375,35 @@ namespace TEvConsole {
}
}
}

TEvConfigSubscriptionNotification(
ui64 generation,
const NKikimrConfig::TAppConfig &config,
const THashSet<ui32> &affectedKinds,
const TString &yamlConfig,
const TMap<ui64, TString> &volatileYamlConfigs,
const NKikimrConfig::TAppConfig &rawConfig,
const TMaybe<TString> dbc)
{
Record.SetGeneration(generation);
Record.MutableConfig()->CopyFrom(config);
Record.MutableRawConsoleConfig()->CopyFrom(rawConfig);
for (ui32 kind : affectedKinds)
Record.AddAffectedKinds(kind);

if (!yamlConfig.empty()) {
Record.SetYamlConfig(yamlConfig);
for (auto &[id, config] : volatileYamlConfigs) {
auto *volatileConfig = Record.AddVolatileConfigs();
volatileConfig->SetId(id);
volatileConfig->SetConfig(config);
}
}
if (dbc) {
Record.SetDatabaseConfig(*dbc);
}
}

};

/**
Expand Down
10 changes: 10 additions & 0 deletions ydb/core/cms/console/console__get_yaml_config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,22 @@ class TConfigsManager::TTxGetYamlConfig : public TTransactionBase<TConfigsManage
TEvConsole::TEvGetAllConfigsRequest::TPtr &ev)
: TBase(self)
, Request(std::move(ev))
, Database(Request->Get()->Record.HasDatabase() ? TMaybe<TString>{Request->Get()->Record.GetDatabase()} : TMaybe<TString>{})
{
}

bool Execute(TTransactionContext &, const TActorContext &) override
{
Response = MakeHolder<TEvConsole::TEvGetAllConfigsResponse>();

if (Database) {
if (Self->YamlConfigPerDatabase.contains(*Database)) {
Response->Record.MutableResponse()->set_config(Self->YamlConfigPerDatabase[*Database].Config);
}

return true;
}

Response->Record.MutableResponse()->mutable_identity()->set_cluster(Self->ClusterName);
Response->Record.MutableResponse()->mutable_identity()->set_version(Self->YamlVersion);
Response->Record.MutableResponse()->set_config(Self->YamlConfig);
Expand All @@ -44,6 +53,7 @@ class TConfigsManager::TTxGetYamlConfig : public TTransactionBase<TConfigsManage
private:
TEvConsole::TEvGetAllConfigsRequest::TPtr Request;
THolder<TEvConsole::TEvGetAllConfigsResponse> Response;
TMaybe<TString> Database;
};

ITransaction *TConfigsManager::CreateTxGetYamlConfig(TEvConsole::TEvGetAllConfigsRequest::TPtr &ev)
Expand Down
Loading