瀏覽代碼

AMBARI-14208. Update hawq_dfs_url with nameservice when hawq is installed on a ha cluster( Bhuvnesh Chaudhary via odiachenko).

Oleksandr Diachenko 9 年之前
父節點
當前提交
858d3fc11b

+ 14 - 3
ambari-web/app/controllers/wizard/step7_controller.js

@@ -915,12 +915,23 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
       {
         serviceName: 'ACCUMULO',
         configToUpdate: 'instance.volumes'
+      },
+      {
+        serviceName: 'HAWQ',
+        configToUpdate: 'hawq_dfs_url',
+        regexPattern: /(^.*:[0-9]+)(?=\/)/,
+        replacementValue: nameServiceId.get('value')
       }
     ]).forEach(function (c) {
       if (selectedServiceNames.contains(c.serviceName) && nameServiceId) {
-        var cfg = serviceConfigs.findProperty('serviceName', c.serviceName).configs.findProperty('name', c.configToUpdate),
-          newValue = cfg.get('value').replace(/\/\/.*:[0-9]+/i, '//' + nameServiceId.get('value'));
-
+        var cfg = serviceConfigs.findProperty('serviceName', c.serviceName).configs.findProperty('name', c.configToUpdate);
+        var regexPattern = /\/\/.*:[0-9]+/i;
+        var replacementValue = '//' + nameServiceId.get('value');
+        if (typeof(c.regexPattern) !== "undefined" && typeof(c.replacementValue) !== "undefined") {
+          regexPattern = c.regexPattern;
+          replacementValue = c.replacementValue;
+        }
+        var newValue = cfg.get('value').replace(regexPattern, replacementValue);
         cfg.setProperties({
           value: newValue,
           recommendedValue: newValue

+ 6 - 0
ambari-web/test/controllers/wizard/step7_test.js

@@ -1608,6 +1608,12 @@ describe('App.InstallerStep7Controller', function () {
         configToUpdate: 'instance.volumes',
         oldValue: 'hdfs://localhost:8020/apps/accumulo/data',
         expectedNewValue: 'hdfs://' + dfsNameservices + '/apps/accumulo/data'
+      },
+      {
+        serviceName: 'HAWQ',
+        configToUpdate: 'hawq_dfs_url',
+        oldValue: 'localhost:8020/hawq_data',
+        expectedNewValue: dfsNameservices + '/hawq_data'
       }
     ]).forEach(function (test) {
       it(test.serviceName + ' ' + test.configToUpdate, function () {