AMBARI-21703. UI must consume API to show whether a service will be upgraded (alexantonenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/418be516 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/418be516 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/418be516 Branch: refs/heads/feature-branch-AMBARI-21307 Commit: 418be516334aaebf0d83f8c074fef9fec4a2c2e3 Parents: 138caea Author: Alex Antonenko <aantone...@hortonworks.com> Authored: Wed Aug 30 12:30:03 2017 +0300 Committer: Alex Antonenko <aantone...@hortonworks.com> Committed: Wed Aug 30 12:30:03 2017 +0300 ---------------------------------------------------------------------- ambari-web/app/mappers/repository_version_mapper.js | 3 ++- ambari-web/app/mappers/stack_version_mapper.js | 5 ++++- ambari-web/app/messages.js | 2 ++ ambari-web/app/models/stack_version/service_simple.js | 1 + ambari-web/app/styles/stack_versions.less | 8 ++++++++ .../main/admin/stack_upgrade/upgrade_version_column.hbs | 3 +++ ambari-web/app/utils/ajax/ajax.js | 2 +- .../main/admin/stack_upgrade/upgrade_version_column_view.js | 5 ++++- 8 files changed, 25 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/418be516/ambari-web/app/mappers/repository_version_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/repository_version_mapper.js b/ambari-web/app/mappers/repository_version_mapper.js index 8b2014b..746fc53 100644 --- a/ambari-web/app/mappers/repository_version_mapper.js +++ b/ambari-web/app/mappers/repository_version_mapper.js @@ -122,7 +122,8 @@ App.repoVersionMapper = App.QuickDataMapper.create({ name: service.name, display_name: service.display_name, latest_version: service.versions[0] ? service.versions[0] : '', - is_available: item[repoVersionsKey].services.someProperty('name', service.name) + is_available: item[repoVersionsKey].services.someProperty('name', service.name), + is_upgradable: json.stackServices[service.name] && json.stackServices[service.name].upgrade }; resultService.push(serviceObj); }, this); http://git-wip-us.apache.org/repos/asf/ambari/blob/418be516/ambari-web/app/mappers/stack_version_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/stack_version_mapper.js b/ambari-web/app/mappers/stack_version_mapper.js index 62187b0..2b091a0 100644 --- a/ambari-web/app/mappers/stack_version_mapper.js +++ b/ambari-web/app/mappers/stack_version_mapper.js @@ -77,7 +77,10 @@ App.stackVersionMapper = App.QuickDataMapper.create({ if (item.repository_versions && item.repository_versions[0]) { item.repository_versions[0].RepositoryVersions.stackVersionId = item.ClusterStackVersions.id; - App.repoVersionMapper.map({"items": item.repository_versions }, true, true); + App.repoVersionMapper.map({ + "items": item.repository_versions, + "stackServices": item.ClusterStackVersions.repository_summary.services + }, true, true); } resultStack.push(this.parseIt(stack, this.get('modelStack'))); }, this); http://git-wip-us.apache.org/repos/asf/ambari/blob/418be516/ambari-web/app/messages.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js index 28569c9..17a791e 100644 --- a/ambari-web/app/messages.js +++ b/ambari-web/app/messages.js @@ -1757,6 +1757,8 @@ Em.I18n.translations = { 'admin.stackDowngrade.state.paused.fail.header': "Pause Downgrade failed", 'admin.stackDowngrade.state.paused.fail.body': "Downgrade could not be paused. Try again later.", + 'admin.stackVersions.version.service.notUpgradable': "Update available, but already installed.", + 'admin.stackVersions.version.upgrade.upgradeOptions.header': "Upgrade Options", 'admin.stackVersions.version.upgrade.upgradeOptions.bodyMsg.version': "You are about to perform an upgrade to <b>{0}</b>.", 'admin.stackVersions.version.upgrade.upgradeOptions.bodyMsg.method': "Choose the upgrade method:", http://git-wip-us.apache.org/repos/asf/ambari/blob/418be516/ambari-web/app/models/stack_version/service_simple.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/stack_version/service_simple.js b/ambari-web/app/models/stack_version/service_simple.js index ffb32bf..a31c829 100644 --- a/ambari-web/app/models/stack_version/service_simple.js +++ b/ambari-web/app/models/stack_version/service_simple.js @@ -24,6 +24,7 @@ App.ServiceSimple = DS.Model.extend({ displayName: DS.attr('string'), latestVersion: DS.attr('string'), isAvailable: DS.attr('boolean'), + isUpgradable: DS.attr('boolean'), isHidden: function () { var hiddenServices = ['MAPREDUCE2']; return hiddenServices.contains(this.get('name')) || this.get('doNotShowAndInstall'); http://git-wip-us.apache.org/repos/asf/ambari/blob/418be516/ambari-web/app/styles/stack_versions.less ---------------------------------------------------------------------- diff --git a/ambari-web/app/styles/stack_versions.less b/ambari-web/app/styles/stack_versions.less index d2f7ab4..a9dcbaa 100644 --- a/ambari-web/app/styles/stack_versions.less +++ b/ambari-web/app/styles/stack_versions.less @@ -347,6 +347,14 @@ } } div.version-column { + .not-upgradable { + padding-left: 10px; + margin-right: -20px; + cursor: pointer; + } + .icon-info-sign { + color: @blue; + } .services-section { .service-version-info { span.label.available { http://git-wip-us.apache.org/repos/asf/ambari/blob/418be516/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_column.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_column.hbs b/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_column.hbs index 6502672..2ec0d7c 100644 --- a/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_column.hbs +++ b/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_column.hbs @@ -87,6 +87,9 @@ <span {{bindAttr class="service.isVersionInvisible:invisible service.isAvailable:available :label"}}> {{service.latestVersion}} </span> + {{#if service.notUpgradable}} + <i class="icon-info-sign not-upgradable"></i> + {{/if}} </p> {{/each}} </div> http://git-wip-us.apache.org/repos/asf/ambari/blob/418be516/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 70a293c..260417c 100644 --- a/ambari-web/app/utils/ajax/ajax.js +++ b/ambari-web/app/utils/ajax/ajax.js @@ -1357,7 +1357,7 @@ var urls = { 'mock': '/data/clusters/info.json' }, 'cluster.load_last_upgrade': { - 'real': '/clusters/{clusterName}/upgrades', + 'real': '/clusters/{clusterName}/upgrades?fields=Upgrade/*', 'mock': '/data/stack_versions/upgrades.json' }, 'cluster.update_upgrade_version': { http://git-wip-us.apache.org/repos/asf/ambari/blob/418be516/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js index 11ac1cb..4039497 100644 --- a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js +++ b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js @@ -26,6 +26,7 @@ App.UpgradeVersionColumnView = App.UpgradeVersionBoxView.extend({ didInsertElement: function () { App.tooltip($('.out-of-sync-badge'), {title: Em.I18n.t('hosts.host.stackVersions.status.out_of_sync')}); + App.tooltip($('.not-upgradable'), {title: Em.I18n.t('admin.stackVersions.version.service.notUpgradable')}); if (!this.get('content.isCompatible')) { App.tooltip(this.$(".repo-version-tooltip"), { title: Em.I18n.t('admin.stackVersions.version.noCompatible.tooltip') @@ -50,12 +51,14 @@ App.UpgradeVersionColumnView = App.UpgradeVersionBoxView.extend({ return App.Service.find().map(function (service) { var stackService = originalServices.findProperty('name', service.get('serviceName')); + var isAvailable = this.isStackServiceAvailable(stackService); return Em.Object.create({ displayName: service.get('displayName'), name: service.get('serviceName'), latestVersion: stackService ? stackService.get('latestVersion') : '', isVersionInvisible: !stackService, - isAvailable: this.isStackServiceAvailable(stackService) + notUpgradable: !this.get('content.isStandard') && isAvailable && !stackService.get('isUpgradable'), + isAvailable: isAvailable }); }, this); }.property(),