Repository: ambari
Updated Branches:
  refs/heads/branch-2.5 3a2411a9d -> 2081ca0fa


AMBARI-20228. HiveView 2.0 : After download CSV, the pop-up persists (pallavkul)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/2081ca0f
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/2081ca0f
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/2081ca0f

Branch: refs/heads/branch-2.5
Commit: 2081ca0fa7f2effadb273ba57f4429a8f3e9d60e
Parents: 3a2411a
Author: pallavkul <pallav....@gmail.com>
Authored: Tue Feb 28 17:04:45 2017 +0530
Committer: pallavkul <pallav....@gmail.com>
Committed: Tue Feb 28 17:06:06 2017 +0530

----------------------------------------------------------------------
 .../src/main/resources/ui/app/adapters/job.js   | 43 +++++++++++++-
 .../resources/ui/app/routes/queries/query.js    | 39 -------------
 .../ui/app/routes/queries/query/results.js      | 59 +++++++++++++++++++-
 .../src/main/resources/ui/app/services/query.js |  9 +--
 .../ui/app/templates/queries/query/results.hbs  |  7 ++-
 5 files changed, 103 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/2081ca0f/contrib/views/hive20/src/main/resources/ui/app/adapters/job.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive20/src/main/resources/ui/app/adapters/job.js 
