You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by xi...@apache.org on 2015/10/28 19:06:42 UTC

ambari git commit: AMBARI-13594.Express Upgrade: UI - Disallow RU in HDP 2.1->2.3 since no upgrade pack supports it.(xiwang)

Repository: ambari
Updated Branches:
  refs/heads/trunk 4c0cb0559 -> 987373628


AMBARI-13594.Express Upgrade: UI - Disallow RU in HDP 2.1->2.3 since no upgrade pack supports it.(xiwang)


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

Branch: refs/heads/trunk
Commit: 9873736281e3adf123dd96ac3520245c7ed44d1d
Parents: 4c0cb05
Author: Xi Wang <xi...@apache.org>
Authored: Tue Oct 27 17:57:11 2015 -0700
Committer: Xi Wang <xi...@apache.org>
Committed: Wed Oct 28 10:56:30 2015 -0700

----------------------------------------------------------------------
 .../stack_versions/supported_upgrade_types.json | 18 +++++++++++
 .../main/admin/stack_and_upgrade_controller.js  | 32 +++++++++++++++++++-
 ambari-web/app/utils/ajax/ajax.js               |  5 +++
 .../admin/stack_and_upgrade_controller_test.js  |  8 +++++
 4 files changed, 62 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/98737362/ambari-web/app/assets/data/stack_versions/supported_upgrade_types.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/stack_versions/supported_upgrade_types.json b/ambari-web/app/assets/data/stack_versions/supported_upgrade_types.json
new file mode 100644
index 0000000..eb4ed59
--- /dev/null
+++ b/ambari-web/app/assets/data/stack_versions/supported_upgrade_types.json
@@ -0,0 +1,18 @@
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/compatible_repository_versions?CompatibleRepositoryVersions/repository_version=2.3.4.0-3074",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/compatible_repository_versions/2",
+      "CompatibleRepositoryVersions" : {
+        "id" : 2,
+        "repository_version" : "2.3.4.0-3074",
+        "stack_name" : "HDP",
+        "stack_version" : "2.3",
+        "upgrade_types" : [
+          "ROLLING",
+          "NON_ROLLING"
+        ]
+      }
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/98737362/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 a8a9853..9a1ac80 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
@@ -605,7 +605,13 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
   upgradeOptions: function (isInUpgradeWizard, version) {
     var self = this;
     if (!isInUpgradeWizard) {
-      this.runUpgradeMethodChecks(version);
+      this.getSupportedUpgradeTypes(Ember.Object.create({
+        stackName: App.get('currentStackVersion').split('-')[0],
+        stackVersion: App.get('currentStackVersion').split('-')[1],
+        toVersion: version.get('repositoryVersion')
+      })).done(function(){
+          self.runUpgradeMethodChecks(version);
+      });
     }
 
     return App.ModalPopup.show({
@@ -768,6 +774,30 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
   },
 
   /**
+   * send request to get available upgrade tye names
+   */
+  getSupportedUpgradeTypes: function(data) {
+    return App.ajax.send({
+      name: "admin.upgrade.get_supported_upgradeTypes",
+      sender: this,
+      data: data,
+      success: "getSupportedUpgradeTypesSuccess",
+      error: "getSupportedUpgradeTypesError"
+    });
+  },
+
+  /**
+   * success callback of <code>getSupportedUpgradeTypes()</code>
+   * @param data {object}
+   */
+  getSupportedUpgradeTypesSuccess: function (data) {
+    var supportedUpgradeTypes = data.items[0] && data.items[0].CompatibleRepositoryVersions.upgrade_types;
+    this.get('upgradeMethods').forEach(function (method) {
+      method.set('allowed', supportedUpgradeTypes && !!supportedUpgradeTypes.contains(method.get('type')));
+    });
+  },
+
+  /**
    * success callback of <code>runPreUpgradeCheckOnly()</code>
    * Show a message how many fails/warnings/passed
    * on clicking that message a popup window show up

http://git-wip-us.apache.org/repos/asf/ambari/blob/98737362/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 30daace..e862ac4 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -1729,6 +1729,11 @@ var urls = {
     'mock': '/data/stack_versions/pre_upgrade_check.json'
   },
 
+  'admin.upgrade.get_supported_upgradeTypes': {
+    'real': '/stacks/{stackName}/versions/{stackVersion}/compatible_repository_versions?CompatibleRepositoryVersions/repository_version={toVersion}',
+    'mock': '/data/stack_versions/supported_upgrade_types.json'
+  },
+
   'admin.kerberos_security.checks': {
     //TODO when api will be known
     'real': '',

http://git-wip-us.apache.org/repos/asf/ambari/blob/98737362/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 2c15790..67fc368 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
@@ -768,15 +768,20 @@ describe('App.MainAdminStackAndUpgradeController', function() {
     before(function () {
       sinon.spy(App, 'ModalPopup');
       sinon.spy(App, 'showConfirmationFeedBackPopup');
+      this.mock = sinon.stub(controller, 'getSupportedUpgradeTypes');
       sinon.stub(controller, 'runPreUpgradeCheck', Em.K);
     });
     after(function () {
       App.ModalPopup.restore();
       App.showConfirmationFeedBackPopup.restore();
       controller.runPreUpgradeCheck.restore();
+      this.mock.restore();
     });
     it("show confirmation popup", function() {
       var version = Em.Object.create({displayName: 'HDP-2.2'});
+      this.mock.returns({
+        done: function(callback) {callback([1]);}
+      });
       controller.upgradeMethods = [
         Em.Object.create({
           displayName: Em.I18n.t('admin.stackVersions.version.upgrade.upgradeOptions.RU.title'),
@@ -805,6 +810,9 @@ describe('App.MainAdminStackAndUpgradeController', function() {
     });
     it("NOT show confirmation popup on Downgrade", function() {
       var version = Em.Object.create({displayName: 'HDP-2.2'});
+      this.mock.returns({
+        done: function(callback) {callback([1]);}
+      });
       controller.set('isDowngrade', true);
       var popup = controller.upgradeOptions(false, version);
       expect(App.ModalPopup.calledOnce).to.be.false;