Ver Fonte

HUE-1920 [impala] Hide database is locked message

Do not send close or cancel query calls when id is -1
Romain Rigaux há 11 anos atrás
pai
commit
2bd7c94

+ 4 - 0
apps/beeswax/src/beeswax/api.py

@@ -67,6 +67,10 @@ def error_handler(view_fn):
         'status': -1,
         'message': message,
       }
+
+      if 'database is locked' in message or 'Invalid query handle' in message:
+        response['status'] = 2 # Frontend will not display this type of error
+
       return HttpResponse(json.dumps(response), mimetype="application/json", status=200)
   return decorator
 

+ 1 - 1
apps/beeswax/src/beeswax/templates/execute.mako

@@ -1935,7 +1935,7 @@ function queryEvents() {
     routie('query/explanation');
   });
   $(document).on('watched.query', function (e, data) {
-    if (data.status && data.status && data.status != 0) {
+    if (data.status && data.status && data.status != 0 && data.status != 2) {
       viewModel.design.watch.errors.push(data.error || data.message);
     }
     routie('query/logs');

+ 13 - 11
apps/beeswax/static/js/beeswax.vm.js

@@ -683,22 +683,24 @@ function BeeswaxViewModel(server) {
   };
 
   self.cancelQuery = function() {
-    $(document).trigger('cancel.query');
-    var url = '/' + self.server() + '/api/query/' + self.design.history.id() + '/cancel';
-    $.post(url,
-      function(response) {
-        if (response['status'] != 0) {
-          $(document).trigger('error_cancel.query', response['message']);
-        } else {
-          $(document).trigger('cancelled.query');
+    if (self.design.history.id() > 0) {
+      $(document).trigger('cancel.query');
+      var url = '/' + self.server() + '/api/query/' + self.design.history.id() + '/cancel';
+      $.post(url,
+        function(response) {
+          if (response['status'] != 0) {
+            $(document).trigger('error_cancel.query', response['message']);
+          } else {
+            $(document).trigger('cancelled.query');
+          }
         }
-      }
-    );
+      );
+    }
   };
 
   self.closeQuery = function() {
     var self = this;
-    if (self.design.history.id() && !self.design.isRunning()) {
+    if (self.design.history.id() > 0 && !self.design.isRunning()) {
       var data = {};
       var url = '/' + self.server() + '/api/query/' + self.design.history.id() + '/close';
       var request = {