Browse Source

add input cache for sqoop and conditions tasks (#2118)

Co-authored-by: zhukai <zhukai@ygsoft.com>
pull/3/MERGE
zhukai 5 years ago committed by gaojun2048
parent
commit
c044caebf2
  1. 12
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue
  2. 10
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/datasource.vue
  3. 21
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/conditions.vue
  4. 71
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sqoop.vue

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

@ -252,6 +252,7 @@
v-if="taskType === 'CONDITIONS'" v-if="taskType === 'CONDITIONS'"
ref="CONDITIONS" ref="CONDITIONS"
@on-dependent="_onDependent" @on-dependent="_onDependent"
@on-cache-dependent="_onCacheDependent"
:backfill-item="backfillItem" :backfill-item="backfillItem"
:pre-node="preNode"> :pre-node="preNode">
</m-conditions> </m-conditions>
@ -438,6 +439,8 @@
}, },
_cacheItem () { _cacheItem () {
this.conditionResult.successNode[0] = this.successBranch
this.conditionResult.failedNode[0] = this.failedBranch
this.$emit('cacheTaskInfo', { this.$emit('cacheTaskInfo', {
item: { item: {
type: this.taskType, type: this.taskType,
@ -446,12 +449,15 @@
params: this.params, params: this.params,
description: this.description, description: this.description,
runFlag: this.runFlag, runFlag: this.runFlag,
conditionResult: this.conditionResult,
dependence: this.cacheDependence, dependence: this.cacheDependence,
maxRetryTimes: this.maxRetryTimes, maxRetryTimes: this.maxRetryTimes,
retryInterval: this.retryInterval, retryInterval: this.retryInterval,
timeout: this.timeout, timeout: this.timeout,
taskInstancePriority: this.taskInstancePriority, taskInstancePriority: this.taskInstancePriority,
workerGroupId: this.workerGroupId workerGroupId: this.workerGroupId,
status: this.status,
branch: this.branch
}, },
fromThis: this fromThis: this
}) })
@ -657,7 +663,9 @@
retryInterval: this.retryInterval, retryInterval: this.retryInterval,
timeout: this.timeout, timeout: this.timeout,
taskInstancePriority: this.taskInstancePriority, taskInstancePriority: this.taskInstancePriority,
workerGroupId: this.workerGroupId workerGroupId: this.workerGroupId,
successBranch: this.successBranch,
failedBranch: this.failedBranch
} }
} }
}, },

10
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/datasource.vue

@ -122,8 +122,11 @@
}, },
// Watch the cacheParams // Watch the cacheParams
watch: { watch: {
cacheParams (val) { datasource (val) {
this.$emit('on-dsData', val); this.$emit('on-dsData', {
type: this.type,
datasource: val
});
} }
}, },
created () { created () {
@ -150,7 +153,8 @@
}) })
} }
this.$emit('on-dsData', { this.$emit('on-dsData', {
type: this.type type: this.type,
datasource: this.datasource
}) })
}) })
}, },

21
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/conditions.vue

@ -19,7 +19,7 @@
<m-list-box> <m-list-box>
<div slot="text">{{$t('Custom Parameters')}}</div> <div slot="text">{{$t('Custom Parameters')}}</div>
<div slot="content"> <div slot="content">
<div class="dep-opt"> <div class="dep-opt">
<a href="javascript:" <a href="javascript:"
@click="!isDetails && _addDep()" @click="!isDetails && _addDep()"
class="add-dep"> class="add-dep">
@ -133,6 +133,9 @@
setTimeout(() => { setTimeout(() => {
this.isLoading = false this.isLoading = false
}, 600) }, 600)
},
cacheDependence (val) {
this.$emit('on-cache-dependent', val)
} }
}, },
beforeCreate () { beforeCreate () {
@ -153,7 +156,19 @@
}, },
destroyed () { destroyed () {
}, },
computed: {}, computed: {
cacheDependence () {
return {
relation: this.relation,
dependTaskList: _.map(this.dependTaskList, v => {
return {
relation: v.relation,
dependItemList: _.map(v.dependItemList, v1 => _.omit(v1, ['depTasksList', 'state', 'dateValueList']))
}
})
}
}
},
components: { mListBox, mNodeStatus } components: { mListBox, mNodeStatus }
} }
</script> </script>
@ -257,4 +272,4 @@
} }
} }
} }
</style> </style>

71
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sqoop.vue

