This is an automated email from the ASF dual-hosted git repository.

chufenggao pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 35bb533a50 [Improvement][Task Plugin] Integrate zeppelin password 
authentication with DS zeppelin task plugin (#13861)
35bb533a50 is described below

commit 35bb533a501a826133d84b5469769345bec008b3
Author: zzm <[email protected]>
AuthorDate: Tue Apr 18 12:18:51 2023 +0800

    [Improvement][Task Plugin] Integrate zeppelin password authentication with 
DS zeppelin task plugin (#13861)
    
    
    ---------
    
    Co-authored-by: Eric Gao <[email protected]>
---
 docs/docs/en/guide/task/zeppelin.md                      |  6 +++++-
 docs/docs/zh/guide/task/zeppelin.md                      |  2 ++
 .../plugin/task/zeppelin/ZeppelinParameters.java         |  2 ++
 .../plugin/task/zeppelin/ZeppelinTask.java               | 12 ++++++++++++
 dolphinscheduler-ui/src/locales/en_US/project.ts         |  4 ++++
 dolphinscheduler-ui/src/locales/zh_CN/project.ts         |  4 ++++
 .../projects/task/components/node/fields/use-zeppelin.ts | 16 ++++++++++++++++
 .../views/projects/task/components/node/format-data.ts   |  2 ++
 .../src/views/projects/task/components/node/types.ts     |  4 ++++
 9 files changed, 51 insertions(+), 1 deletion(-)

diff --git a/docs/docs/en/guide/task/zeppelin.md 
b/docs/docs/en/guide/task/zeppelin.md
index 81168221c1..589be18b7e 100644
--- a/docs/docs/en/guide/task/zeppelin.md
+++ b/docs/docs/en/guide/task/zeppelin.md
@@ -22,7 +22,11 @@ it will call `Zeppelin Client API` to trigger zeppelin 
notebook paragraph. Click
 | Zeppelin Note ID                   | The unique note id for a zeppelin 
notebook note.                                                                  
                 |
 | Zeppelin Paragraph ID              | The unique paragraph id for a zeppelin 
notebook paragraph. If you want to schedule a whole note at a time, leave this 
field blank. |
 | Zeppelin Production Note Directory | The directory for cloned note in 
production mode.                                                                
                  |
-| Zeppelin Rest Endpoint             | The REST endpoint of your zeppelin 
server                                                                          
                |
+| Zeppelin username                  | the login username of your zeppelin 
server .                                                                        
               |
+|                                    |
+| Zeppelin password                  | the login password of your zeppelin 
server .                                                                        
               |
+|                                    |
+| Zeppelin Rest Endpoint             | The REST endpoint of your zeppelin 
server .                                                                        
                |
 | Zeppelin Parameters                | Parameters in json format used for 
zeppelin dynamic form.                                                          
                |
 
 ## Production (Clone) Mode
diff --git a/docs/docs/zh/guide/task/zeppelin.md 
b/docs/docs/zh/guide/task/zeppelin.md
index b63189f495..579f1a7427 100644
--- a/docs/docs/zh/guide/task/zeppelin.md
+++ b/docs/docs/zh/guide/task/zeppelin.md
@@ -22,6 +22,8 @@
 | Zeppelin Note ID                   | Zeppelin Note对应的唯一ID                    
          |
 | Zeppelin Paragraph ID              | Zeppelin 
Paragraph对应的唯一ID。如果你想一次性调度整个note,这一栏不填即可 |
 | Zeppelin Rest Endpoint             | 您的Zeppelin服务的REST Endpoint              
          |
+| Zeppelin username                  | 您的Zeppelin服务的登陆用户名                      
          |
+| Zeppelin password                  | 您的Zeppelin服务的登陆密码                       
          |
 | Zeppelin Production Note Directory | 生产模式下存放克隆note的目录                        
          |
 | Zeppelin Parameters                | 用于传入Zeppelin Dynamic Form的参数            
          |
 
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-zeppelin/src/main/java/org/apache/dolphinscheduler/plugin/task/zeppelin/ZeppelinParameters.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-zeppelin/src/main/java/org/apache/dolphinscheduler/plugin/task/zeppelin/ZeppelinParameters.java
index d35990cb36..8b1c1a341d 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-zeppelin/src/main/java/org/apache/dolphinscheduler/plugin/task/zeppelin/ZeppelinParameters.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-zeppelin/src/main/java/org/apache/dolphinscheduler/plugin/task/zeppelin/ZeppelinParameters.java
@@ -43,6 +43,8 @@ public class ZeppelinParameters extends AbstractParameters {
     private String restEndpoint;
     private String productionNoteDirectory;
     private String parameters;
+    private String username;
+    private String password;
 
     @Override
     public boolean checkParameters() {
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-zeppelin/src/main/java/org/apache/dolphinscheduler/plugin/task/zeppelin/ZeppelinTask.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-zeppelin/src/main/java/org/apache/dolphinscheduler/plugin/task/zeppelin/ZeppelinTask.java
index 993d3ca577..0f25527c08 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-zeppelin/src/main/java/org/apache/dolphinscheduler/plugin/task/zeppelin/ZeppelinTask.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-zeppelin/src/main/java/org/apache/dolphinscheduler/plugin/task/zeppelin/ZeppelinTask.java
@@ -26,6 +26,7 @@ import 
org.apache.dolphinscheduler.plugin.task.api.TaskException;
 import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
 import 
org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.zeppelin.client.ClientConfig;
 import org.apache.zeppelin.client.NoteResult;
 import org.apache.zeppelin.client.ParagraphResult;
@@ -79,10 +80,21 @@ public class ZeppelinTask extends AbstractRemoteTask {
         this.zClient = getZeppelinClient();
     }
 
+    public boolean login() throws Exception {
+        String username = this.zeppelinParameters.getUsername();
+        String password = this.zeppelinParameters.getPassword();
+        if (StringUtils.isNotBlank(username) && 
StringUtils.isNotBlank(password)) {
+            this.zClient.login(username, password);
+            log.info("username : {}  login  success ", username);
+        }
+        return true;
+    }
+
     // todo split handle to submit and track
     @Override
     public void handle(TaskCallBack taskCallBack) throws TaskException {
         try {
+            login();
             final String paragraphId = 
this.zeppelinParameters.getParagraphId();
             final String productionNoteDirectory = 
this.zeppelinParameters.getProductionNoteDirectory();
             final String parameters = this.zeppelinParameters.getParameters();
diff --git a/dolphinscheduler-ui/src/locales/en_US/project.ts 
b/dolphinscheduler-ui/src/locales/en_US/project.ts
index 3ee2cef106..7c7b85557e 100644
--- a/dolphinscheduler-ui/src/locales/en_US/project.ts
+++ b/dolphinscheduler-ui/src/locales/en_US/project.ts
@@ -680,6 +680,10 @@ export default {
       'Directory for cloned zeppelin note in production mode',
     zeppelin_production_note_directory_tips:
       'Please enter the production note directory to enable production mode',
+    zeppelin_username: 'zeppelinUsername',
+    zeppelin_username_tips: 'Please enter the zeppelin server username',
+    zeppelin_password: 'zeppelinPassword',
+    zeppelin_password_tips: 'Please enter the zeppelin server password',  
     hive_cli_task_execution_type: 'Hive Cli Task Execution Type',
     hive_sql_script: 'Hive SQL Script',
     hive_cli_options: 'Hive Cli Options',
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/project.ts 
b/dolphinscheduler-ui/src/locales/zh_CN/project.ts
index 1d5224022b..400e370214 100644
--- a/dolphinscheduler-ui/src/locales/zh_CN/project.ts
+++ b/dolphinscheduler-ui/src/locales/zh_CN/project.ts
@@ -668,6 +668,10 @@ export default {
     zeppelin_parameters_tips: '请输入zeppelin dynamic form参数',
     zeppelin_rest_endpoint: 'zeppelinRestEndpoint',
     zeppelin_rest_endpoint_tips: '请输入zeppelin server的rest endpoint',
+    zeppelin_username: 'zeppelinUsername',
+    zeppelin_username_tips: '请输入zeppelin server的登陆用户名',
+    zeppelin_password: 'zeppelinPassword',
+    zeppelin_password_tips: '请输入zeppelin server的登陆密码',
     hive_cli_task_execution_type: 'Hive Cli 任务类型',
     hive_sql_script: 'Hive SQL 脚本',
     hive_cli_options: 'Hive Cli 选项',
diff --git 
a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-zeppelin.ts
 
b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-zeppelin.ts
index 540b2a0934..a643e1a4bc 100644
--- 
a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-zeppelin.ts
+++ 
b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-zeppelin.ts
@@ -72,6 +72,22 @@ export function useZeppelin(model: { [field: string]: any 
}): IJsonItem[] {
         placeholder: t('project.node.zeppelin_production_note_directory_tips')
       }
     },
+    {
+      type: 'input',
+      field: 'username',
+      name: t('project.node.zeppelin_username'),
+      props: {
+        placeholder: t('project.node.zeppelin_username_tips')
+      }
+    },
+    {
+      type: 'input',
+      field: 'password',
+      name: t('project.node.zeppelin_password'),
+      props: {
+        placeholder:  t('project.node.zeppelin_password_tips')
+      }
+    },
     {
       type: 'input',
       field: 'parameters',
diff --git 
a/dolphinscheduler-ui/src/views/projects/task/components/node/format-data.ts 
b/dolphinscheduler-ui/src/views/projects/task/components/node/format-data.ts
index 8b54dc03e4..09f6114c5e 100644
--- a/dolphinscheduler-ui/src/views/projects/task/components/node/format-data.ts
+++ b/dolphinscheduler-ui/src/views/projects/task/components/node/format-data.ts
@@ -334,6 +334,8 @@ export function formatParams(data: INodeData): {
     taskParams.noteId = data.noteId
     taskParams.paragraphId = data.paragraphId
     taskParams.restEndpoint = data.restEndpoint
+    taskParams.username = data.username
+    taskParams.password = data.password
     taskParams.productionNoteDirectory = data.productionNoteDirectory
     taskParams.parameters = data.parameters
   }
diff --git 
a/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts 
b/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts
index fbfd819a35..42c70535b1 100644
--- a/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts
+++ b/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts
@@ -320,6 +320,10 @@ interface ITaskParams {
   zeppelinParagraphId?: string
   zeppelinRestEndpoint?: string
   restEndpoint?: string
+  zeppelinUsername?: string
+  username?: string
+  zeppelinPassword?: string
+  password?: string
   zeppelinProductionNoteDirectory?: string
   productionNoteDirectory?: string
   hiveCliOptions?: string

Reply via email to