Browse Source

Merge remote-tracking branch 'upstream/dev' into spilit

pull/3/MERGE
lenboo 4 years ago
parent
commit
f19b472eb8
  1. 4
      dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java
  2. 8
      dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/WorkerServer.java
  3. 90
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue
  4. 2
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/log.vue
  5. 11
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/jsPlumbHandle.js
  6. 2
      dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/_source/zookeeperList.vue
  7. 4
      dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue
  8. 6
      dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/_source/taskStatusCount.vue
  9. 18
      dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue
  10. 7
      dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/index.vue
  11. 2
      dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue
  12. 4
      dolphinscheduler-ui/src/js/module/components/secondaryMenu/_source/menu.js
  13. 3
      dolphinscheduler-ui/src/sass/common/index.scss

4
dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java

@ -106,8 +106,8 @@ public class AlertSender {
List<AlertPluginInstance> alertInstanceList = alertDao.listInstanceByAlertGroupId(alertGroupId); List<AlertPluginInstance> alertInstanceList = alertDao.listInstanceByAlertGroupId(alertGroupId);
AlertData alertData = new AlertData(); AlertData alertData = new AlertData();
alertData.setContent(title) alertData.setContent(content)
.setTitle(content); .setTitle(title);
boolean sendResponseStatus = true; boolean sendResponseStatus = true;
List<AlertSendResponseResult> sendResponseResults = new ArrayList<>(); List<AlertSendResponseResult> sendResponseResults = new ArrayList<>();

8
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/WorkerServer.java

@ -103,11 +103,14 @@ public class WorkerServer {
public void run() { public void run() {
logger.info("start worker server..."); logger.info("start worker server...");
//alert-server client registry
alertClientService = new AlertClientService(workerConfig.getAlertListenHost(),Constants.ALERT_RPC_PORT);
//init remoting server //init remoting server
NettyServerConfig serverConfig = new NettyServerConfig(); NettyServerConfig serverConfig = new NettyServerConfig();
serverConfig.setListenPort(workerConfig.getListenPort()); serverConfig.setListenPort(workerConfig.getListenPort());
this.nettyRemotingServer = new NettyRemotingServer(serverConfig); this.nettyRemotingServer = new NettyRemotingServer(serverConfig);
this.nettyRemotingServer.registerProcessor(CommandType.TASK_EXECUTE_REQUEST, new TaskExecuteProcessor()); this.nettyRemotingServer.registerProcessor(CommandType.TASK_EXECUTE_REQUEST, new TaskExecuteProcessor(alertClientService));
this.nettyRemotingServer.registerProcessor(CommandType.TASK_KILL_REQUEST, new TaskKillProcessor()); this.nettyRemotingServer.registerProcessor(CommandType.TASK_KILL_REQUEST, new TaskKillProcessor());
this.nettyRemotingServer.registerProcessor(CommandType.DB_TASK_ACK, new DBTaskAckProcessor()); this.nettyRemotingServer.registerProcessor(CommandType.DB_TASK_ACK, new DBTaskAckProcessor());
this.nettyRemotingServer.registerProcessor(CommandType.DB_TASK_RESPONSE, new DBTaskResponseProcessor()); this.nettyRemotingServer.registerProcessor(CommandType.DB_TASK_RESPONSE, new DBTaskResponseProcessor());
@ -116,9 +119,6 @@ public class WorkerServer {
// worker registry // worker registry
this.workerRegistry.registry(); this.workerRegistry.registry();
//alert-server client registry
alertClientService = new AlertClientService(workerConfig.getAlertListenHost(),Constants.ALERT_RPC_PORT);
// retry report task status // retry report task status
this.retryReportTaskStatusThread.start(); this.retryReportTaskStatusThread.start();

90
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue

@ -34,30 +34,30 @@
<div class="dag-contect"> <div class="dag-contect">
<div class="dag-toolbar"> <div class="dag-toolbar">
<div class="assist-btn"> <div class="assist-btn">
<el-button <el-tooltip :content="$t('View variables')" placement="top" :enterable="false">
style="vertical-align: middle;" <span>
data-toggle="tooltip"
:title="$t('View variables')"
data-container="body"
type="primary"
size="mini"
:disabled="$route.name !== 'projects-instance-details'"
@click="_toggleView"
icon="el-icon-c-scale-to-original">
</el-button>
<span>
<el-button <el-button
style="vertical-align: middle;" style="vertical-align: middle;"
data-toggle="tooltip"
:title="$t('Startup parameter')"
data-container="body"
type="primary" type="primary"
size="mini" size="mini"
:disabled="$route.name !== 'projects-instance-details'" :disabled="$route.name !== 'projects-instance-details'"
@click="_toggleParam" @click="_toggleView"
icon="el-icon-arrow-right"> icon="el-icon-c-scale-to-original">
</el-button> </el-button>
</span> </span>
</el-tooltip>
<el-tooltip :content="$t('Startup parameter')" placement="top" :enterable="false">
<span>
<el-button
style="vertical-align: middle;"
type="primary"
size="mini"
:disabled="$route.name !== 'projects-instance-details'"
@click="_toggleParam"
icon="el-icon-arrow-right">
</el-button>
</span>
</el-tooltip>
<span class="name">{{name}}</span> <span class="name">{{name}}</span>
&nbsp; &nbsp;
<span v-if="name" class="copy-name" @click="_copyName" :data-clipboard-text="name"><em class="el-icon-copy-document" data-container="body" data-toggle="tooltip" :title="$t('Copy name')" ></em></span> <span v-if="name" class="copy-name" @click="_copyName" :data-clipboard-text="name"><em class="el-icon-copy-document" data-container="body" data-toggle="tooltip" :title="$t('Copy name')" ></em></span>
@ -70,32 +70,36 @@
:id="item.code" :id="item.code"
:key="$index" :key="$index"
@click="_ckOperation(item,$event)"> @click="_ckOperation(item,$event)">
<el-button type="text" class="operBtn" data-container="body" :icon="item.icon" v-tooltip.light="item.desc"></el-button> <el-tooltip :content="item.desc" placement="top" :enterable="false">
<span><el-button type="text" class="operBtn" :icon="item.icon"></el-button></span>
</el-tooltip>
</a> </a>
</div> </div>
<el-button <el-tooltip :content="$t('Format DAG')" placement="top" :enterable="false">
type="primary" <span>
v-tooltip.light="$t('Format DAG')" <el-button
icon="el-icon-caret-right" type="primary"
size="mini" icon="el-icon-caret-right"
data-container="body" size="mini"
v-if="(type === 'instance' || 'definition') && urlParam.id !=undefined" v-if="(type === 'instance' || 'definition') && urlParam.id !=undefined"
style="vertical-align: middle;" style="vertical-align: middle;"
@click="dagAutomaticLayout"> @click="dagAutomaticLayout">
</el-button> </el-button>
<span> </span>
<el-button </el-tooltip>
v-tooltip.light="$t('Refresh DAG status')" <el-tooltip :content="$t('Refresh DAG status')" placement="top" :enterable="false">
data-container="body" <span>
style="vertical-align: middle;" <el-button
icon="el-icon-refresh" style="vertical-align: middle;"
type="primary" icon="el-icon-refresh"
:loading="isRefresh" type="primary"
v-if="type === 'instance'" :loading="isRefresh"
@click="!isRefresh && _refresh()" v-if="type === 'instance'"
size="mini" > @click="!isRefresh && _refresh()"
</el-button> size="mini" >
</span> </el-button>
</span>
</el-tooltip>
<el-button <el-button
v-if="isRtTasks" v-if="isRtTasks"
style="vertical-align: middle;" style="vertical-align: middle;"
@ -108,10 +112,8 @@
<span> <span>
<el-button <el-button
type="primary" type="primary"
v-tooltip.light="$t('Close')"
icon="el-icon-switch-button" icon="el-icon-switch-button"
size="mini" size="mini"
data-container="body"
v-if="(type === 'instance' || 'definition') " v-if="(type === 'instance' || 'definition') "
style="vertical-align: middle;" style="vertical-align: middle;"
@click="_closeDAG"> @click="_closeDAG">

2
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/log.vue

@ -38,7 +38,7 @@
<em class="el-icon-full-screen"></em> <em class="el-icon-full-screen"></em>
</a> </a>
<a href="javascript:" @click="_screenClose" v-show="isScreen" data-container="body" data-toggle="tooltip" :title="$t('Cancel full screen')"> <a href="javascript:" @click="_screenClose" v-show="isScreen" data-container="body" data-toggle="tooltip" :title="$t('Cancel full screen')">
<em class="el-icon-minus"></em> <em class="el-icon-aim"></em>
</a> </a>
</div> </div>
</div> </div>

11
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/jsPlumbHandle.js

@ -573,7 +573,7 @@ JSP.prototype.copyNodes = function ($id) {
JSP.prototype.handleEventScreen = function ({ item, is }) { JSP.prototype.handleEventScreen = function ({ item, is }) {
let screenOpen = true let screenOpen = true
if (is) { if (is) {
item.icon = 'el-icon-minus' item.icon = 'el-icon-aim'
screenOpen = true screenOpen = true
} else { } else {
item.icon = 'el-icon-full-screen' item.icon = 'el-icon-full-screen'
@ -627,6 +627,7 @@ JSP.prototype.saveStore = function () {
tasks.push(tasksParam) tasks.push(tasksParam)
} }
}) })
if (store.state.dag.connects.length === this.JspInstance.getConnections().length) { if (store.state.dag.connects.length === this.JspInstance.getConnections().length) {
_.map(store.state.dag.connects, u => { _.map(store.state.dag.connects, u => {
connects.push({ connects.push({
@ -658,6 +659,14 @@ JSP.prototype.saveStore = function () {
label: v._jsPlumb.overlays.label.canvas.innerText label: v._jsPlumb.overlays.label.canvas.innerText
}) })
}) })
} else if (store.state.dag.connects.length > this.JspInstance.getConnections().length) {
_.map(this.JspInstance.getConnections(), v => {
connects.push({
endPointSourceId: v.sourceId,
endPointTargetId: v.targetId,
label: v._jsPlumb.overlays.label.canvas.innerText
})
})
} }
_.map(tasksAll(), v => { _.map(tasksAll(), v => {

2
dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/_source/zookeeperList.vue

@ -24,7 +24,7 @@
<el-table-column prop="watches" :label="'watches'+$t('Number')"></el-table-column> <el-table-column prop="watches" :label="'watches'+$t('Number')"></el-table-column>
<el-table-column prop="sent" :label="$t('Sent')"></el-table-column> <el-table-column prop="sent" :label="$t('Sent')"></el-table-column>
<el-table-column prop="received" :label="$t('Received')"></el-table-column> <el-table-column prop="received" :label="$t('Received')"></el-table-column>
<el-table-column prop="mode" label="leader/follower"></el-table-column> <el-table-column prop="mode" label="leader/follower" min-width="100"></el-table-column>
<el-table-column prop="minLatency" :label="$t('Min latency')"></el-table-column> <el-table-column prop="minLatency" :label="$t('Min latency')"></el-table-column>
<el-table-column prop="avgLatency" :label="$t('Avg latency')"></el-table-column> <el-table-column prop="avgLatency" :label="$t('Avg latency')"></el-table-column>
<el-table-column prop="maxLatency" :label="$t('Max latency')"></el-table-column> <el-table-column prop="maxLatency" :label="$t('Max latency')"></el-table-column>

4
dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue

@ -25,8 +25,8 @@
<el-popover trigger="hover" placement="top"> <el-popover trigger="hover" placement="top">
<p>{{ scope.row.name }}</p> <p>{{ scope.row.name }}</p>
<div slot="reference" class="name-wrapper"> <div slot="reference" class="name-wrapper">
<router-link :to="{ path: '/projects/definition/list/' + scope.row.id}" tag="a" class="links" :title="scope.row.name"> <router-link :to="{ path: '/projects/definition/list/' + scope.row.id}" tag="a" class="links">
{{scope.row.name}} <span class="ellipsis">{{scope.row.name}}</span>
</router-link> </router-link>
</div> </div>
</el-popover> </el-popover>

6
dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/_source/taskStatusCount.vue

@ -139,9 +139,3 @@
components: { mNoData } components: { mNoData }
} }
</script> </script>
<style lang="scss" rel="stylesheet/scss">
.task-status-count-model {
}
</style>

18
dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue

@ -25,7 +25,7 @@
<el-popover trigger="hover" placement="top"> <el-popover trigger="hover" placement="top">
<p>{{ scope.row.name }}</p> <p>{{ scope.row.name }}</p>
<div slot="reference" class="name-wrapper"> <div slot="reference" class="name-wrapper">
<router-link :to="{ path: '/projects/instance/list/' + scope.row.id , query:{id: scope.row.processDefinitionId}}" tag="a" class="links" :title="scope.row.name">{{scope.row.name}}</router-link> <router-link :to="{ path: '/projects/instance/list/' + scope.row.id , query:{id: scope.row.processDefinitionId}}" tag="a" class="links"><span class="ellipsis">{{ scope.row.name }}</span></router-link>
</div> </div>
</el-popover> </el-popover>
</template> </template>
@ -78,10 +78,10 @@
</span> </span>
</el-tooltip> </el-tooltip>
<el-tooltip :content="scope.row.state === 'STOP' ? $t('Recovery Suspend') : $t('Stop')" placement="top" :enterable="false"> <el-tooltip :content="scope.row.state === 'STOP' ? $t('Recovery Suspend') : $t('Stop')" placement="top" :enterable="false">
<span><el-button type="warning" size="mini" :disabled="scope.row.state !== 'RUNNING_EXECUTION' && scope.row.state !== 'STOP'" :icon="scope.row.state === 'STOP' ? 'el-icon-video-play' : 'el-icon-close'" @click="_stop(scope.row,scope.$index)" circle></el-button></span> <span><el-button type="danger" size="mini" :disabled="scope.row.state !== 'RUNNING_EXECUTION' && scope.row.state !== 'STOP'" :icon="scope.row.state === 'STOP' ? 'el-icon-video-play' : 'el-icon-close'" @click="_stop(scope.row,scope.$index)" circle></el-button></span>
</el-tooltip> </el-tooltip>
<el-tooltip :content="scope.row.state === 'PAUSE' ? $t('Recovery Suspend') : $t('Pause')" placement="top" :enterable="false"> <el-tooltip :content="scope.row.state === 'PAUSE' ? $t('Recovery Suspend') : $t('Pause')" placement="top" :enterable="false">
<span><el-button type="error" size="mini" :icon="scope.row.state === 'PAUSE' ? 'el-icon-video-play' : 'el-icon-video-pause'" :disabled="scope.row.state !== 'RUNNING_EXECUTION' && scope.row.state !== 'PAUSE'" @click="_suspend(scope.row,scope.$index)" circle></el-button></span> <span><el-button type="warning" size="mini" :icon="scope.row.state === 'PAUSE' ? 'el-icon-video-play' : 'el-icon-video-pause'" :disabled="scope.row.state !== 'RUNNING_EXECUTION' && scope.row.state !== 'PAUSE'" @click="_suspend(scope.row,scope.$index)" circle></el-button></span>
</el-tooltip> </el-tooltip>
<el-tooltip :content="$t('delete')" placement="top" :enterable="false"> <el-tooltip :content="$t('delete')" placement="top" :enterable="false">
<el-popconfirm <el-popconfirm
@ -437,18 +437,6 @@
}) })
this._arrDelChange() this._arrDelChange()
}, },
// _arrDelChange (v) {
// let arr = []
// this.list.forEach((item)=>{
// if (item.isCheck) {
// arr.push(item.id)
// }
// })
// this.strDelete = _.join(arr, ',')
// if (v === false) {
// this.checkAll = false
// }
// },
_arrDelChange (v) { _arrDelChange (v) {
let arr = [] let arr = []
arr = _.map(v, 'id') arr = _.map(v, 'id')

7
dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/index.vue

@ -18,7 +18,7 @@
<div class="wrap-table"> <div class="wrap-table">
<m-list-construction :title="$t('Process Instance')"> <m-list-construction :title="$t('Process Instance')">
<template slot="conditions"> <template slot="conditions">
<m-instance-conditions @on-query="_onQuery"></m-instance-conditions> <m-instance-conditions class="searchNav" @on-query="_onQuery"></m-instance-conditions>
</template> </template>
<template slot="content"> <template slot="content">
<template v-if="processInstanceList.length || total>0"> <template v-if="processInstanceList.length || total>0">
@ -223,4 +223,9 @@
} }
} }
} }
@media screen and (max-width: 1246px) {
.searchNav {
margin-bottom: 30px;
}
}
</style> </style>

