You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2016/01/15 18:34:04 UTC
[40/50] [abbrv] ambari git commit: AMBARI-14584. RU/EU - Fix
calculation of hosts so that non-HDP component hosts will be excluded from
'Uninstalled', show more details on hover.(XIWANG)
AMBARI-14584. RU/EU - Fix calculation of hosts so that non-HDP component hosts will be excluded from 'Uninstalled', show more details on hover.(XIWANG)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f8faa4eb
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f8faa4eb
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f8faa4eb
Branch: refs/heads/branch-dev-patch-upgrade
Commit: f8faa4ebac446f0de2d467c5bc06f380e84b768d
Parents: 8eea78f
Author: Xi Wang <xi...@apache.org>
Authored: Thu Jan 7 17:31:06 2016 -0800
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Thu Jan 14 11:43:29 2016 -0500
----------------------------------------------------------------------
ambari-web/app/app.js | 4 ++
ambari-web/app/messages.js | 1 +
ambari-web/app/models/host_component.js | 7 ++
.../app/models/stack_service_component.js | 5 ++
.../admin/stack_upgrade/upgrade_version_box.hbs | 6 +-
.../stack_upgrade/upgrade_version_box_view.js | 74 +++++++++++++++++++-
.../upgrade_version_box_view_test.js | 2 +
7 files changed, 94 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/f8faa4eb/ambari-web/app/app.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/app.js b/ambari-web/app/app.js
index e80f57b..52f34ab 100644
--- a/ambari-web/app/app.js
+++ b/ambari-web/app/app.js
@@ -343,6 +343,10 @@ module.exports = Em.Application.create({
clients: function () {
return App.StackServiceComponent.find().filterProperty('isClient').mapProperty('componentName')
+ }.property('App.router.clusterController.isLoaded'),
+
+ nonHDP: function () {
+ return App.StackServiceComponent.find().filterProperty('isNonHDPComponent').mapProperty('componentName')
}.property('App.router.clusterController.isLoaded')
})
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/f8faa4eb/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 2f28a75..e93aeff 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1467,6 +1467,7 @@ Em.I18n.translations = {
'admin.stackVersions.version.hostsTooltip': 'Click to List Hosts',
'admin.stackVersions.version.emptyHostsTooltip': 'No Hosts to List',
'admin.stackVersions.version.notInstalled': "Not Installed",
+ 'admin.stackVersions.version.hostsInfoTooltip': "There are {0} hosts that do not need packages installed:<li>{1} Maintenance Mode</li><li>{2} Not Required</li>",
'admin.stackVersions.manageVersions': "Manage Versions",
'admin.stackVersions.manageVersions.popup.body': 'You are about to leave the <b>Cluster Management</b> interface' +
' and go to the <b>Ambari Administration</b> interface. You can return to cluster management by using the' +
http://git-wip-us.apache.org/repos/asf/ambari/blob/f8faa4eb/ambari-web/app/models/host_component.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/host_component.js b/ambari-web/app/models/host_component.js
index b463c80..e63f634 100644
--- a/ambari-web/app/models/host_component.js
+++ b/ambari-web/app/models/host_component.js
@@ -114,6 +114,13 @@ App.HostComponent = DS.Model.extend({
isActive: Em.computed.equal('passiveState', 'OFF'),
passiveTooltip: Em.computed.ifThenElse('isActive', '', Em.I18n.t('hosts.component.passive.mode')),
+ /**
+ * Determine if component is a HDP component
+ * @returns {bool}
+ */
+ isHDPComponent: function () {
+ return !App.get('components.nonHDP').contains(this.get('componentName'));
+ }.property('componentName', 'App.components.nonHDP'),
statusClass: function () {
return this.get('isActive') ? this.get('workStatus') : 'icon-medkit';
http://git-wip-us.apache.org/repos/asf/ambari/blob/f8faa4eb/ambari-web/app/models/stack_service_component.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/stack_service_component.js b/ambari-web/app/models/stack_service_component.js
index 6107dca..a9b342b 100644
--- a/ambari-web/app/models/stack_service_component.js
+++ b/ambari-web/app/models/stack_service_component.js
@@ -71,6 +71,11 @@ App.StackServiceComponent = DS.Model.extend({
isReassignable: Em.computed.existsIn('componentName', ['NAMENODE', 'SECONDARY_NAMENODE', 'JOBTRACKER', 'RESOURCEMANAGER', 'APP_TIMELINE_SERVER', 'OOZIE_SERVER',
'WEBHCAT_SERVER', 'HIVE_SERVER', 'HIVE_METASTORE', 'MYSQL_SERVER', 'METRICS_COLLECTOR', 'HISTORYSERVER']),
+ /** @property {Boolean} isNonHDPComponent - component not belongs to HDP services **/
+ isNonHDPComponent: function() {
+ return ['METRICS_COLLECTOR', 'METRICS_MONITOR'].contains(this.get('componentName'));
+ }.property('componentName'),
+
/** @property {Boolean} isRollinRestartAllowed - component supports rolling restart action **/
isRollinRestartAllowed: function() {
return this.get('isSlave') || this.get('componentName') === 'KAFKA_BROKER';
http://git-wip-us.apache.org/repos/asf/ambari/blob/f8faa4eb/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_box.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_box.hbs b/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_box.hbs
index 0505289..70a0738 100644
--- a/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_box.hbs
+++ b/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_box.hbs
@@ -82,19 +82,19 @@
<div class="span4 align-center not-installed-hosts">
<div><a href="#" class="hosts-tooltip not-active" {{bindAttr data-original-title="view.content.noInitHostsTooltip" }}
{{action showHosts view.versionStateMap.not_installed target="view"}}>
- {{view.content.notInstalledHosts.length}}</a></div>
+ {{view.notInstalledHosts.length}}</a></div>
<div>{{t admin.stackVersions.version.notInstalled}}</div>
</div>
<div class="span4 align-center installed-hosts">
<div><a href="#" class="hosts-tooltip not-active" {{bindAttr data-original-title="view.content.noInstalledHostsTooltip" }}
{{action showHosts view.versionStateMap.installed target="view"}}>
- {{view.content.installedHosts.length}}</a></div>
+ {{view.installedHosts.length}}</a></div>
<div>{{t common.installed}}</div>
</div>
<div class="span4 align-center current-hosts">
<div><a href="#" class="hosts-tooltip not-active" {{bindAttr data-original-title="view.content.noCurrentHostsTooltip" }}
{{action showHosts view.versionStateMap.current target="view"}}>
- {{view.content.currentHosts.length}}</a></div>
+ {{view.currentHosts.length}}</a></div>
<div>{{t common.current}}</div>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/ambari/blob/f8faa4eb/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 df588fd..f8dd4f2 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
@@ -234,6 +234,13 @@ App.UpgradeVersionBoxView = Em.View.extend({
App.tooltip($('.link-tooltip'), {title: Em.I18n.t('admin.stackVersions.version.linkTooltip')});
App.tooltip($('.hosts-tooltip'));
App.tooltip($('.out-of-sync-badge'), {title: Em.I18n.t('hosts.host.stackVersions.status.out_of_sync')});
+ Em.run.later(this, function () {
+ if (this.get('maintenanceHosts').length + this.get('notRequiredHosts').length) {
+ App.tooltip(this.$('.hosts-section'), {placement: 'bottom', title: Em.I18n.t('admin.stackVersions.version.hostsInfoTooltip').format(
+ this.get('maintenanceHosts').length + this.get('notRequiredHosts').length, this.get('maintenanceHosts').length, this.get('notRequiredHosts').length
+ )});
+ }
+ }, 1000);
},
/**
@@ -362,7 +369,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
showHosts: function (event) {
var status = event.contexts[0];
var displayName = this.get('content.displayName');
- var hosts = this.get('content').get(status['property']);
+ var hosts = this.get(status['property']);
var self = this;
hosts.sort();
if (hosts.length) {
@@ -394,5 +401,68 @@ App.UpgradeVersionBoxView = Em.View.extend({
App.router.get('mainHostController').filterByStack(displayName, state);
App.router.get('mainHostController').set('showFilterConditionsFirstLoad', true);
App.router.transitionTo('hosts.index');
- }
+ },
+
+ /**
+ * Not installed hosts should exclude 1.not required hosts 2. Maintenance Mode hosts,
+ * or it maybe confusing to users
+ * @type {Array}
+ */
+ notInstalledHosts: function () {
+ var notInstalledHosts = this.get('content.notInstalledHosts') || App.get('allHostNames');
+ var notRequiredHosts = this.get('notRequiredHosts');
+ var maintenanceHosts = this.get('maintenanceHosts');
+ if (notInstalledHosts.length && notRequiredHosts.length) {
+ notRequiredHosts.forEach(function(not_required) {
+ var index = notInstalledHosts.indexOf(not_required)
+ if (index > -1) {
+ notInstalledHosts.splice(index, 1);
+ }
+ });
+ }
+ if (notInstalledHosts.length && maintenanceHosts.length) {
+ maintenanceHosts.forEach(function(mm_host) {
+ var index = notInstalledHosts.indexOf(mm_host)
+ if (index > -1) {
+ notInstalledHosts.splice(index, 1);
+ }
+ });
+ }
+ return notInstalledHosts;
+ }.property('content.notInstalledHosts', 'notRequiredHosts', 'maintenanceHosts'),
+
+ /**
+ * @type {Array}
+ */
+ maintenanceHosts: function () {
+ return App.Host.find().filterProperty('passiveState', 'ON').mapProperty('hostName') || [];
+ }.property(''),
+
+ /**
+ * Host with no HDP component is not required to install new version
+ * @type {Array}
+ */
+ notRequiredHosts: function () {
+ var notRequiredHosts = [];
+ App.Host.find().forEach(function(host) {
+ if (!host.get('hostComponents').someProperty('isHDPComponent')) {
+ notRequiredHosts.push(host.get('hostName'));
+ }
+ });
+ return notRequiredHosts.uniq() || [];
+ }.property(''),
+
+ /**
+ * @type {Array}
+ */
+ installedHosts: function () {
+ return this.get('content.installedHosts') || [];
+ }.property('content.installedHosts'),
+
+ /**
+ * @type {Array}
+ */
+ currentHosts: function () {
+ return this.get('content.currentHosts') || [];
+ }.property('content.currentHosts')
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/f8faa4eb/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 5277744..e432813 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
@@ -272,6 +272,7 @@ describe('App.UpgradeVersionBoxView', function () {
view.set('content', Em.Object.create({
p1: []
}));
+ view.set('p1', []);
view.showHosts({contexts: [
{'property': 'p1'}
]});
@@ -282,6 +283,7 @@ describe('App.UpgradeVersionBoxView', function () {
p1: ['host1'],
displayName: 'version'
}));
+ view.set('p1', ['host1']);
var popup = view.showHosts({contexts: [
{id: 1, 'property': 'p1'}
]});