You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by li...@apache.org on 2020/03/12 10:08:59 UTC

[incubator-dolphinscheduler] branch dev updated: add input cache for sqoop and conditions tasks (#2118)

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

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


The following commit(s) were added to refs/heads/dev by this push:
     new 68e4e5c  add input cache for sqoop and conditions tasks (#2118)
68e4e5c is described below

commit 68e4e5c4e01173dae2836aa5f042f1b71a657603
Author: zhukai <bo...@qq.com>
AuthorDate: Thu Mar 12 18:08:49 2020 +0800

    add input cache for sqoop and conditions tasks (#2118)
    
    Co-authored-by: zhukai <zh...@ygsoft.com>
---
 .../home/pages/dag/_source/formModel/formModel.vue | 12 +++-
 .../_source/formModel/tasks/_source/datasource.vue | 10 ++-
 .../dag/_source/formModel/tasks/conditions.vue     | 21 ++++++-
 .../pages/dag/_source/formModel/tasks/sqoop.vue    | 71 +++++++++++++++++++---
 4 files changed, 96 insertions(+), 18 deletions(-)

diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue
index ec228fa..cc1c8b6 100755
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue
@@ -252,6 +252,7 @@
           v-if="taskType === 'CONDITIONS'"
           ref="CONDITIONS"
           @on-dependent="_onDependent"
+          @on-cache-dependent="_onCacheDependent"
           :backfill-item="backfillItem"
           :pre-node="preNode">
         </m-conditions>
@@ -438,6 +439,8 @@
       },
 
       _cacheItem () {
+        this.conditionResult.successNode[0] = this.successBranch
+        this.conditionResult.failedNode[0] = this.failedBranch
         this.$emit('cacheTaskInfo', {
           item: {
             type: this.taskType,
@@ -446,12 +449,15 @@
             params: this.params,
             description: this.description,
             runFlag: this.runFlag,
+            conditionResult: this.conditionResult,
             dependence: this.cacheDependence,
             maxRetryTimes: this.maxRetryTimes,
             retryInterval: this.retryInterval,
             timeout: this.timeout,
             taskInstancePriority: this.taskInstancePriority,
-            workerGroupId: this.workerGroupId
+            workerGroupId: this.workerGroupId,
+            status: this.status,
+            branch: this.branch
           },
           fromThis: this
         })
@@ -657,7 +663,9 @@
           retryInterval: this.retryInterval,
           timeout: this.timeout,
           taskInstancePriority: this.taskInstancePriority,
-          workerGroupId: this.workerGroupId
+          workerGroupId: this.workerGroupId,
+          successBranch: this.successBranch,
+          failedBranch: this.failedBranch
         }
       }
     },
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/datasource.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/datasource.vue
index aa067d8..a173139 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/datasource.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/datasource.vue
@@ -122,8 +122,11 @@
     },
     // Watch the cacheParams
     watch: {
-      cacheParams (val) {
-        this.$emit('on-dsData', val);
+      datasource (val) {
+        this.$emit('on-dsData', {
+          type: this.type,
+          datasource: val
+        });
       }
     },
     created () {
@@ -150,7 +153,8 @@
           })
         }
         this.$emit('on-dsData', {
-          type: this.type
+          type: this.type,
+          datasource: this.datasource
         })
       })
     },
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/conditions.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/conditions.vue
index e4f9b3f..fb3f2c2 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/conditions.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/conditions.vue
@@ -19,7 +19,7 @@
     <m-list-box>
       <div slot="text">{{$t('Custom Parameters')}}</div>
       <div slot="content">
-        <div class="dep-opt"> 
+        <div class="dep-opt">
           <a href="javascript:"
              @click="!isDetails && _addDep()"
              class="add-dep">
@@ -133,6 +133,9 @@
         setTimeout(() => {
           this.isLoading = false
         }, 600)
+      },
+      cacheDependence (val) {
+        this.$emit('on-cache-dependent', val)
       }
     },
     beforeCreate () {
@@ -153,7 +156,19 @@
     },
     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 }
   }
 </script>
