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