aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey Uzhakov <uzhastik@gmail.com>2022-04-18 21:36:49 +0300
committerSergey Uzhakov <uzhastik@gmail.com>2022-04-18 21:36:49 +0300
commitfb550d38768538c56596a8efcafbab89c57e3128 (patch)
tree0d6f4be9a4de97cca83a349ce986816b924de029
parent9259e0b216dc9e8f21a065916f488a2715e8bafb (diff)
downloadydb-fb550d38768538c56596a8efcafbab89c57e3128.tar.gz
YQ-1029: use url encode when compose urls to ydb and clickhouse
ref:4cdd482047a975888e060018c25141c80085b46b
-rw-r--r--ydb/core/yq/libs/actors/CMakeLists.txt1
-rw-r--r--ydb/core/yq/libs/actors/database_resolver.cpp16
2 files changed, 13 insertions, 4 deletions
diff --git a/ydb/core/yq/libs/actors/CMakeLists.txt b/ydb/core/yq/libs/actors/CMakeLists.txt
index 8f59f1c60b3..15f5092aae3 100644
--- a/ydb/core/yq/libs/actors/CMakeLists.txt
+++ b/ydb/core/yq/libs/actors/CMakeLists.txt
@@ -72,6 +72,7 @@ target_link_libraries(yq-libs-actors PUBLIC
providers-pq-task_meta
providers-s3-provider
providers-ydb-provider
+ library-yql-utils
)
target_sources(yq-libs-actors PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/yq/libs/actors/clusters_from_connections.cpp
diff --git a/ydb/core/yq/libs/actors/database_resolver.cpp b/ydb/core/yq/libs/actors/database_resolver.cpp
index f13f00157f0..e36f8318367 100644
--- a/ydb/core/yq/libs/actors/database_resolver.cpp
+++ b/ydb/core/yq/libs/actors/database_resolver.cpp
@@ -3,7 +3,7 @@
#include <ydb/core/yq/libs/events/events.h>
#include <ydb/core/yq/libs/common/cache.h>
#include <ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h>
-
+#include <ydb/library/yql/utils/url_builder.h>
#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <library/cpp/actors/http/http.h>
#include <library/cpp/actors/http/http_proxy.h>
@@ -311,9 +311,17 @@ private:
}
try {
- TString url = IsIn({NYql::DatabaseType::Ydb, NYql::DatabaseType::DataStreams }, type) ?
- ev->Get()->YdbMvpEndpoint + "/database?databaseId=" + databaseId :
- ev->Get()->MdbGateway + "/managed-clickhouse/v1/clusters/" + databaseId + "/hosts";
+ TString url;
+ if (IsIn({NYql::DatabaseType::Ydb, NYql::DatabaseType::DataStreams }, type)) {
+ url = TUrlBuilder(ev->Get()->YdbMvpEndpoint + "/database")
+ .AddUrlParam("databaseId", databaseId)
+ .Build();
+ } else {
+ url = TUrlBuilder(ev->Get()->MdbGateway + "/managed-clickhouse/v1/clusters/")
+ .AddPathComponent(databaseId)
+ .AddPathComponent("hosts")
+ .Build();
+ }
LOG_D("Get '" << url << "'");
NHttp::THttpOutgoingRequestPtr httpRequest = NHttp::THttpOutgoingRequest::CreateRequestGet(url);