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 3f988e1b7f0 [improvement](doris compose) regression test auto install
doris compose requirements (#29012)
3f988e1b7f0 is described below
commit 3f988e1b7f0ec3d383573df017388b93fee0a07a
Author: yujun <[email protected]>
AuthorDate: Sat Jan 6 20:20:38 2024 +0800
[improvement](doris compose) regression test auto install doris compose
requirements (#29012)
---
docker/runtime/doris-compose/cluster.py | 5 +----
docker/runtime/doris-compose/command.py | 12 ++++++++----
.../org/apache/doris/regression/RegressionTest.groovy | 18 ++++++++++++++++++
.../org/apache/doris/regression/suite/Suite.groovy | 5 +++++
4 files changed, 32 insertions(+), 8 deletions(-)
diff --git a/docker/runtime/doris-compose/cluster.py
b/docker/runtime/doris-compose/cluster.py
index d78c035f077..23016bc27ba 100644
--- a/docker/runtime/doris-compose/cluster.py
+++ b/docker/runtime/doris-compose/cluster.py
@@ -68,10 +68,6 @@ def get_all_cluster_names():
]
-def lock_network():
- return filelock.FileLock(os.path.join(LOCAL_DORIS_PATH, "lock"))
-
-
def gen_subnet_prefix16():
used_subnet = utils.get_docker_subnets_prefix16()
for cluster_name in get_all_cluster_names():
@@ -404,6 +400,7 @@ class Cluster(object):
@staticmethod
def new(name, image, fe_config, be_config, be_disks, coverage_dir):
+ os.makedirs(LOCAL_DORIS_PATH, exist_ok=True)
with filelock.FileLock(os.path.join(LOCAL_DORIS_PATH, "lock")):
subnet = gen_subnet_prefix16()
cluster = Cluster(name, subnet, image, fe_config, be_config,
diff --git a/docker/runtime/doris-compose/command.py
b/docker/runtime/doris-compose/command.py
index 4d1d6e7edb3..261d63ee803 100644
--- a/docker/runtime/doris-compose/command.py
+++ b/docker/runtime/doris-compose/command.py
@@ -356,13 +356,17 @@ class DownCommand(Command):
cluster, args.fe_id, args.be_id, ignore_not_exists=True)
if for_all:
- utils.exec_docker_compose_command(cluster.get_compose_file(),
- "down",
- ["-v", "--remove-orphans"])
+ if os.path.exists(cluster.get_compose_file()):
+ try:
+ utils.exec_docker_compose_command(
+ cluster.get_compose_file(), "down",
+ ["-v", "--remove-orphans"])
+ except Exception as e:
+ LOG.warn("down cluster has exception: " + str(e))
try:
utils.remove_docker_network(cluster.name)
except Exception as e:
- LOG.warn("prune network has exception: " + str(e))
+ LOG.warn("remove network has exception: " + str(e))
if args.clean:
utils.enable_dir_with_rw_perm(cluster.get_path())
shutil.rmtree(cluster.get_path())
diff --git
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy
index 36850b8ab10..d7eb6827831 100644
---
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy
+++
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy
@@ -131,6 +131,7 @@ class RegressionTest {
actionExecutors = Executors.newFixedThreadPool(config.actionParallel,
actionFactory)
loadPlugins(config)
+ installDorisCompose(config)
}
static List<ScriptSource> findScriptSources(String root, Predicate<String>
directoryFilter,
@@ -398,6 +399,23 @@ class RegressionTest {
})
}
+ static void installDorisCompose(Config config) {
+ if (config.excludeDockerTest) {
+ return
+ }
+ def requirements = new File(config.dorisComposePath).getParent() +
"/requirements.txt"
+ def cmd = "python -m pip install --user -r " + requirements
+ def proc = cmd.execute()
+ def sout = new StringBuilder()
+ def serr = new StringBuilder()
+ proc.consumeProcessOutput(sout, serr)
+ proc.waitForOrKill(120_000)
+ if (proc.exitValue() != 0) {
+ log.warn("install doris compose requirements failed:
code=${proc.exitValue()}, "
+ + "output: ${sout.toString()}, error: ${serr.toString()}")
+ }
+ }
+
static void printPassed() {
log.info('''All suites success.
| ____ _ ____ ____ _____ ____
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 cd7a01b8b97..3ce4fd89b35 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
@@ -221,6 +221,11 @@ class Suite implements GroovyInterceptable {
def user = context.config.jdbcUser
def password = context.config.jdbcPassword
def masterFe = cluster.getMasterFe()
+ for (def i=0; masterFe == null && i<30; i++) {
+ masterFe = cluster.getMasterFe()
+ Thread.sleep(1000)
+ }
+ assertNotNull(masterFe)
def url = String.format(
"jdbc:mysql://%s:%s/?useLocalSessionState=false&allowLoadLocalInfile=false",
masterFe.host, masterFe.queryPort)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]