AMBARI-22133. Repositories With No Components On Them Are Shown as Upgradeable (alexantonenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d1ba2298 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d1ba2298 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d1ba2298 Branch: refs/heads/branch-feature-AMBARI-14714 Commit: d1ba22989ad81b252f2103f3ae3e674ce56bc2ea Parents: 158bd65 Author: Alex Antonenko <[email protected]> Authored: Wed Oct 4 21:19:52 2017 +0300 Committer: Alex Antonenko <[email protected]> Committed: Wed Oct 4 21:19:52 2017 +0300 ---------------------------------------------------------------------- .../stack_upgrade/upgrade_version_box_view.js | 42 +++++++---- .../upgrade_version_box_view_test.js | 77 +++++++++++--------- 2 files changed, 72 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/d1ba2298/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js index 81049e9..28f4f32 100644 --- a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js +++ b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js @@ -276,28 +276,44 @@ App.UpgradeVersionBoxView = Em.View.extend({ break; default: var isVersionColumnView = this.get('isVersionColumnView'); - element.set('isButtonGroup', true); - element.set('text', isVersionColumnView ? Em.I18n.t('common.upgrade') : Em.I18n.t('admin.stackVersions.version.performUpgrade')); - element.set('action', 'confirmUpgrade'); - element.get('buttons').pushObject({ - text: isVersionColumnView ? Em.I18n.t('common.reinstall') : Em.I18n.t('admin.stackVersions.version.reinstall'), - action: 'installRepoVersionPopup', - isDisabled: isDisabled + var stackServices = this.get('content.stackServices'); + var isUpgradable = stackServices && stackServices.some( function(stackService){ + return stackService.get('isUpgradable'); }); + var isPatch = this.get('content.isPatch'); + var isMaint = this.get('content.isMaint'); - element.get('buttons').pushObject({ - text: Em.I18n.t('admin.stackVersions.version.preUpgradeCheck'), - action: 'showUpgradeOptions', - isDisabled: isDisabled - }); + element.set('isButtonGroup', true); + if (isUpgradable){ + element.set('text', isVersionColumnView ? Em.I18n.t('common.upgrade') : Em.I18n.t('admin.stackVersions.version.performUpgrade')); + element.set('action', 'confirmUpgrade'); + element.get('buttons').pushObject({ + text: isVersionColumnView ? Em.I18n.t('common.reinstall') : Em.I18n.t('admin.stackVersions.version.reinstall'), + action: 'installRepoVersionPopup', + isDisabled: isDisabled + }); - if (this.get('content.isPatch') || this.get('content.isMaint')) { + element.get('buttons').pushObject({ + text: Em.I18n.t('admin.stackVersions.version.preUpgradeCheck'), + action: 'showUpgradeOptions', + isDisabled: isDisabled + }); + } + else{ + element.set('iconClass', 'icon-ok'); + element.set('text', Em.I18n.t('common.installed')) + } + + if ( isPatch || isMaint ) { element.get('buttons').pushObject({ text: Em.I18n.t('common.hide'), action: 'confirmDiscardRepoVersion', isDisabled: isDisabled }); } + + + } element.set('isDisabled', isDisabled); } http://git-wip-us.apache.org/repos/asf/ambari/blob/d1ba2298/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js index 5a8f135..506fb81 100644 --- a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js +++ b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js @@ -357,6 +357,8 @@ describe('App.UpgradeVersionBoxView', function () { describe("#showHosts()", function () { beforeEach(function () { + view.set('content.stackVersion', Em.Object.create({supportsRevert: false})); + view.set('content.stackServices', [Em.Object.create({isUpgradable: true})]) sinon.spy(App.ModalPopup, 'show'); sinon.stub(view, 'filterHostsByStack', Em.K); }); @@ -681,6 +683,7 @@ describe('App.UpgradeVersionBoxView', function () { { inputData: { 'content.status': 'INSTALLED', + 'content.stackServices': [Em.Object.create({isUpgradable:true})], 'controller.requestInProgress': true, 'content.isPatch': true, 'parentView.repoVersions': [ @@ -707,15 +710,16 @@ describe('App.UpgradeVersionBoxView', function () { isButtonGroup: true, buttons: [ { - text: Em.I18n.t('admin.stackVersions.version.reinstall'), - action: 'installRepoVersionPopup', - isDisabled: true + "action": "installRepoVersionPopup", + "isDisabled": true, + "text": "Reinstall Packages", }, { - text: Em.I18n.t('admin.stackVersions.version.preUpgradeCheck'), - action: 'showUpgradeOptions', - isDisabled: true + "action": "showUpgradeOptions", + "isDisabled": true, + "text": "Pre-Upgrade Check" }, + { "action": "confirmDiscardRepoVersion", "isDisabled": true, @@ -751,18 +755,7 @@ describe('App.UpgradeVersionBoxView', function () { expected: { status: 'INSTALLED', isButtonGroup: true, - buttons: [ - { - text: Em.I18n.t('admin.stackVersions.version.reinstall'), - action: 'installRepoVersionPopup', - isDisabled: true - }, - { - text: Em.I18n.t('admin.stackVersions.version.preUpgradeCheck'), - action: 'showUpgradeOptions', - isDisabled: true - } - ], + buttons: [], isDisabled: true }, title: 'installed version, later than current one, admin access, no requests in progress, another installation running' @@ -1397,7 +1390,33 @@ describe('App.UpgradeVersionBoxView', function () { }))); }); - it('version higher than current and in INSTALLED state', function() { + it('version higher than current and in INSTALLED state hasnt services andis not patch or maint', function() { + view.set('controller', Em.Object.create({ + currentVersion: Em.Object.create({ + repository_version: '2.0', + stack_name: 'HDP' + }) + })); + view.set('content', Em.Object.create({ + status: 'INSTALLED', + repositoryVersion: '2.1', + stackVersionType: 'HDP', + isPatch: false + })); + var element = Em.Object.create({ + buttons: [] + }); + view.processPreUpgradeState(element); + expect(JSON.stringify(element)).to.be.equal(JSON.stringify(Em.Object.create({ + "buttons": [], + "isButtonGroup": true, + 'iconClass': 'icon-ok', + "text": Em.I18n.t('common.installed'), + "isDisabled": false + }))); + }); + + it('version higher than current and in INSTALLED state hasnt services ant is patch', function() { view.set('controller', Em.Object.create({ currentVersion: Em.Object.create({ repository_version: '2.0', @@ -1417,24 +1436,14 @@ describe('App.UpgradeVersionBoxView', function () { expect(JSON.stringify(element)).to.be.equal(JSON.stringify(Em.Object.create({ "buttons": [ { - "text": Em.I18n.t('admin.stackVersions.version.reinstall'), - "action": "installRepoVersionPopup", - "isDisabled": false - }, - { - text: Em.I18n.t('admin.stackVersions.version.preUpgradeCheck'), - action: 'showUpgradeOptions', - isDisabled: false - }, - { - "text": Em.I18n.t('common.hide'), - "action": "confirmDiscardRepoVersion", - "isDisabled": false + "text":Em.I18n.t('common.hide'), + "action":"confirmDiscardRepoVersion", + "isDisabled":false } ], "isButtonGroup": true, - "text": Em.I18n.t('admin.stackVersions.version.performUpgrade'), - "action": 'confirmUpgrade', + 'iconClass': 'icon-ok', + "text": Em.I18n.t('common.installed'), "isDisabled": false }))); });
