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 <yu.jun.re...@gmail.com> 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: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org