Skip to content

Commit 358c6ee

Browse files
author
leeebai
committed
Merge remote-tracking branch 'origin/dev-1.1.4' into dev-1.1.4
2 parents 7cbbb76 + 493d31b commit 358c6ee

File tree

1 file changed

+10
-3
lines changed
  • dss-orchestrator/orchestrators/dss-workflow/dss-workflow-server/src/main/java/com/webank/wedatasphere/dss/workflow/service/impl

1 file changed

+10
-3
lines changed

dss-orchestrator/orchestrators/dss-workflow/dss-workflow-server/src/main/java/com/webank/wedatasphere/dss/workflow/service/impl/DSSFlowServiceImpl.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.webank.wedatasphere.dss.common.label.DSSLabel;
2929
import com.webank.wedatasphere.dss.common.utils.DSSCommonUtils;
3030
import com.webank.wedatasphere.dss.common.utils.IoUtils;
31+
import com.webank.wedatasphere.dss.common.utils.MapUtils;
3132
import com.webank.wedatasphere.dss.contextservice.service.ContextService;
3233
import com.webank.wedatasphere.dss.contextservice.service.impl.ContextServiceImpl;
3334
import com.webank.wedatasphere.dss.standard.app.development.utils.DSSJobContentConstant;
@@ -311,6 +312,11 @@ public DSSFlow copyRootFlow(Long rootFlowId, String userName, Workspace workspac
311312
String projectName, String version, String contextIdStr,
312313
String description, List<DSSLabel> dssLabels) throws DSSErrorException, IOException {
313314
DSSFlow dssFlow = flowMapper.selectFlowByID(rootFlowId);
315+
if(dssFlow == null) {
316+
throw new DSSErrorException(50030, "Workflow " + rootFlowId + " is not exists[工作流不存在,请检查是否已被删除].");
317+
}
318+
logger.info("User {} try to copy workflow {} in project {} with newVersion {} and contextId {}.", userName,
319+
dssFlow.getName(), projectName, version, contextIdStr);
314320
DSSFlow rootFlowWithSubFlows = copyFlowAndSetSubFlowInDB(dssFlow, userName, description);
315321
updateFlowJson(userName, projectName, rootFlowWithSubFlows, version, null,
316322
contextIdStr, workspace, dssLabels);
@@ -348,7 +354,7 @@ private void updateFlowJson(String userName, String projectName, DSSFlow rootFlo
348354
String flowJson = bmlService.readFlowJsonFromBML(userName, rootFlow.getResourceId(), rootFlow.getBmlVersion());
349355
//如果包含subflow,需要一同导入subflow内容,并更新parrentflow的json内容
350356
// TODO: 2020/7/31 优化update方法里面的saveContent
351-
String updateFlowJson = updateFlowContextId(flowJson, contextIdStr);
357+
String updateFlowJson = updateFlowContextIdAndVersion(flowJson, contextIdStr, version);
352358
//重新上传工作流资源
353359
updateFlowJson = uploadFlowResourceToBml(userName, updateFlowJson, projectName, rootFlow);
354360
//上传节点的资源或调用appconn的copyRef
@@ -408,8 +414,9 @@ private DSSFlow uploadFlowJsonToBml(String userName, String projectName, DSSFlow
408414
return dssFlow;
409415
}
410416

411-
private String updateFlowContextId(String flowJson, String contextIdStr) throws IOException {
412-
return workFlowParser.updateFlowJsonWithKey(flowJson, CSCommonUtils.CONTEXT_ID_STR, contextIdStr);
417+
private String updateFlowContextIdAndVersion(String flowJson, String contextIdStr, String orcVersion) throws IOException {
418+
return workFlowParser.updateFlowJsonWithMap(flowJson, MapUtils.newCommonMap(CSCommonUtils.CONTEXT_ID_STR, contextIdStr,
419+
DSSJobContentConstant.ORC_VERSION_KEY, orcVersion));
413420
}
414421

415422
private String updateWorkFlowNodeJson(String userName, String projectName,

0 commit comments

Comments
 (0)