2
dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue

@ -25,7 +25,7 @@
<el-popover trigger="hover" placement="top"> <el-popover trigger="hover" placement="top">
<p>{{ scope.row.processInstanceName }}</p> <p>{{ scope.row.processInstanceName }}</p>
<div slot="reference" class="name-wrapper"> <div slot="reference" class="name-wrapper">
<a href="javascript:" class="links" @click="_go(scope.row)"><span class="ellipsis" :title="scope.row.processInstanceName">{{scope.row.processInstanceName}}</span></a> <a href="javascript:" class="links" @click="_go(scope.row)"><span class="ellipsis">{{scope.row.processInstanceName}}</span></a>
</div> </div>
</el-popover> </el-popover>
</template> </template>

4
dolphinscheduler-ui/src/js/module/components/secondaryMenu/_source/menu.js

@ -115,7 +115,7 @@ const menu = {
path: 'warning-instance-manage', path: 'warning-instance-manage',
isOpen: true, isOpen: true,
enabled: true, enabled: true,
icon: 'ri-spam-fill', icon: 'el-icon-warning-outline',
children: [] children: []
}, },
{ {
@ -133,7 +133,7 @@ const menu = {
path: 'queue-manage', path: 'queue-manage',
isOpen: true, isOpen: true,
enabled: true, enabled: true,
icon: 'ri-group-line', icon: 'el-icon-s-grid',
children: [] children: []
}, },
{ {

3
dolphinscheduler-ui/src/sass/common/index.scss

@ -102,6 +102,9 @@ body{
} }
.main-layout-model { .main-layout-model {
&.dag-screen { &.dag-screen {
.m-top {
position: unset;
}
.m-bottom { .m-bottom {
z-index: 2; z-index: 2;
} }

Loading…
Cancel
Save