@@ -257,4 +272,4 @@
       }
     }
   }
-</style>
\ No newline at end of file
+</style>
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sqoop.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sqoop.vue
index eead745..6594ffc 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sqoop.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sqoop.vue
@@ -65,7 +65,7 @@
             <m-datasource
                     ref="refSourceDs"
                     @on-dsData="_onSourceDsData"
-                    :data="{ type:'MYSQL',datasource:srcDatasource }"
+                    :data="{ type:sourceMysqlParams.srcType,datasource:sourceMysqlParams.srcDatasource }"
                     >
             </m-datasource>
           </div>
@@ -186,8 +186,8 @@
       <div slot="content">
         <div class="from-mirror">
           <textarea
-                  id="code-sql-mirror"
-                  name="code-sql-mirror"
+                  id="code-sqoop-mirror"
+                  name="code-sqoop-mirror"
                   style="opacity: 0;">
           </textarea>
         </div>
@@ -385,7 +385,7 @@
           <m-datasource
               ref="refTargetDs"
               @on-dsData="_onTargetDsData"
-              :data="{ type:type,datasource:targetDatasource }"
+              :data="{ type:targetMysqlParams.targetType,datasource:targetMysqlParams.targetDatasource }"
               >
           </m-datasource>
         </div>
@@ -556,7 +556,8 @@
         targetType:"HDFS",
 
         sourceMysqlParams:{
-          srcDatasource:-1,
+          srcType:"MYSQL",
+          srcDatasource:"",
           srcTable:"",
           srcQueryType:"1",
           srcQuerySql:'',
@@ -588,7 +589,8 @@
         },
 
         targetMysqlParams:{
-          targetDatasource:-1,
+          targetType:"MYSQL",
+          targetDatasource:"",
           targetTable:"",
           targetColumns:"",
           fieldsTerminated:"",
@@ -680,6 +682,7 @@
        * return data source
        */
       _onSourceDsData (o) {
+        this.sourceMysqlParams.srcType = o.type
         this.sourceMysqlParams.srcDatasource = o.datasource
       },
 
@@ -687,6 +690,7 @@
        * return data source
        */
       _onTargetDsData (o) {
+        this.targetMysqlParams.targetType = o.type
         this.targetMysqlParams.targetDatasource = o.datasource
       },
 
@@ -697,7 +701,7 @@
         var params = null
         switch(this.sourceType){
           case "MYSQL":
-            this.sourceMysqlParams.srcQuerySql = editor.getValue()
+            this.sourceMysqlParams.srcQuerySql = editor ? editor.getValue() : this.sourceMysqlParams.srcQuerySql
             params = JSON.stringify(this.sourceMysqlParams)
             break;
           case "ORACLE":
@@ -879,7 +883,9 @@
        * Processing code highlighting
        */
       _handlerEditor () {
-        editor = codemirror('code-sql-mirror', {
+        this._destroyEditor()
+
+        editor = codemirror('code-sqoop-mirror', {
           mode: 'sql',
           readOnly: this.isDetails
         })
@@ -892,9 +898,15 @@
           }
         }
 
+        this.changes = () => {
+          this._cacheParams()
+        }
+
         // Monitor keyboard
         editor.on('keypress', this.keypress)
 
+        editor.on('changes', this.changes)
+
         editor.setValue(this.sourceMysqlParams.srcQuerySql)
 
         return editor
@@ -906,6 +918,27 @@
       _onLocalParams (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: {
       // Listening to sqlType
@@ -927,11 +960,12 @@
       },
       //Watch the cacheParams
       cacheParams (val) {
-        this.$emit('on-cache-params', val);
+        this._cacheParams()
       }
     },
 
     created () {
+      this._destroyEditor()
       let o = this.backfillItem
 
       // Non-null objects represent backfill
@@ -963,11 +997,28 @@
        */
       if (editor) {
         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: {
+      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}
   }