소스 검색

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

Oleg Nechiporenko 11 년 전
부모
커밋
195ee69005
2개의 변경된 파일12개의 추가작업 그리고 5개의 파일을 삭제
  1. 5 4
      ambari-web/app/mappers/service_metrics_mapper.js
  2. 7 1
      ambari-web/app/routes/main.js

+ 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');
     services.setEach('tool_tip_content', '');
     // 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);
-      service.tool_tip_content = clientOnlyServiceTooltip;
+      if (service) {
+        service.tool_tip_content = Em.I18n.t('services.service.summary.clientOnlyService.ToolTip');
+      }
     });
     hostComponents.forEach(function (hostComponent) {
       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',
         connectOutlets: function (router, context) {
           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) {
           var controller = router.get('mainServiceInfoConfigsController');