فهرست منبع

AMBARI-14537 Update API request using resource predicate (akovalenko)

Aleksandr Kovalenko 9 سال پیش
والد
کامیت
d6883af71d
3فایلهای تغییر یافته به همراه32 افزوده شده و 34 حذف شده
  1. 9 22
      ambari-web/app/controllers/main/service.js
  2. 22 0
      ambari-web/app/utils/ajax/ajax.js
  3. 1 12
      ambari-web/test/controllers/main/service_test.js

+ 9 - 22
ambari-web/app/controllers/main/service.js

@@ -300,20 +300,15 @@ App.MainServiceController = Em.ArrayController.extend({
    */
   restartAllRequired: function () {
     var self = this;
-    var servicesList = [];
-    var hostComponentsToRestart = [];
     if (!this.get('isRestartAllRequiredDisabled')) {
-      App.HostComponent.find().filterProperty('staleConfigs').forEach(function (hostComponent) {
-        hostComponentsToRestart.push({
-          component_name: hostComponent.get('componentName'),
-          service_name: hostComponent.get('service.serviceName'),
-          hosts: hostComponent.get('hostName')
-        });
-        servicesList.push(hostComponent.get('service.displayName'));
-      });
       return App.showConfirmationPopup(function () {
-        self.restartHostComponents(hostComponentsToRestart);
-      }, Em.I18n.t('services.service.refreshAll.confirmMsg').format(servicesList.uniq().join(', ')), null, null, Em.I18n.t('services.service.restartAll.confirmButton'));
+            self.restartHostComponents();
+          }, Em.I18n.t('services.service.refreshAll.confirmMsg').format(
+              App.HostComponent.find().filterProperty('staleConfigs').mapProperty('service.displayName').uniq().join(', ')),
+          null,
+          null,
+          Em.I18n.t('services.service.restartAll.confirmButton')
+      );
     } else {
       return null;
     }
@@ -323,18 +318,10 @@ App.MainServiceController = Em.ArrayController.extend({
    * Send request restart host components from hostComponentsToRestart
    * @returns {$.ajax}
    */
-  restartHostComponents: function (hostComponentsToRestart) {
+  restartHostComponents: function () {
     App.ajax.send({
-      name: 'restart.hostComponents',
+      name: 'restart.staleConfigs',
       sender: this,
-      data: {
-        context: 'Restart all required services',
-        resource_filters: hostComponentsToRestart,
-        operation_level: {
-          level: "CLUSTER",
-          cluster_name: App.get('clusterName')
-        }
-      },
       success: 'restartAllRequiredSuccessCallback'
     });
   },

+ 22 - 0
ambari-web/app/utils/ajax/ajax.js

@@ -2178,6 +2178,28 @@ var urls = {
     }
   },
 
+  'restart.staleConfigs': {
+    'real': "/clusters/{clusterName}/requests",
+    'mock': "",
+    'format': function () {
+      return {
+        type: 'POST',
+        data: JSON.stringify({
+          "RequestInfo": {
+            "command": "RESTART",
+            "context": "Restart all required services",
+            "operation_level": "host_component"
+          },
+          "Requests/resource_filters": [
+            {
+              "hosts_predicate": "HostRoles/stale_configs=true"
+            }
+          ]
+        })
+      }
+    }
+  },
+
   'bulk_request.decommission': {
     'real': '/clusters/{clusterName}/requests',
     'mock': '',

+ 1 - 12
ambari-web/test/controllers/main/service_test.js

@@ -396,18 +396,7 @@ describe('App.MainServiceController', function () {
       popup = mainServiceController.restartAllRequired();
       popup.onPrimary();
       expect(App.showConfirmationPopup.args[0][1]).to.equal(Em.I18n.t('services.service.refreshAll.confirmMsg').format('displayName1, displayName2'));
-      expect(mainServiceController.restartHostComponents.calledWith([
-        {
-          component_name: 'componentName1',
-          service_name: 'serviceName1',
-          hosts: 'hostName1'
-        },
-        {
-          component_name: 'componentName2',
-          service_name: 'serviceName2',
-          hosts: 'hostName2'
-        }
-      ])).to.be.true;
+      expect(mainServiceController.restartHostComponents.calledOnce).to.be.true;
     });
 
     it('should not open popup if isRestartAllRequiredDisabled is true', function(){