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 e94331346d7f4a..c67fcd8861646e 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 @@ -732,7 +732,7 @@ class Suite implements GroovyInterceptable { Assert.assertEquals(0, code) } - void sshExec(String username, String host, String cmd) { + void sshExec(String username, String host, String cmd, boolean alert=true) { String command = "ssh ${username}@${host} '${cmd}'" def cmds = ["/bin/bash", "-c", command] logger.info("Execute: ${cmds}".toString()) @@ -740,8 +740,10 @@ class Suite implements GroovyInterceptable { def errMsg = new StringBuilder() def msg = new StringBuilder() p.waitForProcessOutput(msg, errMsg) - assert errMsg.length() == 0: "error occurred!" + errMsg - assert p.exitValue() == 0 + if (alert) { + assert errMsg.length() == 0: "error occurred!\n" + errMsg + assert p.exitValue() == 0 + } } List getFrontendIpHttpPort() { @@ -1285,10 +1287,15 @@ class Suite implements GroovyInterceptable { def backendId_to_backendIP = [:] def backendId_to_backendHttpPort = [:] getBackendIpHttpPort(backendId_to_backendIP, backendId_to_backendHttpPort) + if(backendId_to_backendIP.size() == 1) { + logger.info("Only one backend, skip scp udf file") + return + } def udf_file_dir = new File(udf_file_path).parent backendId_to_backendIP.values().each { be_ip -> - sshExec ("root", be_ip, "ssh -o StrictHostKeyChecking=no root@${be_ip} \"mkdir -p ${udf_file_dir}\"") + sshExec("root", be_ip, "ssh-keygen -f '/root/.ssh/known_hosts' -R \"${be_ip}\"", false) + sshExec("root", be_ip, "ssh -o StrictHostKeyChecking=no root@${be_ip} \"mkdir -p ${udf_file_dir}\"", false) scpFiles("root", be_ip, udf_file_path, udf_file_path, false) } }