|
@@ -3,6 +3,7 @@ package io.renren.modules.sys.controller;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import io.argoproj.workflow.ApiException;
|
|
|
import io.argoproj.workflow.models.*;
|
|
|
import io.kubernetes.client.openapi.apis.CoreV1Api;
|
|
@@ -28,6 +29,8 @@ import java.security.NoSuchAlgorithmException;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static io.renren.common.utils.ShiroUtils.getUserId;
|
|
|
+
|
|
|
/**
|
|
|
* 工作流提交及查询
|
|
|
*
|
|
@@ -53,10 +56,25 @@ public class VisiWorkflowController extends AbstractController {
|
|
|
@RequestMapping("/list")
|
|
|
// @RequiresPermissions("visi:visiworkflow:list")
|
|
|
public R list(@RequestParam Map<String, Object> params) {
|
|
|
- PageUtils page = visiWorkflowService.queryPage(params);
|
|
|
+// PageUtils page = visiWorkflowService.queryPage(params);
|
|
|
+ //只有超级管理员,才能查看所有模板列表
|
|
|
+ if(getUserId() != Constant.SUPER_ADMIN){
|
|
|
+ params.put("currentUserId", getUserId());
|
|
|
+ }
|
|
|
+ PageUtils page = visiWorkflowService.queryPageOnUse(params);
|
|
|
|
|
|
return R.ok().put("page", page);
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 删除
|
|
|
+ */
|
|
|
+ @RequestMapping("/delete")
|
|
|
+// @RequiresPermissions("generator:visiworkflow:delete")
|
|
|
+ public R delete(@RequestBody Long[] workflowIds){
|
|
|
+ visiWorkflowService.removeByIds(Arrays.asList(workflowIds));
|
|
|
+
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 保存
|
|
@@ -204,11 +222,26 @@ public class VisiWorkflowController extends AbstractController {
|
|
|
/**
|
|
|
* 创建WorkflowTemplate,提交Workflow
|
|
|
*
|
|
|
- * @param jsonObject 前端画布数据
|
|
|
+ * @param params
|
|
|
* @return 提示信息
|
|
|
*/
|
|
|
@RequestMapping("/submit")
|
|
|
- public R Submit(@RequestBody JSONObject jsonObject) {
|
|
|
+// public R Submit(@RequestBody JSONObject jsonObject) {
|
|
|
+ public R Submit(@RequestBody Map<String, Object> params) {
|
|
|
+ System.out.println(params.toString());
|
|
|
+ System.out.println(params.get("addorupdate"));
|
|
|
+ Boolean addorupdate = (Boolean) params.get("addorupdate");
|
|
|
+ System.out.println("//true表示update,新增 false表示add "+ addorupdate);
|
|
|
+ Long workflowId = null;
|
|
|
+ if(addorupdate){
|
|
|
+ workflowId = Long.parseLong(params.get("workflowId").toString());//工作流名称
|
|
|
+ }
|
|
|
+
|
|
|
+ String experimentName = params.get("experimentName").toString();
|
|
|
+ //true表示update,新增 false表示add
|
|
|
+
|
|
|
+ Object graphJson = params.get("graphJson");
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(graphJson.toString());
|
|
|
//连接argo
|
|
|
//创建Workflowtemplate
|
|
|
|
|
@@ -335,6 +368,15 @@ public class VisiWorkflowController extends AbstractController {
|
|
|
envvarsparkhdfsurl.setValue(ArgoUtils.getSparkHdfsurl());
|
|
|
envlist.add(envvarsparkhdfsurl);
|
|
|
|
|
|
+ V1EnvVar envvarsparkYarnAddress = new V1EnvVar();
|
|
|
+ envvarsparkYarnAddress.setName("SPARKYARNADDRESS");
|
|
|
+ envvarsparkYarnAddress.setValue(ArgoUtils.getSparkYarnAddress());
|
|
|
+ envlist.add(envvarsparkYarnAddress);
|
|
|
+ V1EnvVar envvarsparkYarnJARS = new V1EnvVar();
|
|
|
+ envvarsparkYarnJARS.setName("SPARKYARNJARS");
|
|
|
+ envvarsparkYarnJARS.setValue(ArgoUtils.getSparkYarnJARS());
|
|
|
+ envlist.add(envvarsparkYarnJARS);
|
|
|
+
|
|
|
|
|
|
JSONArray inputsparameters = rectdata.getJSONArray("inputsparameters");
|
|
|
// List<String> inputsparam = new LinkedList<String>();
|
|
@@ -786,10 +828,19 @@ public class VisiWorkflowController extends AbstractController {
|
|
|
VisiWorkflowEntity visiWorkflow = new VisiWorkflowEntity();
|
|
|
visiWorkflow.setUserId(ShiroUtils.getUserEntity().getUserId());
|
|
|
visiWorkflow.setGraphJson(jsonObject.toJSONString());
|
|
|
- visiWorkflow.setExperimentName("");
|
|
|
+ visiWorkflow.setExperimentName(experimentName);
|
|
|
visiWorkflow.setWorkflowtempName(workflowTempname);
|
|
|
visiWorkflow.setWorkflowName(resultWorkflowname);
|
|
|
- visiWorkflowService.save(visiWorkflow);
|
|
|
+ if(addorupdate){
|
|
|
+ //修改
|
|
|
+ visiWorkflow.setWorkflowId(workflowId);
|
|
|
+ visiWorkflowService.updateById(visiWorkflow);
|
|
|
+ }else{
|
|
|
+ boolean save = visiWorkflowService.save(visiWorkflow);
|
|
|
+// System.out.println("新增的主键"+visiWorkflow.getWorkflowId());
|
|
|
+ workflowId = visiWorkflow.getWorkflowId();
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
// //保存 节点id 与 templatename 对应关系
|
|
|
// VisiNodeidtemplateMapService visiNodeidtemplateMapService = null;
|
|
@@ -807,7 +858,7 @@ public class VisiWorkflowController extends AbstractController {
|
|
|
// }
|
|
|
|
|
|
|
|
|
- return R.ok().put("workflowName", resultWorkflowname).put("idTemplateNameMap", idTemplateNameMap);
|
|
|
+ return R.ok().put("workflowName", resultWorkflowname).put("idTemplateNameMap", idTemplateNameMap).put("workflowId", workflowId);
|
|
|
// put("workflowContent",workflowcontent).put("podlogs",idpodlogs);
|
|
|
|
|
|
|
|
@@ -941,6 +992,7 @@ public class VisiWorkflowController extends AbstractController {
|
|
|
//应用JSONObject接收数据
|
|
|
|
|
|
/**
|
|
|
+ * 当前使用
|
|
|
* 获取workflow日志
|
|
|
*
|
|
|
* @param params workflow名称及节点映射关系
|
|
@@ -1101,6 +1153,7 @@ public class VisiWorkflowController extends AbstractController {
|
|
|
//应用JSONObject接收数据
|
|
|
|
|
|
/**
|
|
|
+ * 当前应用
|
|
|
* 根据workflow名称,获取workflown内容,获取 pod 日志
|
|
|
*
|
|
|
* @param params workflow名称及节点映射关系
|
|
@@ -1331,6 +1384,32 @@ public class VisiWorkflowController extends AbstractController {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * stop workflow
|
|
|
+ *
|
|
|
+ * @param params workflow名称
|
|
|
+ * @return workflow执行状态
|
|
|
+ *
|
|
|
+ */
|
|
|
+ @RequestMapping("/stopworkflow")
|
|
|
+ public R Stopworkflow(@RequestBody Map<String, Object> params) {
|
|
|
+ Object workflowName = params.get("workflowName");//工作流名称
|
|
|
+ System.out.println("workflowname ");
|
|
|
+ System.out.println(workflowName);
|
|
|
+
|
|
|
+ String namespace = "argo";
|
|
|
+ String statusPhase = "";
|
|
|
+ try {
|
|
|
+ statusPhase = ArgoUtils.stopWorkflow(namespace, workflowName.toString());
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ Workflow successworkflow;
|
|
|
+
|
|
|
+ return R.ok().put("statusPhase", statusPhase);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
//应用JSONObject接收数据
|
|
|
|