b/contrib/views/hive20/src/main/resources/ui/app/adapters/job.js
index 9fc73a4..7559e9c 100644
--- a/contrib/views/hive20/src/main/resources/ui/app/adapters/job.js
+++ b/contrib/views/hive20/src/main/resources/ui/app/adapters/job.js
@@ -26,12 +26,49 @@ export default ApplicationAdapter.extend({
 
   getQuery(job) {
     let queryUrl = this.buildURL() + "/file" + encodeURI(job.get('queryFile'));
-    console.log(queryUrl);
   },
 
   saveToHDFS(jobId, path){
-    let resultUrl = this.urlForFindRecord(jobId, 'job') + 
"/results/csv/saveToHDFS?commence=true&file=" + path + ".csv";
-    return this.ajax(resultUrl, 'GET');
+    let url = this.urlForFindRecord(jobId, 'job') + 
"/results/csv/saveToHDFS?commence=true&file=" + path + ".csv";
+
+    return new Ember.RSVP.Promise((resolve, reject) => {
+      this.ajax(url).then((response) => {
+        if (response.status.toLowerCase() !== "TERMINATED".toLowerCase()) {
+          this.pollSaveToHDFS(response).then( (response) => {
+            resolve(response);
+          },  (error) => {
+            reject(error);
+          });
+        } else {
+          resolve(response);
+        }
+      }, (error) => {
+        reject(error);
+      });
+    })
+
+  },
+
+  pollSaveToHDFS: function (data) {
+    let url = this.urlForFindRecord(data.jobId, 'job') + 
"/results/csv/saveToHDFS";
+
+    return new Ember.RSVP.Promise((resolve, reject) => {
+
+      this.ajax(url).then( (response) => {
+        if (response.status.toLowerCase() !== "TERMINATED".toLowerCase()) {
+          Ember.run.later( () => {
+            this.pollSaveToHDFS(response)
+              .then((data) => { resolve(data)}, (error) => {
+                reject(error);
+              });
+          }, 2000);
+        } else {
+            resolve(response);
+        }
+      }, (error) => {
+        reject(error);
+      });
+    });
   },
 
   downloadAsCsv(jobId, path){

http://git-wip-us.apache.org/repos/asf/ambari/blob/2081ca0f/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query.js
----------------------------------------------------------------------
diff --git 
a/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query.js 
b/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query.js
index 8f0085c..4ac93db 100644
--- a/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query.js
+++ b/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query.js
@@ -530,45 +530,6 @@ export default Ember.Route.extend(UILoggerMixin, {
       this.get('controller').set('showWorksheetModal', false);
     },
 
-    saveToHDFS(jobId, path){
-
-      console.log('saveToHDFS query route with jobId == ', jobId);
-      console.log('saveToHDFS query route with path == ', path);
-
-      this.get('query').saveToHDFS(jobId, path)
-        .then((data) => {
-          console.log('successfully saveToHDFS', data);
-          this.get('controller').set('isExportResultSuccessMessege', true);
-          this.get('controller').set('isExportResultFailureMessege', false);
-
-          Ember.run.later(() => {
-            this.get('controller').set('showSaveHdfsModal', false);
-          }, 2 * 1000);
-
-        }, (error) => {
-          console.log("Error encountered", error);
-          this.get('controller').set('isExportResultFailureMessege', true);
-          this.get('controller').set('isExportResultSuccessMessege', false);
-
-          Ember.run.later(() => {
-            this.get('controller').set('showSaveHdfsModal', false);
-          }, 2 * 1000);
-
-        });
-    },
-
-    downloadAsCsv(jobId, path){
-
-      console.log('downloadAsCsv query route with jobId == ', jobId);
-      console.log('downloadAsCsv query route with path == ', path);
-
-      let downloadAsCsvUrl = this.get('query').downloadAsCsv(jobId, path) || 
'';
-
-      this.get('controller').set('showDownloadCsvModal', false);
-      window.open(downloadAsCsvUrl);
-
-    },
-
     expandQueryEdidorPanel(){
       if(!this.get('isQueryEdidorPaneExpanded')){
         this.set('isQueryEdidorPaneExpanded', true);

http://git-wip-us.apache.org/repos/asf/ambari/blob/2081ca0f/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query/results.js
----------------------------------------------------------------------
diff --git 
a/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query/results.js
 
b/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query/results.js
index 4b59a13..df970fb 100644
--- 
a/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query/results.js
+++ 
b/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query/results.js
@@ -17,8 +17,9 @@
  */
 
 import Ember from 'ember';
+import UILoggerMixin from '../../../mixins/ui-logger';
 
-export default Ember.Route.extend({
+export default Ember.Route.extend(UILoggerMixin, {
 
   jobs: Ember.inject.service(),
   query: Ember.inject.service(),
@@ -44,7 +45,14 @@ export default Ember.Route.extend({
       this.controller.set('previousPage', model.get('previousPage'));
       this.controller.set('hasNext', model.get('hasNext'));
       this.controller.set('hasPrevious', model.get('hasPrevious'));
+
       this.controller.set('queryResult', model.get('queryResult'));
+      this.controller.set('isExportResultSuccessMessege', false);
+      this.controller.set('isExportResultFailureMessege', false);
+      this.controller.set('showSaveHdfsModal', false);
+      this.controller.set('showDownloadCsvModal', false);
+
+
       this.controller.set('hasJobAssociated', true);
     } else {
       this.controller.set('hasJobAssociated', false);
@@ -54,6 +62,55 @@ export default Ember.Route.extend({
 
   actions:{
 
+    saveToHDFS(jobId, path){
+
+      var self = this;
+
+      console.log('saveToHDFS query route with jobId == ', jobId);
+      console.log('saveToHDFS query route with path == ', path);
+
+      this.get('query').saveToHDFS(jobId, path)
+        .then((data) => {
+
+          console.log('successfully saveToHDFS', data);
+          this.get('controller').set('isExportResultSuccessMessege', true);
+          this.get('controller').set('isExportResultFailureMessege', false);
+
+          Ember.run.later(() => {
+            this.get('controller').set('showSaveHdfsModal', false);
+            this.get('logger').success('Successfully Saved to HDFS.');
+
+          }, 2 * 1000);
+
+        }, (error) => {
+
+          console.log("Error encountered", error);
+          this.get('controller').set('isExportResultFailureMessege', true);
+          this.get('controller').set('isExportResultSuccessMessege', false);
+
+          Ember.run.later(() => {
+            this.get('controller').set('showSaveHdfsModal', false);
+            this.get('logger').danger('Failed to save to HDFS.', 
this.extractError(error));
+          }, 2 * 1000);
+
+
+        });
+    },
+
+
+    downloadAsCsv(jobId, path){
+
+      console.log('downloadAsCsv query route with jobId == ', jobId);
+      console.log('downloadAsCsv query route with path == ', path);
+
+      let downloadAsCsvUrl = this.get('query').downloadAsCsv(jobId, path) || 
'';
+
+      this.get('controller').set('showDownloadCsvModal', false);
+      this.get('logger').success('Successfully downloaded as CSV.');
+      window.open(downloadAsCsvUrl);
+
+    },
+
   }
 
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/2081ca0f/contrib/views/hive20/src/main/resources/ui/app/services/query.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive20/src/main/resources/ui/app/services/query.js 
b/contrib/views/hive20/src/main/resources/ui/app/services/query.js
index 3bf10c0..6860f4d 100644
--- a/contrib/views/hive20/src/main/resources/ui/app/services/query.js
+++ b/contrib/views/hive20/src/main/resources/ui/app/services/query.js
@@ -43,14 +43,7 @@ export default Ember.Service.extend({
   },
 
   saveToHDFS(jobId, path){
-    let self = this;
-    return new Promise( (resolve, reject) => {
-      this.get('store').adapterFor('job').saveToHDFS(jobId, 
path).then(function(data) {
-        resolve(data);
-      }, function(err) {
-          reject(err);
-      });
-    });
+    return this.get('store').adapterFor('job').saveToHDFS(jobId, path);
   },
 
   downloadAsCsv(jobId, path){

http://git-wip-us.apache.org/repos/asf/ambari/blob/2081ca0f/contrib/views/hive20/src/main/resources/ui/app/templates/queries/query/results.hbs
----------------------------------------------------------------------
diff --git 
a/contrib/views/hive20/src/main/resources/ui/app/templates/queries/query/results.hbs
 
b/contrib/views/hive20/src/main/resources/ui/app/templates/queries/query/results.hbs
index ad44c5a..966312c 100644
--- 
a/contrib/views/hive20/src/main/resources/ui/app/templates/queries/query/results.hbs
+++ 
b/contrib/views/hive20/src/main/resources/ui/app/templates/queries/query/results.hbs
@@ -39,9 +39,10 @@
   saveToHDFS='saveToHDFS'
   downloadAsCsv='downloadAsCsv'
   expandQueryResultPanel='expandQueryResultPanel'
-  isExportResultSuccessMessege=false
-  isExportResultFailureMessege=false
-  showSaveHdfsModal=false
+  isExportResultSuccessMessege=isExportResultSuccessMessege
+  isExportResultFailureMessege=isExportResultFailureMessege
+  showSaveHdfsModal=showSaveHdfsModal
+  showDownloadCsvModal=showDownloadCsvModal
   }}
 {{/if}}
 

Reply via email to