@ -65,7 +65,7 @@
<m-datasource <m-datasource
ref="refSourceDs" ref="refSourceDs"
@on-dsData="_onSourceDsData" @on-dsData="_onSourceDsData"
:data="{ type:'MYSQL',datasource:srcDatasource }" :data="{ type:sourceMysqlParams.srcType,datasource:sourceMysqlParams.srcDatasource }"
> >
</m-datasource> </m-datasource>
</div> </div>
@ -186,8 +186,8 @@
<div slot="content"> <div slot="content">
<div class="from-mirror"> <div class="from-mirror">
<textarea <textarea
id="code-sql-mirror" id="code-sqoop-mirror"
name="code-sql-mirror" name="code-sqoop-mirror"
style="opacity: 0;"> style="opacity: 0;">
</textarea> </textarea>
</div> </div>
@ -385,7 +385,7 @@
<m-datasource <m-datasource
ref="refTargetDs" ref="refTargetDs"
@on-dsData="_onTargetDsData" @on-dsData="_onTargetDsData"
:data="{ type:type,datasource:targetDatasource }" :data="{ type:targetMysqlParams.targetType,datasource:targetMysqlParams.targetDatasource }"
> >
</m-datasource> </m-datasource>
</div> </div>
@ -556,7 +556,8 @@
targetType:"HDFS", targetType:"HDFS",
sourceMysqlParams:{ sourceMysqlParams:{
srcDatasource:-1, srcType:"MYSQL",
srcDatasource:"",
srcTable:"", srcTable:"",
srcQueryType:"1", srcQueryType:"1",
srcQuerySql:'', srcQuerySql:'',
@ -588,7 +589,8 @@
}, },
targetMysqlParams:{ targetMysqlParams:{
targetDatasource:-1, targetType:"MYSQL",
targetDatasource:"",
targetTable:"", targetTable:"",
targetColumns:"", targetColumns:"",
fieldsTerminated:"", fieldsTerminated:"",
@ -680,6 +682,7 @@
* return data source * return data source
*/ */
_onSourceDsData (o) { _onSourceDsData (o) {
this.sourceMysqlParams.srcType = o.type
this.sourceMysqlParams.srcDatasource = o.datasource this.sourceMysqlParams.srcDatasource = o.datasource
}, },
@ -687,6 +690,7 @@
* return data source * return data source
*/ */
_onTargetDsData (o) { _onTargetDsData (o) {
this.targetMysqlParams.targetType = o.type
this.targetMysqlParams.targetDatasource = o.datasource this.targetMysqlParams.targetDatasource = o.datasource
}, },
@ -697,7 +701,7 @@
var params = null var params = null
switch(this.sourceType){ switch(this.sourceType){
case "MYSQL": case "MYSQL":
this.sourceMysqlParams.srcQuerySql = editor.getValue() this.sourceMysqlParams.srcQuerySql = editor ? editor.getValue() : this.sourceMysqlParams.srcQuerySql
params = JSON.stringify(this.sourceMysqlParams) params = JSON.stringify(this.sourceMysqlParams)
break; break;
case "ORACLE": case "ORACLE":
@ -879,7 +883,9 @@
* Processing code highlighting * Processing code highlighting
*/ */
_handlerEditor () { _handlerEditor () {
editor = codemirror('code-sql-mirror', { this._destroyEditor()
editor = codemirror('code-sqoop-mirror', {
mode: 'sql', mode: 'sql',
readOnly: this.isDetails readOnly: this.isDetails
}) })
@ -892,9 +898,15 @@
} }
} }
this.changes = () => {
this._cacheParams()
}
// Monitor keyboard // Monitor keyboard
editor.on('keypress', this.keypress) editor.on('keypress', this.keypress)
editor.on('changes', this.changes)
editor.setValue(this.sourceMysqlParams.srcQuerySql) editor.setValue(this.sourceMysqlParams.srcQuerySql)
return editor return editor
@ -906,6 +918,27 @@
_onLocalParams (a) { _onLocalParams (a) {
this.localParams = a this.localParams = a
}, },
_cacheParams () {
this.$emit('on-cache-params', {
concurrency:this.concurrency,
modelType:this.modelType,
sourceType:this.sourceType,
targetType:this.targetType,
sourceParams:this._handleSourceParams(),
targetParams:this._handleTargetParams(),
localParams:this.localParams
});
},
_destroyEditor () {
if (editor) {
editor.toTextArea() // Uninstall
editor.off($('.code-sqoop-mirror'), 'keypress', this.keypress)
editor.off($('.code-sqoop-mirror'), 'changes', this.changes)
editor = null
}
},
}, },
watch: { watch: {
// Listening to sqlType // Listening to sqlType
@ -927,11 +960,12 @@
}, },
//Watch the cacheParams //Watch the cacheParams
cacheParams (val) { cacheParams (val) {
this.$emit('on-cache-params', val); this._cacheParams()
} }
}, },
created () { created () {
this._destroyEditor()
let o = this.backfillItem let o = this.backfillItem
// Non-null objects represent backfill // Non-null objects represent backfill
@ -963,11 +997,28 @@
*/ */
if (editor) { if (editor) {
editor.toTextArea() // Uninstall editor.toTextArea() // Uninstall
editor.off($('.code-sql-mirror'), 'keypress', this.keypress) editor.off($('.code-sqoop-mirror'), 'keypress', this.keypress)
editor.off($('.code-sqoop-mirror'), 'changes', this.changes)
editor = null
} }
}, },
computed: { computed: {
cacheParams () {
return {
concurrency:this.concurrency,
modelType:this.modelType,
sourceType:this.sourceType,
targetType:this.targetType,
localParams:this.localParams,
sourceMysqlParams:this.sourceMysqlParams,
sourceHdfsParams:this.sourceHdfsParams,
sourceHiveParams:this.sourceHiveParams,
targetHdfsParams:this.targetHdfsParams,
targetMysqlParams:this.targetMysqlParams,
targetHiveParams:this.targetHiveParams
}
}
}, },
components: { mListBox, mDatasource, mLocalParams} components: { mListBox, mDatasource, mLocalParams}
} }

Loading…
Cancel
Save