diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue b/escheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue
index 3c08497b23..78883c6baf 100644
--- a/escheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue
+++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue
@@ -474,5 +474,5 @@
diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue
index b7875a6fde..e2d0a80b54 100644
--- a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue
+++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue
@@ -33,7 +33,7 @@
import disabledState from '@/module/mixin/disabledState'
export default {
- name: 'select-input',
+ name: 'form-select-input',
data () {
return {
isIconState: false,
diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/timeoutAlarm.vue b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/timeoutAlarm.vue
index 74e18b2efb..f2658d4c6e 100644
--- a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/timeoutAlarm.vue
+++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/timeoutAlarm.vue
@@ -46,7 +46,7 @@
import disabledState from '@/module/mixin/disabledState'
export default {
- name: 'timeout-alarm',
+ name: 'form-timeout-alarm',
data () {
return {
// Timeout display hiding
diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/workerGroups.vue b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/workerGroups.vue
new file mode 100644
index 0000000000..09f5363924
--- /dev/null
+++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/workerGroups.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.scss b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.scss
new file mode 100644
index 0000000000..49f0d9c630
--- /dev/null
+++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.scss
@@ -0,0 +1,109 @@
+.form-model-model {
+ width: 720px;
+ position: relative;
+ .title-box {
+ height: 61px;
+ border-bottom: 1px solid #DCDEDC;
+ position: relative;
+ .name {
+ position: absolute;
+ left: 24px;
+ top: 18px;
+ font-size: 16px;
+ }
+ .go-subtask {
+ position: absolute;
+ right: 30px;
+ top: 17px;
+ a {
+ font-size: 14px;
+ color: #0097e0;
+ margin-left: 10px;
+ i.iconfont {
+ font-size: 18px;
+ vertical-align: middle;
+ }
+ em {
+ color: #333;
+ vertical-align: middle;
+ font-style: normal;
+ vertical-align: middle;
+ padding-left: 2px;
+ }
+ &:hover {
+ em {
+ text-decoration: underline;
+ }
+ }
+ }
+ }
+ }
+ .bottom-box {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ text-align: right;
+ height: 60px;
+ line-height: 60px;
+ border-top: 1px solid #DCDEDC;
+ background: #fff;
+ .submit {
+ padding-right: 20px;
+ position: relative;
+ z-index: 9;
+ }
+ }
+ .content-box {
+ overflow-y: scroll;
+ height: calc(100vh - 61px);
+ padding-bottom: 60px;
+ }
+}
+.from-model {
+ padding-top: 26px;
+ >div {
+ clear: both;
+ }
+ .list {
+ position: relative;
+ margin-bottom: 10px;
+ .text-box {
+ width: 112px;
+ float: left;
+ text-align: right;
+ margin-right: 8px;
+ >span {
+ font-size: 14px;
+ color: #777;
+ display: inline-block;
+ padding-top: 6px;
+ }
+ }
+ .cont-box {
+ width: 580px;
+ float: left;
+ .label-box {
+ width: 100%;
+ }
+ .text-b {
+ font-size: 14px;
+ color: #777;
+ display: inline-block;
+ padding:0 6px 0 20px;
+ }
+ }
+ .add {
+ line-height: 32px;
+ a {
+ color: #0097e0;
+ }
+ }
+ &:hover {
+ }
+ .list-t {
+ width: 50%;
+ float: left;
+ }
+ }
+}
\ No newline at end of file
diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue
index 98d2234450..a0cdc36713 100644
--- a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue
+++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue
@@ -13,7 +13,6 @@
-
{{$t('Node name')}}
@@ -51,7 +50,6 @@
{{$t('Description')}}
-
-
+
+
+
+ Worker分组
+
@@ -178,15 +178,16 @@
import mShell from './tasks/shell'
import mSpark from './tasks/spark'
import mPython from './tasks/python'
- import { isNameExDag, rtBantpl } from './../plugIn/util'
import JSP from './../plugIn/jsPlumbHandle'
import mProcedure from './tasks/procedure'
import mDependent from './tasks/dependent'
import mSubProcess from './tasks/sub_process'
import mSelectInput from './_source/selectInput'
import mTimeoutAlarm from './_source/timeoutAlarm'
+ import mWorkerGroups from './_source/workerGroups'
import clickoutside from '@/module/util/clickoutside'
import disabledState from '@/module/mixin/disabledState'
+ import { isNameExDag, rtBantpl } from './../plugIn/util'
import mPriority from '@/module/components/priority/priority'
export default {
@@ -218,7 +219,9 @@
// Task timeout alarm
timeout: {},
// Task priority
- taskInstancePriority: 'MEDIUM'
+ taskInstancePriority: 'MEDIUM',
+ // worker group id
+ workerGroupId: null
}
},
/**
@@ -349,7 +352,8 @@
maxRetryTimes: this.maxRetryTimes,
retryInterval: this.retryInterval,
timeout: this.timeout,
- taskInstancePriority: this.taskInstancePriority
+ taskInstancePriority: this.taskInstancePriority,
+ workerGroupId: this.workerGroupId
},
fromThis: this
})
@@ -420,6 +424,7 @@
this.desc = o.desc
this.maxRetryTimes = o.maxRetryTimes
this.retryInterval = o.retryInterval
+ this.workerGroupId = o.workerGroupId
}
}
this.isContentBox = true
@@ -451,119 +456,12 @@
mDependent,
mSelectInput,
mTimeoutAlarm,
- mPriority
+ mPriority,
+ mWorkerGroups
}
}
diff --git a/escheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue b/escheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue
index c4ee4d79d9..e377ebfa7f 100644
--- a/escheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue
+++ b/escheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue
@@ -26,6 +26,7 @@
methods: {
...mapMutations('dag', ['resetParams', 'setIsDetails']),
...mapActions('dag', ['getProcessList', 'getResourcesList', 'getProcessDetails']),
+ ...mapActions('security', ['getWorkerGroupsAll']),
/**
* init
*/
@@ -40,7 +41,9 @@
// get process definition
this.getProcessList(),
// get resource
- this.getResourcesList()
+ this.getResourcesList(),
+ // get worker group list
+ this.getWorkerGroupsAll()
]).then((data) => {
let item = data[0]
this.setIsDetails(item.releaseState === 'ONLINE')
diff --git a/escheduler-ui/src/js/conf/home/pages/dag/index.vue b/escheduler-ui/src/js/conf/home/pages/dag/index.vue
index 6e2c0a2b23..b9aee791dd 100644
--- a/escheduler-ui/src/js/conf/home/pages/dag/index.vue
+++ b/escheduler-ui/src/js/conf/home/pages/dag/index.vue
@@ -25,6 +25,7 @@
methods: {
...mapMutations('dag', ['resetParams']),
...mapActions('dag', ['getProcessList', 'getResourcesList']),
+ ...mapActions('security', ['getWorkerGroupsAll']),
/**
* init
*/
@@ -37,7 +38,9 @@
// get process definition
this.getProcessList(),
// get resource
- this.getResourcesList()
+ this.getResourcesList(),
+ // get worker group list
+ this.getWorkerGroupsAll()
]).then((data) => {
this.isLoading = false
// Whether to pop up the box?
diff --git a/escheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue b/escheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue
index 49ca838237..3e6c49c1f6 100644
--- a/escheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue
+++ b/escheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue
@@ -26,6 +26,7 @@
methods: {
...mapMutations('dag', ['setIsDetails', 'resetParams']),
...mapActions('dag', ['getProcessList', 'getResourcesList', 'getInstancedetail']),
+ ...mapActions('security', ['getWorkerGroupsAll']),
/**
* init
*/
@@ -40,7 +41,9 @@
// get process definition
this.getProcessList(),
// get resources
- this.getResourcesList()
+ this.getResourcesList(),
+ // get worker group list
+ this.getWorkerGroupsAll()
]).then((data) => {
let item = data[0]
let flag = false
diff --git a/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/createWorker.vue b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/createWorker.vue
new file mode 100644
index 0000000000..ff3d20be24
--- /dev/null
+++ b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/createWorker.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+ *{{$t('Group Name')}}
+
+
+
+
+
+
+ IP
+
+
+
+
+ 注意:多个IP地址已逗号分割
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/list.vue b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/list.vue
new file mode 100644
index 0000000000..9597e0fa9a
--- /dev/null
+++ b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/list.vue
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+ {{$t('#')}}
+ |
+
+ 分组名称
+ |
+
+ IPList
+ |
+
+ {{$t('Create Time')}}
+ |
+
+ {{$t('Update Time')}}
+ |
+
+ {{$t('Operation')}}
+ |
+
+
+
+ {{parseInt(pageNo === 1 ? ($index + 1) : (($index + 1) + (pageSize * (pageNo - 1))))}}
+ |
+
+
+ {{item.name}}
+
+ |
+
+ {{item.ipList}}
+ |
+
+ {{item.createTime | formatDate}}
+ |
+ {{item.updateTime | formatDate}} |
+
+
+
+
+ {{$t('Delete?')}}
+
+ {{$t('Cancel')}}
+ {{$t('Confirm')}}
+
+
+
+
+
+
+ |
+
+
+
+
+
+
\ No newline at end of file
diff --git a/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/index.vue b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/index.vue
new file mode 100644
index 0000000000..d962b937c5
--- /dev/null
+++ b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/index.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+ 创建worker分组
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/escheduler-ui/src/js/conf/home/router/index.js b/escheduler-ui/src/js/conf/home/router/index.js
index 7dda210065..37e9d43c0d 100644
--- a/escheduler-ui/src/js/conf/home/router/index.js
+++ b/escheduler-ui/src/js/conf/home/router/index.js
@@ -317,6 +317,14 @@ const router = new Router({
meta: {
title: `${i18n.$t('Queue manage')}`
}
+ },
+ {
+ path: '/security/worker-groups',
+ name: 'worker-groups-manage',
+ component: resolve => require(['../pages/security/pages/workerGroups/index'], resolve),
+ meta: {
+ title: `workerGroups`
+ }
}
]
},
diff --git a/escheduler-ui/src/js/conf/home/store/security/actions.js b/escheduler-ui/src/js/conf/home/store/security/actions.js
index ac8ac20358..be0b1a2226 100644
--- a/escheduler-ui/src/js/conf/home/store/security/actions.js
+++ b/escheduler-ui/src/js/conf/home/store/security/actions.js
@@ -413,5 +413,48 @@ export default {
reject(e)
})
})
+ },
+ /**
+ * get worker groups
+ */
+ getWorkerGroups ({ state }, payload) {
+ return new Promise((resolve, reject) => {
+ io.get(`worker-group/list-paging`, payload, res => {
+ resolve(res.data)
+ }).catch(e => {
+ reject(e)
+ })
+ })
+ },
+ /**
+ * get worker groups all
+ */
+ getWorkerGroupsAll ({ state }, payload) {
+ return new Promise((resolve, reject) => {
+ io.get(`worker-group/all-groups`, payload, res => {
+ state.workerGroupsListAll = res.data
+ resolve(res.data)
+ }).catch(e => {
+ reject(e)
+ })
+ })
+ },
+ saveWorkerGroups ({ state }, payload) {
+ return new Promise((resolve, reject) => {
+ io.post(`worker-group/save`, payload, res => {
+ resolve(res)
+ }).catch(e => {
+ reject(e)
+ })
+ })
+ },
+ deleteWorkerGroups ({ state }, payload) {
+ return new Promise((resolve, reject) => {
+ io.get(`worker-group/delete-by-id`, payload, res => {
+ resolve(res)
+ }).catch(e => {
+ reject(e)
+ })
+ })
}
}
diff --git a/escheduler-ui/src/js/conf/home/store/security/state.js b/escheduler-ui/src/js/conf/home/store/security/state.js
index ddcb8e289d..be52d7838c 100644
--- a/escheduler-ui/src/js/conf/home/store/security/state.js
+++ b/escheduler-ui/src/js/conf/home/store/security/state.js
@@ -15,5 +15,5 @@
* limitations under the License.
*/
export default {
-
+ workerGroupsListAll: []
}
diff --git a/escheduler-ui/src/js/module/components/priority/priority.vue b/escheduler-ui/src/js/module/components/priority/priority.vue
index 1fd0f98be1..50473ec02c 100644
--- a/escheduler-ui/src/js/module/components/priority/priority.vue
+++ b/escheduler-ui/src/js/module/components/priority/priority.vue
@@ -91,6 +91,7 @@