You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by GitBox <gi...@apache.org> on 2022/10/11 12:35:56 UTC

[GitHub] [dolphinscheduler] caishunfeng commented on a diff in pull request #11759: [Feature-6586][Server]add some ds process definition demo when init

caishunfeng commented on code in PR #11759:
URL: https://github.com/apache/dolphinscheduler/pull/11759#discussion_r992264051


##########
dolphinscheduler-tools/src/main/java/org/apache/dolphinscheduler/tools/demo/DemoContants.java:
##########
@@ -0,0 +1,117 @@
+package org.apache.dolphinscheduler.tools.demo;
+
+public class DemoContants {
+    public static final String [] SHELL_taskDefinitionJson = {"[{\"code\":",

Review Comment:
   Json string is hard to maintain, please replace it with `TaskDefinition` Object.
   



##########
dolphinscheduler-common/pom.xml:
##########
@@ -319,6 +319,19 @@
             <artifactId>netty-all</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.16.22</version>

Review Comment:
   move the version into bom.



##########
dolphinscheduler-common/pom.xml:
##########
@@ -319,6 +319,19 @@
             <artifactId>netty-all</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.16.22</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.squareup.okhttp3</groupId>
+            <artifactId>okhttp</artifactId>
+            <version>3.14.9</version>

Review Comment:
   same here



##########
dolphinscheduler-tools/src/main/java/org/apache/dolphinscheduler/tools/demo/ProcessDefinitionDemo.java:
##########
@@ -0,0 +1,321 @@
+package org.apache.dolphinscheduler.tools.demo;
+
+
+import static org.apache.dolphinscheduler.common.enums.ProcessExecutionTypeEnum.PARALLEL;
+
+
+import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils;
+import org.apache.dolphinscheduler.common.utils.DateUtils;
+import org.apache.dolphinscheduler.common.utils.EncryptionUtils;
+import org.apache.dolphinscheduler.dao.entity.AccessToken;
+import org.apache.dolphinscheduler.dao.entity.Project;
+import org.apache.dolphinscheduler.dao.entity.User;
+import org.apache.dolphinscheduler.dao.mapper.AccessTokenMapper;
+import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
+import org.apache.dolphinscheduler.dao.mapper.UserMapper;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+
+@Component
+public class ProcessDefinitionDemo {
+
+    private static final Logger logger = LoggerFactory.getLogger(ProcessDefinitionDemo.class);
+
+    @Value("${create-demo.tenant-code}")
+    private String tenantCode;
+
+    @Autowired
+    private ProjectMapper projectMapper;
+
+    @Autowired
+    private UserMapper userMapper;
+
+    @Autowired
+    private AccessTokenMapper accessTokenMapper;
+
+    @Autowired
+    private ProxyProcessDefinitionController proxyProcessDefinitionController;
+
+    public void createProcessDefinitionDemo(){
+        //get user
+        User loginUser = userMapper.selectById("1");
+        Date now = new Date();
+
+        //create demo tenantCode
+        CreateDemoTenant createDemoTenant = new CreateDemoTenant();
+        createDemoTenant.createTenantCode(tenantCode);
+
+        //create and get demo projectCode
+        Project project = projectMapper.queryByName("demo");
+        try {
+            project = Project
+                    .newBuilder()
+                    .name("demo")
+                    .code(CodeGenerateUtils.getInstance().genCode())
+                    .description("")
+                    .userId(loginUser.getId())
+                    .userName(loginUser.getUserName())
+                    .createTime(now)
+                    .updateTime(now)
+                    .build();
+        } catch (CodeGenerateUtils.CodeGenerateException e) {
+            logger.info("create project error");
+        }
+        if (projectMapper.insert(project) > 0) {
+            logger.info("create project success");
+        } else {
+            logger.info("create project error");
+        }

Review Comment:
   should throw exception



##########
dolphinscheduler-tools/src/main/java/org/apache/dolphinscheduler/tools/demo/ProxyProcessDefinitionController.java:
##########
@@ -0,0 +1,56 @@
+package org.apache.dolphinscheduler.tools.demo;
+
+import org.apache.dolphinscheduler.common.enums.ProcessExecutionTypeEnum;
+import org.apache.dolphinscheduler.common.utils.JSONUtils;
+import org.apache.dolphinscheduler.common.utils.OkHttpUtils;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ProxyProcessDefinitionController {
+
+    private static final Logger logger = LoggerFactory.getLogger(ProxyProcessDefinitionController.class);
+    public ProxyResult createProcessDefinition (String token,
+                                                long projectCode,
+                                                String name,
+                                                String description,
+                                                String globalParams,
+                                                String locations,
+                                                int timeout,
+                                                String tenantCode,
+                                                String taskRelationJson,
+                                                String taskDefinitionJson,
+                                                ProcessExecutionTypeEnum executionType){
+        ProxyResult proxyResult = new ProxyResult();
+        String ServerPort = "3000";
+        String url = "http://localhost:" + ServerPort + "/dolphinscheduler/projects/" + projectCode + "/process-definition";

Review Comment:
   The ip and port should be config in `application.yaml`



##########
dolphinscheduler-tools/src/main/java/org/apache/dolphinscheduler/tools/demo/ProcessDefinitionDemo.java:
##########
@@ -0,0 +1,321 @@
+package org.apache.dolphinscheduler.tools.demo;
+
+
+import static org.apache.dolphinscheduler.common.enums.ProcessExecutionTypeEnum.PARALLEL;
+
+
+import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils;
+import org.apache.dolphinscheduler.common.utils.DateUtils;
+import org.apache.dolphinscheduler.common.utils.EncryptionUtils;
+import org.apache.dolphinscheduler.dao.entity.AccessToken;
+import org.apache.dolphinscheduler.dao.entity.Project;
+import org.apache.dolphinscheduler.dao.entity.User;
+import org.apache.dolphinscheduler.dao.mapper.AccessTokenMapper;
+import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
+import org.apache.dolphinscheduler.dao.mapper.UserMapper;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+
+@Component
+public class ProcessDefinitionDemo {
+
+    private static final Logger logger = LoggerFactory.getLogger(ProcessDefinitionDemo.class);
+
+    @Value("${create-demo.tenant-code}")
+    private String tenantCode;
+
+    @Autowired
+    private ProjectMapper projectMapper;
+
+    @Autowired
+    private UserMapper userMapper;
+
+    @Autowired
+    private AccessTokenMapper accessTokenMapper;
+
+    @Autowired
+    private ProxyProcessDefinitionController proxyProcessDefinitionController;
+
+    public void createProcessDefinitionDemo(){
+        //get user
+        User loginUser = userMapper.selectById("1");
+        Date now = new Date();
+
+        //create demo tenantCode
+        CreateDemoTenant createDemoTenant = new CreateDemoTenant();
+        createDemoTenant.createTenantCode(tenantCode);
+
+        //create and get demo projectCode
+        Project project = projectMapper.queryByName("demo");
+        try {
+            project = Project
+                    .newBuilder()
+                    .name("demo")
+                    .code(CodeGenerateUtils.getInstance().genCode())
+                    .description("")
+                    .userId(loginUser.getId())
+                    .userName(loginUser.getUserName())
+                    .createTime(now)
+                    .updateTime(now)
+                    .build();
+        } catch (CodeGenerateUtils.CodeGenerateException e) {
+            logger.info("create project error");

Review Comment:
   ```suggestion
               logger.error("create project error", e);
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org