This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new 8a3626c08a1 branch-3.0: [fix](cloud) Add check for cluster_name empty
in cloud #49775 (#50072)
8a3626c08a1 is described below
commit 8a3626c08a112903efb34c387ac8f8e5b46047d6
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon May 19 20:34:54 2025 +0800
branch-3.0: [fix](cloud) Add check for cluster_name empty in cloud #49775
(#50072)
Cherry-picked from #49775
Co-authored-by: deardeng <[email protected]>
---
cloud/src/resource-manager/resource_manager.cpp | 5 +++
cloud/test/meta_service_http_test.cpp | 44 +++++++++++++++++++++++++
2 files changed, 49 insertions(+)
diff --git a/cloud/src/resource-manager/resource_manager.cpp
b/cloud/src/resource-manager/resource_manager.cpp
index 827ad318502..d08af6ef4e4 100644
--- a/cloud/src/resource-manager/resource_manager.cpp
+++ b/cloud/src/resource-manager/resource_manager.cpp
@@ -155,6 +155,11 @@ bool ResourceManager::check_cluster_params_valid(const
ClusterPB& cluster, std::
return false;
}
+ if (!cluster.has_cluster_name() || cluster.cluster_name() == "") {
+ *err = "not have cluster name";
+ return false;
+ }
+
std::stringstream ss;
bool no_err = true;
int master_num = 0;
diff --git a/cloud/test/meta_service_http_test.cpp
b/cloud/test/meta_service_http_test.cpp
index e9ff2956307..7131505ae7f 100644
--- a/cloud/test/meta_service_http_test.cpp
+++ b/cloud/test/meta_service_http_test.cpp
@@ -699,14 +699,58 @@ TEST(MetaServiceHttpTest, AlterClusterTest) {
ASSERT_EQ(resp.code(), MetaServiceCode::INVALID_ARGUMENT);
}
+ // no cluster name
{
AlterClusterRequest req;
req.set_instance_id(mock_instance);
req.mutable_cluster()->set_type(ClusterPB::COMPUTE);
req.mutable_cluster()->set_cluster_id(mock_cluster_id + "1");
auto [status_code, resp] =
ctx.forward<MetaServiceResponseStatus>("add_cluster", req);
+ ASSERT_EQ(status_code, 400);
+ ASSERT_EQ(resp.code(), MetaServiceCode::INVALID_ARGUMENT);
+ ASSERT_EQ(resp.msg(), "not have cluster name");
+ }
+
+ // cluster name ""
+ {
+ AlterClusterRequest req;
+ req.set_instance_id(mock_instance);
+ req.mutable_cluster()->set_type(ClusterPB::COMPUTE);
+ req.mutable_cluster()->set_cluster_name("");
+ req.mutable_cluster()->set_cluster_id(mock_cluster_id + "1");
+ auto [status_code, resp] =
ctx.forward<MetaServiceResponseStatus>("add_cluster", req);
+ ASSERT_EQ(status_code, 400);
+ ASSERT_EQ(resp.code(), MetaServiceCode::INVALID_ARGUMENT);
+ ASSERT_EQ(resp.msg(),
+ "cluster name not regex with ^[a-zA-Z][a-zA-Z0-9_]*$, please
check it");
+ }
+
+ config::enable_cluster_name_check = false;
+ // cluster name ""
+ {
+ AlterClusterRequest req;
+ req.set_instance_id(mock_instance);
+ req.mutable_cluster()->set_type(ClusterPB::COMPUTE);
+ req.mutable_cluster()->set_cluster_name("");
+ req.mutable_cluster()->set_cluster_id(mock_cluster_id + "1");
+ auto [status_code, resp] =
ctx.forward<MetaServiceResponseStatus>("add_cluster", req);
+ ASSERT_EQ(status_code, 400);
+ ASSERT_EQ(resp.code(), MetaServiceCode::INVALID_ARGUMENT);
+ ASSERT_EQ(resp.msg(), "not have cluster name");
+ }
+
+ config::enable_cluster_name_check = true;
+ // ok
+ {
+ AlterClusterRequest req;
+ req.set_instance_id(mock_instance);
+ req.mutable_cluster()->set_type(ClusterPB::COMPUTE);
+ req.mutable_cluster()->set_cluster_name("aaaa");
+ req.mutable_cluster()->set_cluster_id(mock_cluster_id + "1");
+ auto [status_code, resp] =
ctx.forward<MetaServiceResponseStatus>("add_cluster", req);
ASSERT_EQ(status_code, 200);
ASSERT_EQ(resp.code(), MetaServiceCode::OK);
+ ASSERT_EQ(resp.msg(), "");
}
// case: request has invalid argument
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]