This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 2ad8c0f214e [fix](regression) Fix regression run in cloud use non-root
user (#34340)
2ad8c0f214e is described below
commit 2ad8c0f214e49bfa1cbabbb3f5a52da2a575be5a
Author: deardeng <[email protected]>
AuthorDate: Sat May 4 09:39:30 2024 +0800
[fix](regression) Fix regression run in cloud use non-root user (#34340)
---
.../org/apache/doris/regression/Config.groovy | 25 ++++++++++++++++++++++
.../org/apache/doris/regression/suite/Suite.groovy | 3 ++-
.../doris/regression/suite/SuiteContext.groovy | 2 +-
.../apache/doris/regression/util/JdbcUtils.groovy | 21 ++++++++++++++++++
4 files changed, 49 insertions(+), 2 deletions(-)
diff --git
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
index 5ac95a236e5..008962ee544 100644
---
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
+++
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
@@ -33,6 +33,12 @@ import static org.apache.doris.regression.ConfigOptions.*
import org.apache.doris.thrift.TNetworkAddress;
+enum RunMode {
+ UNKNOWN,
+ NOT_CLOUD,
+ CLOUD
+}
+
@Slf4j
@CompileStatic
class Config {
@@ -64,6 +70,8 @@ class Config {
public String metaServiceHttpAddress
public String recycleServiceHttpAddress
+ public RunMode isCloudMode = RunMode.UNKNOWN
+
public String suitePath
public String dataPath
public String realDataPath
@@ -827,10 +835,27 @@ class Config {
}
}
+ boolean fetchRunMode() {
+ if (isCloudMode == RunMode.UNKNOWN) {
+ try {
+ def result = JdbcUtils.executeToMapArray(getRootConnection(),
"SHOW FRONTEND CONFIG LIKE 'cloud_unique_id'")
+ isCloudMode = result[0].Value.toString().isEmpty() ?
RunMode.NOT_CLOUD : RunMode.CLOUD
+ } catch (Throwable t) {
+ throw new IllegalStateException("Fetch server config
'cloud_unique_id' failed, jdbcUrl: ${jdbcUrl}", t)
+ }
+ }
+ return isCloudMode == RunMode.CLOUD
+
+ }
+
Connection getConnection() {
return DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword)
}
+ Connection getRootConnection() {
+ return DriverManager.getConnection(jdbcUrl, 'root', '')
+ }
+
Connection getConnectionByDbName(String dbName) {
String dbUrl = buildUrlWithDb(jdbcUrl, dbName)
tryCreateDbIfNotExist(dbName)
diff --git
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
index 7e5877086ea..a6b7773a3e1 100644
---
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
+++
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
@@ -43,6 +43,7 @@ import org.apache.doris.regression.util.JdbcUtils
import org.apache.doris.regression.util.Hdfs
import org.apache.doris.regression.util.SuiteUtils
import org.apache.doris.regression.util.DebugPoint
+import org.apache.doris.regression.RunMode
import org.jetbrains.annotations.NotNull
import org.junit.jupiter.api.Assertions
import org.slf4j.Logger
@@ -1123,7 +1124,7 @@ class Suite implements GroovyInterceptable {
}
boolean isCloudMode() {
- return !getFeConfig("cloud_unique_id").isEmpty()
+ return context.config.fetchRunMode()
}
boolean enableStoragevault() {
diff --git
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
index 1cf6d021de9..2cac1b19dc6 100644
---
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
+++
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
@@ -144,7 +144,7 @@ class SuiteContext implements Closeable {
if (threadConnInfo == null) {
threadConnInfo = new ConnectionInfo()
threadConnInfo.conn = config.getConnectionByDbName(dbName)
- threadConnInfo.username = config.jdbcUser
+ threadConnInfo.username = config.jdbcUser
threadConnInfo.password = config.jdbcPassword
threadLocalConn.set(threadConnInfo)
}
diff --git
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/util/JdbcUtils.groovy
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/util/JdbcUtils.groovy
index bc02f08f80c..300189b5cba 100644
---
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/util/JdbcUtils.groovy
+++
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/util/JdbcUtils.groovy
@@ -47,6 +47,27 @@ class JdbcUtils {
return conn.prepareStatement(sql);
}
+ static List<Map<String, Object>> executeToMapArray(Connection conn, String
sql) {
+ def (result, meta) = JdbcUtils.executeToList(conn, sql)
+
+ // get all column names as list
+ List<String> columnNames = new ArrayList<>()
+ for (int i = 0; i < meta.getColumnCount(); i++) {
+ columnNames.add(meta.getColumnName(i + 1))
+ }
+
+ // add result to res map list, each row is a map with key is column
name
+ List<Map<String, Object>> res = new ArrayList<>()
+ for (int i = 0; i < result.size(); i++) {
+ Map<String, Object> row = new HashMap<>()
+ for (int j = 0; j < columnNames.size(); j++) {
+ row.put(columnNames.get(j), result.get(i).get(j))
+ }
+ res.add(row)
+ }
+ return res;
+ }
+
static Tuple2<List<List<Object>>, ResultSetMetaData>
executeToStringList(Connection conn, PreparedStatement stmt) {
return toStringList(stmt.executeQuery())
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]