|
|
@@ -519,7 +519,6 @@ public class ModelsServiceImpl implements ModelsService { |
|
|
public CompletableFuture<String> newCreateModel(ModelsVo modelsVo) { |
|
|
public CompletableFuture<String> newCreateModel(ModelsVo modelsVo) { |
|
|
return CompletableFuture.supplyAsync(() -> { |
|
|
return CompletableFuture.supplyAsync(() -> { |
|
|
try { |
|
|
try { |
|
|
gitService.checkoutToken(); |
|
|
|
|
|
LoginUser loginUser = SecurityUtils.getLoginUser(); |
|
|
LoginUser loginUser = SecurityUtils.getLoginUser(); |
|
|
String ci4sUsername = loginUser.getUsername(); |
|
|
String ci4sUsername = loginUser.getUsername(); |
|
|
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); |
|
|
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); |
|
|
@@ -527,20 +526,19 @@ public class ModelsServiceImpl implements ModelsService { |
|
|
|
|
|
|
|
|
Map<String, Object> userInfo = getUserInfo(ci4sUsername); |
|
|
Map<String, Object> userInfo = getUserInfo(ci4sUsername); |
|
|
Integer userId = (Integer) userInfo.get("user_id"); |
|
|
Integer userId = (Integer) userInfo.get("user_id"); |
|
|
String token = (String) userInfo.get("token"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String repositoryName = modelsVo.getRepositoryName() == null ? ci4sUsername + "_model_" + DateUtils.dateTimeNow() : modelsVo.getRepositoryName(); |
|
|
String repositoryName = modelsVo.getRepositoryName() == null ? ci4sUsername + "_model_" + DateUtils.dateTimeNow() : modelsVo.getRepositoryName(); |
|
|
ModelDependency1 modelDependency = new ModelDependency1(); |
|
|
ModelDependency1 modelDependency = new ModelDependency1(); |
|
|
List<ModelDependency1> oldModelDependencys = modelDependency1Dao.queryByModelName(modelsVo.getName()); |
|
|
List<ModelDependency1> oldModelDependencys = modelDependency1Dao.queryByModelName(modelsVo.getName()); |
|
|
|
|
|
|
|
|
if (oldModelDependencys != null && !oldModelDependencys.isEmpty()) { |
|
|
if (oldModelDependencys != null && !oldModelDependencys.isEmpty()) { |
|
|
if (oldModelDependencys.stream().map(ModelDependency1::getVersion).anyMatch(version -> version.equals(modelsVo.getVersion()))) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (oldModelDependencys.stream().anyMatch(oldModelDependency -> oldModelDependency.getRepoId().equals(modelsVo.getRepoId()) && oldModelDependency.getVersion().equals(modelsVo.getVersion()))) { |
|
|
throw new RuntimeException("模型版本已存在,请勿重复创建"); |
|
|
throw new RuntimeException("模型版本已存在,请勿重复创建"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//新建版本 |
|
|
//新建版本 |
|
|
commonDvc(token, userInfo, ci4sUsername, modelsVo.getRepositoryName(), modelsVo, gitLinkUsername, gitLinkPassword, "CreateModelFromPipeline"); |
|
|
|
|
|
|
|
|
commonDvc(userInfo, ci4sUsername, modelsVo.getRepoId(), modelsVo.getRepositoryName(), modelsVo, gitLinkUsername, gitLinkPassword, "CreateModelFromPipeline"); |
|
|
modelDependency.setRepoId(modelsVo.getRepoId()); |
|
|
modelDependency.setRepoId(modelsVo.getRepoId()); |
|
|
} else { |
|
|
} else { |
|
|
//新建模型 |
|
|
//新建模型 |
|
|
@@ -554,12 +552,13 @@ public class ModelsServiceImpl implements ModelsService { |
|
|
|
|
|
|
|
|
// 创建项目 |
|
|
// 创建项目 |
|
|
Map project = gitService.createProject(gitProjectVo); |
|
|
Map project = gitService.createProject(gitProjectVo); |
|
|
modelDependency.setRepoId((Integer) project.get("id")); |
|
|
|
|
|
|
|
|
Integer gitlinIid = (Integer) project.get("id"); |
|
|
|
|
|
modelDependency.setRepoId(gitlinIid); |
|
|
// 定义标签 标签1:ci4s_model 标签2:ModelTag 标签3:ModelType |
|
|
// 定义标签 标签1:ci4s_model 标签2:ModelTag 标签3:ModelType |
|
|
gitService.createTopic((Integer) project.get("id"), "ci4s_model"); |
|
|
|
|
|
gitService.createTopic((Integer) project.get("id"), "modeltag_" + modelsVo.getModelTag()); |
|
|
|
|
|
gitService.createTopic((Integer) project.get("id"), "modeltype_" + modelsVo.getModelType()); |
|
|
|
|
|
commonDvc(token, userInfo, ci4sUsername, repositoryName, modelsVo, gitLinkUsername, gitLinkPassword, "createModel"); |
|
|
|
|
|
|
|
|
gitService.createTopic(gitlinIid, "ci4s_model"); |
|
|
|
|
|
gitService.createTopic(gitlinIid, "modeltag_" + modelsVo.getModelTag()); |
|
|
|
|
|
gitService.createTopic(gitlinIid, "modeltype_" + modelsVo.getModelType()); |
|
|
|
|
|
commonDvc(userInfo, ci4sUsername, gitlinIid, repositoryName, modelsVo, gitLinkUsername, gitLinkPassword, "createModel"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//保存模型依赖 |
|
|
//保存模型依赖 |
|
|
@@ -796,7 +795,7 @@ public class ModelsServiceImpl implements ModelsService { |
|
|
modelDependency1Dao.deleteModelDependency(repoId, identifier, owner, version); |
|
|
modelDependency1Dao.deleteModelDependency(repoId, identifier, owner, version); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void commonDvc(String token, Map<String, Object> userInfo, String username, String repositoryName, ModelsVo modelsVo, String gitLinkUsername, String gitLinkPassword, String type) throws Exception { |
|
|
|
|
|
|
|
|
void commonDvc(Map<String, Object> userInfo, String username, Integer gitlinIid, String repositoryName, ModelsVo modelsVo, String gitLinkUsername, String gitLinkPassword, String type) throws Exception { |
|
|
String branchName = modelsVo.getVersion(); |
|
|
String branchName = modelsVo.getVersion(); |
|
|
|
|
|
|
|
|
// 创建分支 |
|
|
// 创建分支 |
|
|
@@ -814,7 +813,7 @@ public class ModelsServiceImpl implements ModelsService { |
|
|
DVCUtils.gitFetch(rootPath, gitLinkUsername, gitLinkPassword); |
|
|
DVCUtils.gitFetch(rootPath, gitLinkUsername, gitLinkPassword); |
|
|
DVCUtils.gitCheckoutBranch(rootPath, branchName); |
|
|
DVCUtils.gitCheckoutBranch(rootPath, branchName); |
|
|
} else { |
|
|
} else { |
|
|
DVCUtils.gitClone(rootPath, projectUrl, branchName, modelsVo.getGitLinkUsername(), modelsVo.getGitLinkPassword()); |
|
|
|
|
|
|
|
|
DVCUtils.gitClone(rootPath, projectUrl, branchName, gitLinkUsername, gitLinkPassword); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
DVCUtils.moveFiles(sourcePath, modelPath); |
|
|
DVCUtils.moveFiles(sourcePath, modelPath); |
|
|
@@ -828,7 +827,7 @@ public class ModelsServiceImpl implements ModelsService { |
|
|
DVCUtils.dvcInit(rootPath); |
|
|
DVCUtils.dvcInit(rootPath); |
|
|
|
|
|
|
|
|
// 配置远程S3地址 |
|
|
// 配置远程S3地址 |
|
|
String s3Path = "management-platform-files/" + username + "/model/" + repositoryName + "/" + branchName; |
|
|
|
|
|
|
|
|
String s3Path = "management-platform-files/" + username + "/model/" + gitlinIid + repositoryName + "/" + branchName; |
|
|
DVCUtils.dvcRemoteAdd(rootPath, s3Path); |
|
|
DVCUtils.dvcRemoteAdd(rootPath, s3Path); |
|
|
DVCUtils.dvcConfigS3Credentials(rootPath, endpoint); |
|
|
DVCUtils.dvcConfigS3Credentials(rootPath, endpoint); |
|
|
DVCUtils.dvcConfigS3Credentials2(rootPath, accessKeyId); |
|
|
DVCUtils.dvcConfigS3Credentials2(rootPath, accessKeyId); |
|
|
@@ -840,7 +839,7 @@ public class ModelsServiceImpl implements ModelsService { |
|
|
// git commit |
|
|
// git commit |
|
|
DVCUtils.gitAdd(rootPath, "."); |
|
|
DVCUtils.gitAdd(rootPath, "."); |
|
|
DVCUtils.gitCommit(rootPath, "commit from ci4s with " + username); |
|
|
DVCUtils.gitCommit(rootPath, "commit from ci4s with " + username); |
|
|
DVCUtils.gitPush(rootPath, modelsVo.getGitLinkUsername(), modelsVo.getGitLinkPassword()); |
|
|
|
|
|
|
|
|
DVCUtils.gitPush(rootPath, gitLinkUsername, gitLinkPassword); |
|
|
|
|
|
|
|
|
// dvc push 到远程S3 |
|
|
// dvc push 到远程S3 |
|
|
DVCUtils.dvcPush(rootPath); |
|
|
DVCUtils.dvcPush(rootPath); |
|
|
|