aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorinnokentii <innokentii@yandex-team.com>2023-09-21 22:08:26 +0300
committerinnokentii <innokentii@yandex-team.com>2023-09-21 22:27:09 +0300
commitf3dc09097cec50924ce6cbd5902110695a7ca522 (patch)
treedd137db577e6fb74c02df4692e719b0ed0f41bfb
parentd6df73488ac0421cf6bad11c1548dedf33776fdc (diff)
downloadydb-f3dc09097cec50924ce6cbd5902110695a7ca522.tar.gz
Converter autosplit configs
add multiconfig support
-rw-r--r--ydb/library/yaml_config/console_dumper.cpp29
1 files changed, 18 insertions, 11 deletions
diff --git a/ydb/library/yaml_config/console_dumper.cpp b/ydb/library/yaml_config/console_dumper.cpp
index 2ca188302bd..56a649f0d3c 100644
--- a/ydb/library/yaml_config/console_dumper.cpp
+++ b/ydb/library/yaml_config/console_dumper.cpp
@@ -591,10 +591,7 @@ NKikimrConsole::TConfigureRequest DumpYamlConfigRequest(const TString &cItem, co
}
}
- auto fillItem = [&](auto& item) {
- item.SetCookie(cookie.c_str());
- item.SetMergeStrategy(mergeStrategy);
-
+ auto prepareActions = [&](auto& result) {
Y_VERIFY(configNode.Type() == NFyaml::ENodeType::Mapping, "Config has to be mapping");
switch (mergeStrategy) {
case NKikimrConsole::TConfigItem::MERGE_OVERWRITE_REPEATED:
@@ -606,20 +603,30 @@ NKikimrConsole::TConfigureRequest DumpYamlConfigRequest(const TString &cItem, co
default:
Y_VERIFY(CheckYamlMarkedForOverwrite(configNode), "Inheritance tags doesn't match choosen merge strategy");
}
- auto config = YamlToProto(configNode, true, false);
- item.MutableConfig()->CopyFrom(config);
+
+ for (auto& item : configNode.Map()) {
+ auto separateConfig = NFyaml::TDocument::Parse("{}");
+ auto key = item.Key().Copy(separateConfig);
+ auto value = item.Value().Copy(separateConfig);
+ separateConfig.Root().Map().Append(key, value);
+ auto config = YamlToProto(separateConfig.Root(), true, false);
+ NKikimrConsole::TConfigItem& configItem = *result.AddActions()->MutableAddConfigItem()->MutableConfigItem();
+ configItem.MutableConfig()->CopyFrom(config);
+ configItem.SetCookie(cookie.c_str());
+ configItem.SetMergeStrategy(mergeStrategy);
+ }
};
// for domain
if (tenants.empty()) {
- NKikimrConsole::TConfigItem& item = *result.AddActions()->MutableAddConfigItem()->MutableConfigItem();
- fillItem(item);
+ prepareActions(result);
}
for (auto& tenant : tenants) {
- NKikimrConsole::TConfigItem& item = *result.AddActions()->MutableAddConfigItem()->MutableConfigItem();
- item.MutableUsageScope()->MutableTenantAndNodeTypeFilter()->SetTenant(tenant);
- fillItem(item);
+ prepareActions(result);
+ for (auto& action : *result.MutableActions()) {
+ action.MutableAddConfigItem()->MutableConfigItem()->MutableUsageScope()->MutableTenantAndNodeTypeFilter()->SetTenant(tenant);
+ }
}
return result;