浏览代码

HUE-1682 [sqoop2] Better error notification when a server is not available or not responding

Added error handler on ajax connections
Enrico Berti 12 年之前
父节点
当前提交
5f9d820

+ 7 - 2
apps/sqoop/src/sqoop/templates/app.mako

@@ -48,7 +48,7 @@ ${ commonheader(None, "sqoop", user) | n,unicode }
 </div>
 
 <div class="container-fluid">
-  <div data-bind="foreach: sqoop_errors" id="sqoop-error" class="row-fluid mainSection hide" style="margin-top: 30px">
+  <div data-bind="foreach: sqoop_errors" id="sqoop-error" class="row-fluid mainSection hide" style="margin-top: 10px">
     <div class="alert alert-error">
       <i class="icon-warning-sign"></i>
       <strong>${_('Sqoop error')}:</strong>
@@ -793,7 +793,12 @@ var framework = new framework.Framework();
         viewModel.sqoop_errors.push(error_msg);
       });
     } else {
-      viewModel.sqoop_errors.push('${_("Unknown error.")}');
+      if (data.status == 500){
+        viewModel.sqoop_errors.push('${_("There was a problem with the server. Look at the Sqoop2 server logs for more details.")}');
+      }
+      else {
+        viewModel.sqoop_errors.push('${_("Unknown error.")}');
+      }
     }
     window.location.hash = 'error';
   }

+ 2 - 1
apps/sqoop/static/js/sqoop.connections.js

@@ -86,7 +86,8 @@ var connections = (function($) {
       url: '/sqoop/api/connections/',
       dataType: 'json',
       type: 'GET',
-      success: fetcher_success('connections', Connection, options)
+      success: fetcher_success('connections', Connection, options),
+      error: fetcher_error('connections', Connection, options)
     }, options || {});
     $.ajax(request);
   }

+ 2 - 1
apps/sqoop/static/js/sqoop.connectors.js

@@ -78,7 +78,8 @@ var connectors = (function($) {
       url: '/sqoop/api/connectors/',
       dataType: 'json',
       type: 'GET',
-      success: fetcher_success('connectors', Connector, options)
+      success: fetcher_success('connectors', Connector, options),
+      error: fetcher_error('connectors', Connector, options)
     }, options || {});
     $.ajax(request);
   }

+ 2 - 1
apps/sqoop/static/js/sqoop.jobs.js

@@ -238,7 +238,8 @@ var jobs = (function($) {
       url: '/sqoop/api/jobs/',
       dataType: 'json',
       type: 'GET',
-      success: fetcher_success('jobs', Job, options)
+      success: fetcher_success('jobs', Job, options),
+      error: fetcher_error('jobs', Job, options)
     }, options || {});
     $.ajax(request);
   }

+ 2 - 1
apps/sqoop/static/js/sqoop.submissions.js

@@ -75,7 +75,8 @@ var submissions = (function($) {
       url: '/sqoop/api/submissions/',
       dataType: 'json',
       type: 'GET',
-      success: fetcher_success('submissions', Submission, options)
+      success: fetcher_success('submissions', Submission, options),
+      error: fetcher_error('submissions', Submission, options)
     }, options || {});
     $.ajax(request);
   }

+ 7 - 0
apps/sqoop/static/js/sqoop.utils.js

@@ -38,6 +38,13 @@ function fetcher_success(name, Node, options) {
   };
 }
 
+function fetcher_error(name, Node, options) {
+  return function(data) {
+    $(document).trigger('connection_error.' + name, [options, data])
+  };
+}
+
+
 //// KO utils
 ko.bindingHandlers.routie = {
   init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {