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]

Reply via email to