feat: ASW-192 playbook支持python 脚本类型

This commit is contained in:
zhangshuai
2024-11-26 10:13:20 +08:00
parent afcbbe30b6
commit b189c5d9d0
3 changed files with 14 additions and 1 deletions

View File

@@ -116,7 +116,7 @@ public class JobPlaybookExecResultChecker extends QuartzJobBean {
Constants.RUNNING_JOB_THREAD.computeIfAbsent(id, jobId -> startGetJobLogThread(job, environment));
break;
case "error":
Constants.RESULT_JOB_THREAD.computeIfAbsent(id, jobId -> startGetJobResultThread(job, environment, RunnerConstant.JobStatus.FAILED.getValue()));
Constants.RESULT_JOB_THREAD.computeIfAbsent(id, jobId -> startGetJobResultThread(job, environment,RunnerConstant.JobStatus.FAILED.getValue()));
break;
case "done":
Constants.RESULT_JOB_THREAD.computeIfAbsent(id, jobId -> startGetJobResultThread(job, environment, RunnerConstant.JobStatus.PASSED.getValue()));

View File

@@ -212,6 +212,7 @@ public class JobPlaybookExecutor extends QuartzJobBean {
request.form("file", zipFile);
request.form("id", job.getId());
request.form("packageName", packageName);
request.form("type", playbook.getType());
for (Map.Entry<String, Object> param : params.entrySet()) {
request.form(param.getKey(), param.getValue());
}

View File

@@ -70,6 +70,7 @@ public class PlaybookServiceImpl extends ServiceImpl<PlaybookDao, PlaybookEntity
FileUtils.copyInputStreamToFile(file.getInputStream(), destination);
playbook.setPath(destination.getPath());
if (T.StrUtil.equalsIgnoreCase(type, "airtest_script")){
playbook.setType("airtest_script");
unzip = T.ZipUtil.unzip(destination);
List<File> fileList = Arrays.stream(unzip.listFiles()).toList();
if (T.CollUtil.isEmpty(fileList) || fileList.size() != 1) {
@@ -87,6 +88,17 @@ public class PlaybookServiceImpl extends ServiceImpl<PlaybookDao, PlaybookEntity
throw new ASWException(RCode.PLAYBOOK_INVALID_FILE);
}
}
if (T.StrUtil.equalsIgnoreCase(type, "python")){
playbook.setType("python");
unzip = T.ZipUtil.unzip(destination);
List<File> fileList = Arrays.stream(unzip.listFiles()).toList();
fileList = fileList.stream().filter(x -> {
return T.StrUtil.equals("main.py", x.getName());
}).toList();
if (T.CollUtil.isEmpty(fileList)) {
throw new ASWException(RCode.PLAYBOOK_INVALID_FILE);
}
}
this.save(playbook);
} catch (Exception e) {
log.error(e, "[savePlaybook] [error] [file: {}]", file.getName());