aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorInnokentii Mokin <innokentii@ydb.tech>2025-02-10 19:49:58 +0300
committerGitHub <noreply@github.com>2025-02-10 19:49:58 +0300
commitca50229766bcc6c49b20ddc076939d18b9dbfb07 (patch)
tree08f15c76cdc8e956e8686e43112f479bc4996cee
parent759115d20cebf07767af9060063a9947cf29ce69 (diff)
downloadydb-ca50229766bcc6c49b20ddc076939d18b9dbfb07.tar.gz
Fix backward compatibility and ui for per-database configs (#14395)
-rw-r--r--ydb/core/cms/console/console.cpp9
-rw-r--r--ydb/core/cms/console/console__get_yaml_config.cpp5
-rw-r--r--ydb/core/cms/console/console_configs_manager.cpp1
-rw-r--r--ydb/core/cms/console/console_configs_manager.h1
-rw-r--r--ydb/core/cms/console/console_impl.h2
-rw-r--r--ydb/core/cms/console/console_tenants_manager.h4
-rw-r--r--ydb/core/cms/ui/yaml_config.js2
7 files changed, 22 insertions, 2 deletions
diff --git a/ydb/core/cms/console/console.cpp b/ydb/core/cms/console/console.cpp
index 677563efaa..de9e88f686 100644
--- a/ydb/core/cms/console/console.cpp
+++ b/ydb/core/cms/console/console.cpp
@@ -195,6 +195,15 @@ bool TConsole::HasTenant(const TString& path) const
return TenantsManager->HasTenant(path);
}
+TString TConsole::GetDomainName() const
+{
+ if (!TenantsManager) {
+ return {};
+ }
+
+ return TenantsManager->GetDomainName();
+}
+
IActor *CreateConsole(const TActorId &tablet, TTabletStorageInfo *info)
{
return new TConsole(tablet, info);
diff --git a/ydb/core/cms/console/console__get_yaml_config.cpp b/ydb/core/cms/console/console__get_yaml_config.cpp
index 65e52fb9b4..203d43c45d 100644
--- a/ydb/core/cms/console/console__get_yaml_config.cpp
+++ b/ydb/core/cms/console/console__get_yaml_config.cpp
@@ -20,7 +20,10 @@ public:
{
Response = MakeHolder<TEvConsole::TEvGetAllConfigsResponse>();
- if (IngressDatabase) {
+ if (IngressDatabase
+ // treat root (domain) database as cluster for backward compatibility
+ && *IngressDatabase != Self->DomainName && *IngressDatabase != ("/" + Self->DomainName))
+ {
if (Self->DatabaseYamlConfigs.contains(*IngressDatabase)) {
auto& identity = *Response->Record.MutableResponse()->add_identity();
identity.set_database(*IngressDatabase);
diff --git a/ydb/core/cms/console/console_configs_manager.cpp b/ydb/core/cms/console/console_configs_manager.cpp
index 9aafe61987..b47b417511 100644
--- a/ydb/core/cms/console/console_configs_manager.cpp
+++ b/ydb/core/cms/console/console_configs_manager.cpp
@@ -189,6 +189,7 @@ void TConfigsManager::Bootstrap(const TActorContext &ctx)
Become(&TThis::StateWork);
ClusterName = AppData(ctx)->ClusterName;
+ DomainName = Self.GetDomainName();
TxProcessor = Self.GetTxProcessor()->GetSubProcessor("configs",
ctx,
diff --git a/ydb/core/cms/console/console_configs_manager.h b/ydb/core/cms/console/console_configs_manager.h
index c345a5ae3f..60acbe17f3 100644
--- a/ydb/core/cms/console/console_configs_manager.h
+++ b/ydb/core/cms/console/console_configs_manager.h
@@ -302,6 +302,7 @@ public:
private:
TConsole &Self;
TConfigsConfig Config;
+ TString DomainName;
// All config items by id.
TConfigIndex ConfigIndex;
ui64 NextConfigItemId;
diff --git a/ydb/core/cms/console/console_impl.h b/ydb/core/cms/console/console_impl.h
index a5de732504..9d64ee6475 100644
--- a/ydb/core/cms/console/console_impl.h
+++ b/ydb/core/cms/console/console_impl.h
@@ -181,6 +181,8 @@ public:
bool HasTenant(const TString& path) const;
+ TString GetDomainName() const;
+
private:
TDeque<TAutoPtr<IEventHandle>> InitQueue;
NKikimrConsole::TConfig Config;
diff --git a/ydb/core/cms/console/console_tenants_manager.h b/ydb/core/cms/console/console_tenants_manager.h
index 04c9255882..f032338b86 100644
--- a/ydb/core/cms/console/console_tenants_manager.h
+++ b/ydb/core/cms/console/console_tenants_manager.h
@@ -1010,6 +1010,10 @@ public:
return Tenants.contains(path);
}
+ TString GetDomainName() const {
+ return Domain->Name;
+ }
+
private:
TConsole &Self;
TDomainsInfo::TDomain::TPtr Domain;
diff --git a/ydb/core/cms/ui/yaml_config.js b/ydb/core/cms/ui/yaml_config.js
index 1352da8446..37f1625211 100644
--- a/ydb/core/cms/ui/yaml_config.js
+++ b/ydb/core/cms/ui/yaml_config.js
@@ -242,7 +242,7 @@ class YamlConfigState {
$('#yaml-version').text(data.Response.identity.version);
if (this.config !== data.Response.config) {
- this.codeMirror.setValue((data.Response.config !== undefined) ? data.Response.config : "");
+ this.codeMirror.setValue((data.Response.config !== undefined) ? data.Response.config[0] : "");
this.codeMirror.trigger('fold', 'editor.foldLevel2');
this.config = data.Response.config;
}