You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ak...@apache.org on 2015/03/23 16:30:12 UTC

ambari git commit: AMBARI-10173. RU: Wizard does not show up in UI when triggered by API. (akovalenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk f424e9c30 -> bcc6c36dc


AMBARI-10173. RU: Wizard does not show up in UI when triggered by API. (akovalenko)


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

Branch: refs/heads/trunk
Commit: bcc6c36dc9c35e645383368431199438593918c1
Parents: f424e9c
Author: Aleksandr Kovalenko <ak...@hortonworks.com>
Authored: Mon Mar 23 15:24:34 2015 +0200
Committer: Aleksandr Kovalenko <ak...@hortonworks.com>
Committed: Mon Mar 23 17:29:15 2015 +0200

----------------------------------------------------------------------
 .../assets/data/stack_versions/upgrades.json    | 15 +++++++
 .../global/background_operations_controller.js  |  3 ++
 .../controllers/global/cluster_controller.js    | 41 +++++++++++++++-----
 ambari-web/app/utils/ajax/ajax.js               |  4 ++
 .../global/cluster_controller_test.js           | 17 ++++++++
 5 files changed, 71 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/bcc6c36d/ambari-web/app/assets/data/stack_versions/upgrades.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/stack_versions/upgrades.json b/ambari-web/app/assets/data/stack_versions/upgrades.json
new file mode 100644
index 0000000..5d0d743
--- /dev/null
+++ b/ambari-web/app/assets/data/stack_versions/upgrades.json
@@ -0,0 +1,15 @@
+{
+  "href": "http://c6401.ambari.apache.org:8080/api/v1/clusters/c/upgrades?fields=Upgrade/request_status,Upgrade/to_version,Upgrade/request_id,Upgrade/direction",
+  "items": [
+    {
+      "href": "http://c6401.ambari.apache.org:8080/api/v1/clusters/c/upgrades/19",
+      "Upgrade": {
+        "cluster_name": "c",
+        "direction": "UPGRADE",
+        "request_id": 19,
+        "request_status": "COMPLETED",
+        "to_version": "2.2.3.0-2610"
+      }
+    }
+  ]
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/bcc6c36d/ambari-web/app/controllers/global/background_operations_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/global/background_operations_controller.js b/ambari-web/app/controllers/global/background_operations_controller.js
index 0bd1d83..bf2a65f 100644
--- a/ambari-web/app/controllers/global/background_operations_controller.js
+++ b/ambari-web/app/controllers/global/background_operations_controller.js
@@ -210,6 +210,9 @@ App.BackgroundOperationsController = Em.Controller.extend({
    
     data.items.forEach(function (request) {
       if (this.isUpgradeRequest(request)) {
+        if (!App.get('upgradeIsRunning')) {
+          App.router.get('clusterController').restoreUpgradeState();
+        }
         return;
       }
       var rq = this.get("services").findProperty('id', request.Requests.id);

http://git-wip-us.apache.org/repos/asf/ambari/blob/bcc6c36d/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 52310cf..f3839c1 100644
--- a/ambari-web/app/controllers/global/cluster_controller.js
+++ b/ambari-web/app/controllers/global/cluster_controller.js
@@ -315,18 +315,30 @@ App.ClusterController = Em.Controller.extend({
   },
 
   /**
-   * restore upgrade status from local storage
+   * restore upgrade status from server
    * and make call to get latest status from server
    */
   restoreUpgradeState: function () {
-    var dbUpgradeState = App.db.get('MainAdminStackAndUpgrade', 'upgradeState');
-    if (!Em.isNone(dbUpgradeState)) {
-      App.set('upgradeState', dbUpgradeState);
-    }
-    App.router.get('mainAdminStackAndUpgradeController').initDBProperties();
-    App.router.get('mainAdminStackAndUpgradeController').loadUpgradeData(true);
-    App.router.get('mainAdminStackAndUpgradeController').loadStackVersionsToModel(true).done(function () {
-      App.set('stackVersionsAvailable', App.StackVersion.find().content.length > 0);
+    this.getAllUpgrades().done(function (data) {
+      var upgradeController = App.router.get('mainAdminStackAndUpgradeController');
+      var lastUpgradeData = data.items.sortProperty('Upgrade.request_id').pop();
+
+      if (lastUpgradeData) {
+        upgradeController.setDBProperty('upgradeId', lastUpgradeData.Upgrade.request_id);
+        upgradeController.setDBProperty('isDowngrade', lastUpgradeData.Upgrade.direction === 'DOWNGRADE');
+        upgradeController.setDBProperty('upgradeState', lastUpgradeData.Upgrade.request_status);
+        upgradeController.setDBProperty('upgradeVersion', lastUpgradeData.Upgrade.to_version);
+      }
+
+      var dbUpgradeState = App.db.get('MainAdminStackAndUpgrade', 'upgradeState');
+      if (!Em.isNone(dbUpgradeState)) {
+        App.set('upgradeState', dbUpgradeState);
+      }
+      upgradeController.initDBProperties();
+      upgradeController.loadUpgradeData(true);
+      upgradeController.loadStackVersionsToModel(true).done(function () {
+        App.set('stackVersionsAvailable', App.StackVersion.find().content.length > 0);
+      });
     });
   },
 
@@ -478,5 +490,16 @@ App.ClusterController = Em.Controller.extend({
   },
   checkDetailedRepoVersionErrorCallback: function () {
     App.set('isStormMetricsSupported', true);
+  },
+
+  /**
+   * Load required data for all upgrades from API
+   * @returns {$.ajax}
+   */
+  getAllUpgrades: function () {
+    return App.ajax.send({
+      name: 'cluster.load_last_upgrade',
+      sender: this
+    });
   }
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/bcc6c36d/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 9aed907..c1c3452 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -1187,6 +1187,10 @@ var urls = {
     'real': '/clusters',
     'mock': '/data/clusters/info.json'
   },
+  'cluster.load_last_upgrade': {
+    'real': '/clusters/{clusterName}/upgrades?fields=Upgrade/request_status,Upgrade/request_id,Upgrade/to_version,Upgrade/direction',
+    'mock': '/data/stack_versions/upgrades.json'
+  },
   'cluster.update_upgrade_version': {
     'real': '/stacks/{stackName}/versions?fields=services/StackServices,Versions',
     'mock': '/data/wizard/stack/stacks.json',

http://git-wip-us.apache.org/repos/asf/ambari/blob/bcc6c36d/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 be4e284..f734dff 100644
--- a/ambari-web/test/controllers/global/cluster_controller_test.js
+++ b/ambari-web/test/controllers/global/cluster_controller_test.js
@@ -505,4 +505,21 @@ describe('App.clusterController', function () {
     });
   });
 
+  describe('#getAllUpgrades()', function () {
+
+    beforeEach(function () {
+      sinon.stub(App.ajax, 'send', Em.K);
+    });
+
+    afterEach(function () {
+      App.ajax.send.restore();
+    });
+
+    it('should send request to get upgrades data', function () {
+      controller.getAllUpgrades();
+      expect(App.ajax.send.calledOnce).to.be.true;
+    });
+
+  });
+
 });