You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by on...@apache.org on 2015/08/26 13:30:04 UTC
ambari git commit: AMBARI-12879. Warn the user about HDFS Upgrade not
finalized in Ambari Web UI (onechiporenko)
Repository: ambari
Updated Branches:
refs/heads/branch-2.1 90a012b71 -> 989ced8be
AMBARI-12879. Warn the user about HDFS Upgrade not finalized in Ambari Web UI (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/989ced8b
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/989ced8b
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/989ced8b
Branch: refs/heads/branch-2.1
Commit: 989ced8be0b94131f1ef841de7308002cda0e303
Parents: 90a012b
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Wed Aug 26 14:27:05 2015 +0300
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Wed Aug 26 14:27:05 2015 +0300
----------------------------------------------------------------------
.../main/admin/stack_and_upgrade_controller.js | 46 ++++++++++
ambari-web/app/messages.js | 1 +
ambari-web/app/styles/application.less | 2 +-
ambari-web/app/templates/application.hbs | 7 +-
ambari-web/app/utils/ajax/ajax.js | 4 +
.../admin/stack_upgrade/upgrade_wizard_view.js | 2 +-
.../admin/stack_and_upgrade_controller_test.js | 91 +++++++++++++++++++-
.../stack_upgrade/upgrade_wizard_view_test.js | 3 +-
8 files changed, 151 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/989ced8b/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 e9829ce..fa5b479 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
@@ -83,6 +83,18 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
*/
taskDetailsProperties: ['status', 'stdout', 'stderr', 'error_log', 'host_name', 'output_log'],
+ /**
+ * Context for Finalize item
+ * @type {string}
+ */
+ finalizeContext: 'Confirm Finalize',
+
+ /**
+ * Check if current item is Finalize
+ * @type {boolean}
+ */
+ isFinalizeItem: false,
+
isLoadUpgradeDataPending: false,
/**
@@ -798,6 +810,40 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
}.observes('App.upgradeState'),
/**
+ * Check <code>App.upgradeState</code> for HOLDING
+ * If it is, send request to check if current item is Finalize
+ * @method updateFinalize
+ */
+ updateFinalize: function () {
+ var upgradeState = App.get('upgradeState');
+ if (upgradeState === 'HOLDING') {
+ return App.ajax.send({
+ name: 'admin.upgrade.finalizeContext',
+ sender: this,
+ success: 'updateFinalizeSuccessCallback',
+ error: 'updateFinalizeErrorCallback'
+ })
+ }
+ else {
+ this.set('isFinalizeItem', false);
+ }
+ }.observes('App.upgradeState'),
+
+ /**
+ *
+ * @param {object|null} data
+ * @method updateFinalizeSuccessCallback
+ */
+ updateFinalizeSuccessCallback: function (data) {
+ var context = data ? Em.get(data, 'upgrade_groups.firstObject.upgrade_items.firstObject.UpgradeItem.context') : '';
+ this.set('isFinalizeItem', context === this.get('finalizeContext'));
+ },
+
+ updateFinalizeErrorCallback: function() {
+ this.set('isFinalizeItem', false);
+ },
+
+ /**
* show dialog with tasks of upgrade
* @return {App.ModalPopup}
*/
http://git-wip-us.apache.org/repos/asf/ambari/blob/989ced8b/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 04f4ba4..1113e4a 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1433,6 +1433,7 @@ Em.I18n.translations = {
'admin.stackVersions.version.reinstall': "Reinstall Packages",
'admin.stackVersions.version.performUpgrade': "Perform Upgrade",
'admin.stackVersions.version.upgrade.pause': "Upgrade: Action Required",
+ 'admin.stackVersions.version.upgrade.notFinalized.warning': "The upgrade has not been finalized yet. After the cluster is verified to be functional, do not forget to finalize the upgrade as soon as possible (within a couple of days is highly recommended) as running the cluster in unfinalized state causes extra resource requirements on HDFS.",
'admin.stackVersions.version.upgrade.running': "Upgrade: In Process",
'admin.stackVersions.version.upgrade.aborted': "Upgrade: Aborted",
'admin.stackVersions.version.downgrade.pause': "Downgrade: Action Required",
http://git-wip-us.apache.org/repos/asf/ambari/blob/989ced8b/ambari-web/app/styles/application.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/application.less b/ambari-web/app/styles/application.less
index c901b1e..dd2ee28 100644
--- a/ambari-web/app/styles/application.less
+++ b/ambari-web/app/styles/application.less
@@ -2040,7 +2040,7 @@ a:focus {
font-size: 11px;
}
.upgrade-status-warning {
- color: @health-status-orange;
+ color: @health-status-red;
}
tr td:first-child {
width: 180px;
http://git-wip-us.apache.org/repos/asf/ambari/blob/989ced8b/ambari-web/app/templates/application.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/application.hbs b/ambari-web/app/templates/application.hbs
index 2716fb5..3b373d6 100644
--- a/ambari-web/app/templates/application.hbs
+++ b/ambari-web/app/templates/application.hbs
@@ -102,8 +102,9 @@
{{#if App.upgradeIsNotFinished}}
<div class="ru-badge span12">
<div class="navbar navbar-static-top clearfix">
- <div class="span4 offset4">
+ <div class="span11">
{{#if isExistingClusterDataLoaded}}
+ <p class="span4 offset4">
<a class="brand cluster-name" href="#">
{{#if App.upgradeInProgress}}
{{#if App.router.mainAdminStackAndUpgradeController.isDowngrade}}
@@ -139,6 +140,10 @@
{{/if}}
{{/if}}
</a>
+ </p>
+ {{#if App.router.mainAdminStackAndUpgradeController.isFinalizeItem}}
+ <p class="span10 alert alert-warning">{{t admin.stackVersions.version.upgrade.notFinalized.warning}}</p>
+ {{/if}}
{{/if}}
</div>
</div>
http://git-wip-us.apache.org/repos/asf/ambari/blob/989ced8b/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 bde7af6..4b27157 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -1501,6 +1501,10 @@ var urls = {
'real': '/clusters/{clusterName}/upgrades/{id}?fields=Upgrade',
'mock': '/data/stack_versions/upgrade.json'
},
+ 'admin.upgrade.finalizeContext': {
+ 'real': '/clusters/{clusterName}/upgrades/{id}?upgrade_groups/upgrade_items/UpgradeItem/status=HOLDING&fields=upgrade_groups/upgrade_items/UpgradeItem/context',
+ 'mock': '/data/stack_versions/upgrade.json'
+ },
'admin.upgrade.upgrade_item': {
'real': '/clusters/{clusterName}/upgrades/{upgradeId}/upgrade_groups/{groupId}/upgrade_items/{stageId}?fields=' +
'UpgradeItem/group_id,' +
http://git-wip-us.apache.org/repos/asf/ambari/blob/989ced8b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
index d7098a6..fde7906 100644
--- a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
+++ b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
@@ -174,7 +174,7 @@ App.upgradeWizardView = Em.View.extend({
* @type {boolean}
*/
isFinalizeItem: function () {
- return this.get('manualItem.context') === 'Confirm Finalize';
+ return this.get('manualItem.context') === this.get('controller.finalizeContext');
}.property('manualItem.context'),
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/989ced8b/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 73327f5..253ef80 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
@@ -274,7 +274,6 @@ describe('App.MainAdminStackAndUpgradeController', function() {
});
});
-
describe("#runPreUpgradeCheck()", function() {
before(function () {
sinon.stub(App.ajax, 'send', Em.K);
@@ -1122,4 +1121,94 @@ describe('App.MainAdminStackAndUpgradeController', function() {
});
});
+
+ describe('#updateFinalize', function () {
+
+ beforeEach(function() {
+ sinon.stub($, 'ajax', Em.K);
+ controller.set('isFinalizeItem', true);
+ });
+
+ afterEach(function () {
+ $.ajax.restore();
+ });
+
+ it('should do ajax-request', function () {
+ sinon.stub(App, 'get').withArgs('upgradeState').returns('HOLDING');
+ controller.updateFinalize();
+ App.get.restore();
+ expect($.ajax.calledOnce).to.be.true;
+ });
+
+ it('shouldn\'t do ajax-request', function () {
+ sinon.stub(App, 'get').withArgs('upgradeState').returns('HOLDING_TIMEDOUT');
+ controller.updateFinalize();
+ App.get.restore();
+ expect(controller.get('isFinalizeItem')).to.be.false;
+ expect($.ajax.calledOnce).to.be.false;
+ });
+
+ });
+
+ describe('#updateFinalizeSuccessCallback', function () {
+
+ it('data exists and Finalize should be true', function() {
+ var data = {
+ upgrade_groups: [
+ {
+ upgrade_items: [
+ {
+ UpgradeItem: {
+ context: controller.get('finalizeContext'),
+ status: "HOLDING"
+ }
+ }
+ ]
+ }
+ ]
+ };
+ controller.set('isFinalizeItem', false);
+ controller.updateFinalizeSuccessCallback(data);
+ expect(controller.get('isFinalizeItem')).to.be.true;
+ });
+
+ it('data exists and Finalize should be false', function() {
+ var data = {
+ upgrade_groups: [
+ {
+ upgrade_items: [
+ {
+ UpgradeItem: {
+ context: '!@#$%^&',
+ status: "HOLDING"
+ }
+ }
+ ]
+ }
+ ]
+ };
+ controller.set('isFinalizeItem', true);
+ controller.updateFinalizeSuccessCallback(data);
+ expect(controller.get('isFinalizeItem')).to.be.false;
+ });
+
+ it('data doesn\'t exist', function() {
+ var data = null;
+ controller.set('isFinalizeItem', true);
+ controller.updateFinalizeSuccessCallback(data);
+ expect(controller.get('isFinalizeItem')).to.be.false;
+ });
+
+ });
+
+ describe('#updateFinalizeErrorCallback', function () {
+
+ it('should set isFinalizeItem to false', function () {
+ controller.set('isFinalizeItem', true);
+ controller.updateFinalizeErrorCallback();
+ expect(controller.get('isFinalizeItem')).to.be.false;
+ });
+
+ });
+
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/989ced8b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
index 37027b1..b762500 100644
--- a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
+++ b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
@@ -26,6 +26,7 @@ describe('App.upgradeWizardView', function () {
});
view.reopen({
controller: Em.Object.create({
+ finalizeContext: 'Confirm Finalize',
upgradeData: Em.Object.create(),
loadUpgradeData: Em.K,
setUpgradeItemStatus: Em.K,
@@ -422,7 +423,7 @@ describe('App.upgradeWizardView', function () {
});
describe("#isFinalizeItem", function () {
- it("", function () {
+ it("depends of manualItem.context", function () {
view.reopen({
manualItem: {
context: 'Confirm Finalize'