Selaa lähdekoodia

AMBARI-4971. Ambari Web UI broke after manually navigating to SQOOP configs page. (onechiporenko)

Oleg Nechiporenko 11 vuotta sitten
vanhempi
commit
195ee69005

+ 5 - 4
ambari-web/app/mappers/service_metrics_mapper.js

@@ -281,11 +281,12 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
     var isSecondaryNamenode = hostComponents.findProperty('component_name', 'SECONDARY_NAMENODE');
     var isSecondaryNamenode = hostComponents.findProperty('component_name', 'SECONDARY_NAMENODE');
     services.setEach('tool_tip_content', '');
     services.setEach('tool_tip_content', '');
     // set tooltip for client-only services
     // set tooltip for client-only services
-    var clientOnlyServiceNames = ['TEZ', 'SQOOP', 'PIG'];
-    var clientOnlyServiceTooltip = Em.I18n.t('services.service.summary.clientOnlyService.ToolTip');
-    clientOnlyServiceNames.forEach( function(serviceName) {
+    var clientOnlyServiceNames = Em.A(['TEZ', 'SQOOP', 'PIG']);
+    clientOnlyServiceNames.forEach(function(serviceName) {
       var service = services.findProperty('ServiceInfo.service_name', serviceName);
       var service = services.findProperty('ServiceInfo.service_name', serviceName);
-      service.tool_tip_content = clientOnlyServiceTooltip;
+      if (service) {
+        service.tool_tip_content = Em.I18n.t('services.service.summary.clientOnlyService.ToolTip');
+      }
     });
     });
     hostComponents.forEach(function (hostComponent) {
     hostComponents.forEach(function (hostComponent) {
       var service = services.findProperty('ServiceInfo.service_name', hostComponent.service_id);
       var service = services.findProperty('ServiceInfo.service_name', hostComponent.service_id);

+ 7 - 1
ambari-web/app/routes/main.js

@@ -642,7 +642,13 @@ module.exports = Em.Route.extend({
         route: '/configs',
         route: '/configs',
         connectOutlets: function (router, context) {
         connectOutlets: function (router, context) {
           var item = router.get('mainServiceItemController.content');
           var item = router.get('mainServiceItemController.content');
-          router.get('mainServiceItemController').connectOutlet('mainServiceInfoConfigs', item);
+          if (item.get('isConfigurable')) {
+            router.get('mainServiceItemController').connectOutlet('mainServiceInfoConfigs', item);
+          }
+          else {
+            // if service doesn't have configs redirect to summary
+            router.transitionTo('summary');
+          }
         },
         },
         unroutePath: function (router, context) {
         unroutePath: function (router, context) {
           var controller = router.get('mainServiceInfoConfigsController');
           var controller = router.get('mainServiceInfoConfigsController');