Jelajahi Sumber

AMBARI-1988. Hostname pattern expression is broken. (yusaku)

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/trunk@1469637 13f79535-47bb-0310-9956-ffa450edef68
Yusaku Sako 12 tahun lalu
induk
melakukan
2a462634c1

+ 2 - 0
CHANGES.txt

@@ -768,6 +768,8 @@ Trunk (unreleased changes):
 
  BUG FIXES
 
+ AMBARI-1988. Hostname pattern expression is broken. (yusaku)
+
  AMBARI-1986. HDFS General section has disappeared from Customize Services 
  step of the Install Wizard. (yusaku)
 

+ 3 - 3
ambari-web/app/controllers/wizard/step2_controller.js

@@ -199,15 +199,15 @@ App.WizardStep2Controller = Em.Controller.extend({
         start=start[0].substr(1);
         end=end[0].substr(1);
 
-        if(parseInt(start) <= parseInt(end) && parseInt(start) >= 0){
+        if(parseInt(start) <= parseInt(end, 10) && parseInt(start, 10) >= 0){
           self.isPattern = true;
 
           if(start[0] == "0" && start.length > 1) {
             extra = start.match(/0*/);
           }
 
-          for (var i = parseInt(start); i < parseInt(end) + 1; i++) {
-            hostNames.push(a.replace(/\[\d*\-\d*\]/,extra[0].substring(1,1+extra[0].length-i.toString().length)+i))
+          for (var i = parseInt(start, 10); i < parseInt(end, 10) + 1; i++) {
+            hostNames.push(a.replace(/\[\d*\-\d*\]/,extra[0].substring(0,start.length-i.toString().length)+i))
           }
 
         }else{

+ 5 - 4
ambari-web/test/installer/step2_test.js

@@ -193,17 +193,18 @@ describe('App.WizardStep2Controller', function () {
 
     it('should parse hosts from pattern expression to hostNameArr', function () {
       var controller = App.WizardStep2Controller.create({
-        hostNames: 'hots[0-10]'
+        hostNameArr: ['host[001-011]']
       });
       controller.patternExpression();
       var result = true;
       var hosts = controller.get('hostNameArr');
-      for (var i = 0; i<11; i++) {
-        if (hosts[i] !== 'host'+i) {
+      for (var i = 1; i<12; i++) {
+        var extra = (i.toString().length == 1) ? 0 : '';
+        if (hosts[i-1] !== 'host0' + extra + i) {
           result = false;
         }
       }
-      expect(result).to.equal(false);
+      expect(result).to.equal(true);
     })
   })