You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2016/10/21 18:53:16 UTC

[1/2] ambari git commit: AMBARI-18662. Check that Stack Version and repo URLs match up when registering repo (alexantonenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk 5114bc9f7 -> 00f1e71b6


AMBARI-18662. Check that Stack Version and repo URLs match up when registering repo (alexantonenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/00f1e71b
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/00f1e71b
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/00f1e71b

Branch: refs/heads/trunk
Commit: 00f1e71b62f4133e70d7d8f9f2cd6fa0624ec40d
Parents: db8f3e3
Author: Alex Antonenko <hi...@gmail.com>
Authored: Fri Oct 21 17:13:40 2016 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Fri Oct 21 21:53:10 2016 +0300

----------------------------------------------------------------------
 ambari-web/app/controllers/installer.js         |  3 ++-
 .../app/controllers/wizard/step1_controller.js  | 21 +++++++++++++++++++-
 ambari-web/app/messages.js                      |  2 ++
 ambari-web/test/controllers/installer_test.js   | 13 +++++++-----
 4 files changed, 32 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/00f1e71b/ambari-web/app/controllers/installer.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/installer.js b/ambari-web/app/controllers/installer.js
index e2c60c4..f736ba3 100644
--- a/ambari-web/app/controllers/installer.js
+++ b/ambari-web/app/controllers/installer.js
@@ -841,6 +841,7 @@ App.InstallerController = App.WizardController.extend({
       selectedStack.get('operatingSystems').forEach(function (os) {
         if (os.get('isSelected') && !os.get('isEmpty')) {
           os.get('repositories').forEach(function (repo) {
+            if (!repo.get('isUtils') && wizardStep1Controller.inappropriateUrlForStackVersion(repo, stackVersion)) return;
             repo.setProperties({
               errorTitle: '',
               errorContent: '',
@@ -888,8 +889,8 @@ App.InstallerController = App.WizardController.extend({
       }
     }
     this.set('validationCnt', this.get('validationCnt') - 1);
+    this.set('content.isCheckInProgress', false);
     if (!this.get('validationCnt')) {
-      this.set('content.isCheckInProgress', false);
       data.dfd.resolve();
     }
   },

http://git-wip-us.apache.org/repos/asf/ambari/blob/00f1e71b/ambari-web/app/controllers/wizard/step1_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step1_controller.js b/ambari-web/app/controllers/wizard/step1_controller.js
index e1cb4ff..6c105c2 100644
--- a/ambari-web/app/controllers/wizard/step1_controller.js
+++ b/ambari-web/app/controllers/wizard/step1_controller.js
@@ -272,6 +272,25 @@ App.WizardStep1Controller = Em.Controller.extend({
     this.selectStackBy('id', event.context.get('id'));
   },
 
+  inappropriateUrlForStackVersion: function (repo, stackVersion) {
+    var baseUrl = repo.get('baseUrl'),
+      splittedBaseUrlArray = baseUrl.split('/'),
+      versionInUrl =  baseUrl[baseUrl.length - 1] === '/' ? splittedBaseUrlArray[splittedBaseUrlArray.length - 2] :
+                      splittedBaseUrlArray[splittedBaseUrlArray.length - 1],
+      versionInUrlString = String(parseFloat(versionInUrl)),
+      UrlIsInvalidForStackVersion = versionInUrlString !== stackVersion;
+
+    if (UrlIsInvalidForStackVersion) {
+      repo.setProperties({
+        validation: App.Repository.validation.INVALID,
+        errorTitle: Em.I18n.t("installer.step1.error.inappropriateUrlForStackVersion.title"),
+        errorContent: Em.I18n.t("installer.step1.error.inappropriateUrlForStackVersion.content").format(stackVersion, versionInUrlString)
+      });
+    }
+
+    return UrlIsInvalidForStackVersion;
+  },
+
   /**
    * Show popup with options to upload new version
    *
@@ -444,7 +463,7 @@ App.WizardStep1Controller = Em.Controller.extend({
           enterUrlRadioButton: Em.Checkbox.extend({
             attributeBindings: [ 'type', 'checked' ],
             checked: Em.computed.alias('controller.optionsToSelect.useLocalRepo.enterUrl.isSelected'),
-            type: 'radio',
+            type: 'radio'
           }),
 
           click: function () {

http://git-wip-us.apache.org/repos/asf/ambari/blob/00f1e71b/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index a3c5e58..b27e8f5 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -627,6 +627,8 @@ Em.I18n.translations = {
   'installer.step1.invalidURLAttention': '<b>Attention:</b> Please make sure all repository URLs are valid before proceeding.',
   'installer.step1.checkAtLeastOneAttention': '<b>Attention:</b> Please check at least one repository.',
   'installer.step1.retryRepoUrls': 'Click <b>here</b> to retry.',
+  'installer.step1.error.inappropriateUrlForStackVersion.title':'Inappropriate Url for selected Stack Version',
+  'installer.step1.error.inappropriateUrlForStackVersion.content': 'Your stack version is {0} when version in Url is {1}',
 
   'installer.step2.header':'Install Options',
   'installer.step2.body':'Enter the list of hosts to be included in the cluster and provide your SSH key.',

http://git-wip-us.apache.org/repos/asf/ambari/blob/00f1e71b/ambari-web/test/controllers/installer_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/installer_test.js b/ambari-web/test/controllers/installer_test.js
index 441af87..63578bc 100644
--- a/ambari-web/test/controllers/installer_test.js
+++ b/ambari-web/test/controllers/installer_test.js
@@ -75,8 +75,8 @@ describe('App.InstallerController', function () {
       Em.Object.create({
         isSelected: true,
         reload: false,
-        id: 'nn-cc',
-        stackNameVersion: 'nn-cc',
+        id: 'nn-2.5',
+        stackNameVersion: 'nn-2.5',
         repositories: Em.A([
           Em.Object.create({
             isSelected: true,
@@ -89,6 +89,7 @@ describe('App.InstallerController', function () {
             isEmpty: false,
             repositories: Em.A([
               Em.Object.create({
+                baseUrl: 'url/2.5',
                 isEmpty: false,
                 errorTitle: '1',
                 errorContent: '1',
@@ -100,7 +101,8 @@ describe('App.InstallerController', function () {
       })
     ]);
     var wizard = Em.Object.create({
-      skipValidationChecked: true
+      skipValidationChecked: true,
+      inappropriateUrlForStackVersion: App.WizardStep1Controller.create().inappropriateUrlForStackVersion
     });
     it ('Should reload installed stacks', function() {
 
@@ -114,8 +116,8 @@ describe('App.InstallerController', function () {
         {
           "isSelected": true,
           "reload": true,
-          "id": "nn-cc",
-          "stackNameVersion": 'nn-cc',
+          "id": "nn-2.5",
+          "stackNameVersion": 'nn-2.5',
           "repositories": [
             {
               "isSelected": true,
@@ -128,6 +130,7 @@ describe('App.InstallerController', function () {
               "isEmpty": false,
               "repositories": [
                 {
+                  "baseUrl": "url/2.5",
                   "isEmpty": false,
                   "errorTitle": "",
                   "errorContent": "",


[2/2] ambari git commit: AMBARI-18627. Add service wizard hung at Choose services page as no ClusterStackVersion is available with state=CURRENT . Additional fix (alexantonenko)

Posted by al...@apache.org.
AMBARI-18627. Add service wizard hung at Choose services page as no ClusterStackVersion is available with state=CURRENT	. Additional fix
 (alexantonenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/db8f3e3f
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/db8f3e3f
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/db8f3e3f

Branch: refs/heads/trunk
Commit: db8f3e3f8855fc3174fa6b41ed86c87b9263321a
Parents: 5114bc9
Author: Alex Antonenko <hi...@gmail.com>
Authored: Wed Oct 19 19:28:54 2016 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Fri Oct 21 21:53:10 2016 +0300

----------------------------------------------------------------------
 .../controllers/global/cluster_controller.js    | 13 ++--
 .../main/admin/stack_and_upgrade_controller.js  |  8 +--
 ambari-web/app/controllers/wizard.js            |  8 +--
 ambari-web/app/utils/ajax/ajax.js               |  4 +-
 .../global/cluster_controller_test.js           | 22 ++++++
 .../admin/stack_and_upgrade_controller_test.js  | 74 +-------------------
 6 files changed, 36 insertions(+), 93 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/db8f3e3f/ambari-web/app/controllers/global/cluster_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/global/cluster_controller.js b/ambari-web/app/controllers/global/cluster_controller.js
index 2dd0496..edb9a26 100644
--- a/ambari-web/app/controllers/global/cluster_controller.js
+++ b/ambari-web/app/controllers/global/cluster_controller.js
@@ -510,14 +510,11 @@ App.ClusterController = Em.Controller.extend(App.ReloadPopupMixin, {
   },
 
   checkDetailedRepoVersionSuccessCallback: function (data) {
-    var items = data.items;
-    var version;
-    if (items && items.length) {
-      var repoVersions = items[0].repository_versions;
-      if (repoVersions && repoVersions.length) {
-        version = Em.get(repoVersions[0], 'RepositoryVersions.repository_version');
-      }
-    }
+    var rv = (Em.getWithDefault(data, 'items', []) || []).filter(function(i) {
+      return Em.getWithDefault(i || {}, 'ClusterStackVersions.stack', null) === App.get('currentStackName') &&
+        Em.getWithDefault(i || {}, 'ClusterStackVersions.version', null) === App.get('currentStackVersionNumber');
+    })[0];
+    var version = Em.getWithDefault(rv || {}, 'repository_versions.0.RepositoryVersions.repository_version', false);
     App.set('isStormMetricsSupported', stringUtils.compareVersions(version, '2.2.2') > -1 || !version);
   },
   checkDetailedRepoVersionErrorCallback: function () {

http://git-wip-us.apache.org/repos/asf/ambari/blob/db8f3e3f/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js b/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
index 58344b2..32b2d73 100644
--- a/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
+++ b/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
@@ -1903,11 +1903,9 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    * @param {object|null} jsonData
    */
   loadServiceVersionFromVersionDefinitionsSuccessCallback: function (jsonData) {
-    var versions = Em.getWithDefault(jsonData, 'items', []);
-    var currentVersion = versions.filterProperty('ClusterStackVersions.state', 'CURRENT')[0];
-    var rv = currentVersion || versions.filter(function(i) {
-      return i.ClusterStackVersions.stack === App.get('currentStackName') &&
-       i.ClusterStackVersions.version === App.get('currentStackVersionNumber');
+    var rv = Em.getWithDefault(jsonData, 'items', []).filter(function(i) {
+      return Em.getWithDefault(i, 'ClusterStackVersions.stack', null) === App.get('currentStackName') &&
+       Em.getWithDefault(i, 'ClusterStackVersions.version', null) === App.get('currentStackVersionNumber');
     })[0];
     var map = this.get('serviceVersionsMap');
     var stackServices = Em.getWithDefault(rv || {}, 'repository_versions.0.RepositoryVersions.stack_services', false);

http://git-wip-us.apache.org/repos/asf/ambari/blob/db8f3e3f/ambari-web/app/controllers/wizard.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard.js b/ambari-web/app/controllers/wizard.js
index 8b979cd..0eb3d50 100644
--- a/ambari-web/app/controllers/wizard.js
+++ b/ambari-web/app/controllers/wizard.js
@@ -698,11 +698,9 @@ App.WizardController = Em.Controller.extend(App.LocalStorage, App.ThemesMappingM
 
   serviceVersionsMap: {},
   loadServiceVersionFromVersionDefinitionsSuccessCallback: function (jsonData) {
-    var versions = Em.getWithDefault(jsonData, 'items', []);
-    var currentVersion = versions.filterProperty('ClusterStackVersions.state', 'CURRENT')[0];
-    var rv = currentVersion || versions.filter(function(i) {
-      return i.ClusterStackVersions.stack === App.get('currentStackName') &&
-       i.ClusterStackVersions.version === App.get('currentStackVersionNumber');
+    var rv = Em.getWithDefault(jsonData, 'items', []).filter(function(i) {
+      return Em.getWithDefault(i, 'ClusterStackVersions.stack', null) === App.get('currentStackName') &&
+        Em.getWithDefault(i, 'ClusterStackVersions.version', null) === App.get('currentStackVersionNumber');
     })[0];
     var map = this.get('serviceVersionsMap');
     var stackServices = Em.getWithDefault(rv || {}, 'repository_versions.0.RepositoryVersions.stack_services', false);

http://git-wip-us.apache.org/repos/asf/ambari/blob/db8f3e3f/ambari-web/app/utils/ajax/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js
index 6c7ed88..bf5f767 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -1383,11 +1383,11 @@ var urls = {
     'mock': ''
   },
   'cluster.load_detailed_repo_version': {
-    'real': '/clusters/{clusterName}/stack_versions?ClusterStackVersions/state=CURRENT&fields=repository_versions/RepositoryVersions/repository_version&minimal_response=true',
+    'real': '/clusters/{clusterName}/stack_versions?fields=repository_versions/RepositoryVersions/repository_version,ClusterStackVersions/stack,ClusterStackVersions/version&minimal_response=true',
     'mock': '/data/stack_versions/stack_version_all.json'
   },
   'cluster.load_current_repo_stack_services': {
-    'real': '/clusters/{clusterName}/stack_versions?fields=repository_versions/RepositoryVersions/stack_services,ClusterStackVersions/state',
+    'real': '/clusters/{clusterName}/stack_versions?fields=repository_versions/RepositoryVersions/stack_services,ClusterStackVersions/stack,ClusterStackVersions/version',
     'mock': '/data/stack_versions/stack_version_all.json'
   },
   'cluster.save_provisioning_state': {

http://git-wip-us.apache.org/repos/asf/ambari/blob/db8f3e3f/ambari-web/test/controllers/global/cluster_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/global/cluster_controller_test.js b/ambari-web/test/controllers/global/cluster_controller_test.js
index 0fb8b22..fa95c3e 100644
--- a/ambari-web/test/controllers/global/cluster_controller_test.js
+++ b/ambari-web/test/controllers/global/cluster_controller_test.js
@@ -295,11 +295,29 @@ describe('App.clusterController', function () {
   });
 
   describe('#checkDetailedRepoVersionSuccessCallback()', function () {
+    beforeEach(function () {
+      sinon.stub(App, 'get', function(key) {
+        if (key === 'currentStackName') {
+          return 'HDP';
+        }
+        if (key === 'currentStackVersionNumber') {
+          return '2.2';
+        }
+        return Em.get(App, key);
+      });
+    });
+    afterEach(function() {
+      App.get.restore();
+    });
 
     var cases = [
       {
         items: [
           {
+            ClusterStackVersions: {
+              stack: 'HDP',
+              version: '2.2'
+            },
             repository_versions: [
               {
                 RepositoryVersions: {
@@ -315,6 +333,10 @@ describe('App.clusterController', function () {
       {
         items: [
           {
+            ClusterStackVersions: {
+              stack: 'HDP',
+              version: '2.2'
+            },
             repository_versions: [
               {
                 RepositoryVersions: {

http://git-wip-us.apache.org/repos/asf/ambari/blob/db8f3e3f/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js b/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
index 21942d4..7fc183b 100644
--- a/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
@@ -3136,32 +3136,6 @@ describe('App.MainAdminStackAndUpgradeController', function() {
           items: [
             {
               ClusterStackVersions: {
-                state: 'CURRENT'
-              },
-              repository_versions: [
-                {
-                  RepositoryVersions: {
-                    stack_services: [
-                      { name: 'S1', versions: ['v1']}
-                    ]
-                  }
-                }
-              ]
-            }
-          ]
-        },
-        currentStackData: {
-          currentStackVersionNumber: '2.2',
-          currentStackName: 'HDP'
-        },
-        m: 'should add stack services from stack version with state CURRENT',
-        e: { "S1": "v1"}
-      },
-      {
-        jsonData: {
-          items: [
-            {
-              ClusterStackVersions: {
                 version: '2.3',
                 stack: 'HDP',
                 state: 'INIT'
@@ -3198,54 +3172,8 @@ describe('App.MainAdminStackAndUpgradeController', function() {
           currentStackVersionNumber: '2.2',
           currentStackName: 'HDP'
         },
-        m: 'should add stack services from stack version by current stack name and version number' +
-           'when CURRENT version not available',
+        m: 'should add stack services from stack version by current stack name and version number',
         e: { "S2": "v2"}
-      },
-      {
-        jsonData: {
-          items: [
-            {
-              ClusterStackVersions: {
-                version: '2.3',
-                stack: 'HDP',
-                state: 'CURRENT'
-              },
-              repository_versions: [
-                {
-                  RepositoryVersions: {
-                    stack_services: [
-                      { name: 'S3', versions: ['v3']}
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              ClusterStackVersions: {
-                version: '2.2',
-                stack: 'HDP',
-                state: 'INIT'
-              },
-              repository_versions: [
-                {
-                  RepositoryVersions: {
-                    stack_services: [
-                      { name: 'S2', versions: ['v2']}
-                    ]
-                  }
-                }
-              ]
-            }
-          ]
-        },
-        currentStackData: {
-          currentStackVersionNumber: '2.2',
-          currentStackName: 'HDP'
-        },
-        m: 'should add stack services by state CURRENT even when there is stack version with ' +
-           'current stack name and version number',
-        e: { "S3": "v3"}
       }
     ];