You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ab...@apache.org on 2018/05/24 08:41:56 UTC
[ambari] branch trunk updated: AMBARI-23937 Reassign Master Wizard
issues. (ababiichuk)
This is an automated email from the ASF dual-hosted git repository.
ababiichuk pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/trunk by this push:
new 8453f1d AMBARI-23937 Reassign Master Wizard issues. (ababiichuk)
8453f1d is described below
commit 8453f1d4078fda328d9e346456018368b62a0511
Author: ababiichuk <ab...@hortonworks.com>
AuthorDate: Wed May 23 20:20:06 2018 +0300
AMBARI-23937 Reassign Master Wizard issues. (ababiichuk)
---
.../app/mixins/wizard/assign_master_components.js | 32 +++++++++++++++++++++-
ambari-web/app/routes/reassign_master_routes.js | 1 -
2 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/ambari-web/app/mixins/wizard/assign_master_components.js b/ambari-web/app/mixins/wizard/assign_master_components.js
index 79ed6f9..2ac2a59 100644
--- a/ambari-web/app/mixins/wizard/assign_master_components.js
+++ b/ambari-web/app/mixins/wizard/assign_master_components.js
@@ -822,7 +822,37 @@ App.AssignMasterComponents = Em.Mixin.create(App.HostComponentValidationMixin, A
masterComponents.forEach(function (item) {
var masterComponent = App.StackServiceComponent.find().findProperty('componentName', item.component_name);
- var componentObj = Em.Object.create(item);
+ var componentObj = Em.Object.create(item, item.nameSpace ? {
+ allMasters: result,
+ /**
+ * Namespace of NameNode for enabled HDFS federation.
+ * If a new host is assigned to component, looking for other NameNodes
+ * to find which namespace has a 'free' host after this assignment.
+ * NameNodes with new host assigned are excluded from this process
+ * since moving more than one component at once is not allowed.
+ */
+ nameSpace: function () {
+ const hostComponent = App.HostComponent.find(`${this.get('component_name')}_${this.get('selectedHost')}`);
+ if (hostComponent.get('isLoaded')) {
+ return hostComponent.get('haNameSpace');
+ } else {
+ let nameSpacesCounts = {};
+ const allNameSpaces = this.get('allMasters').filter(masterComponent => {
+ return masterComponent.get('serviceComponentId') !== this.get('serviceComponentId')
+ && App.HostComponent.find(`${masterComponent.get('component_name')}_${masterComponent.get('selectedHost')}`).get('isLoaded')
+ && masterComponent.get('nameSpace');
+ }).mapProperty('nameSpace');
+ allNameSpaces.forEach(nameSpace => {
+ const currentCount = nameSpacesCounts[nameSpace];
+ nameSpacesCounts[nameSpace] = currentCount ? currentCount + 1 : 1;
+ });
+ const nameSpacesWithMissingHost = Object.keys(nameSpacesCounts).filter(key => nameSpacesCounts[key] === 1);
+ if (nameSpacesWithMissingHost.length === 1) {
+ return nameSpacesWithMissingHost[0];
+ }
+ }
+ }.property('allMasters.@each.selectedHost')
+ } : {});
var showRemoveControl;
if (masterComponent.get('isMasterWithMultipleInstances')) {
showRemoveControl = installedServices.contains(masterComponent.get('stackService.serviceName')) &&
diff --git a/ambari-web/app/routes/reassign_master_routes.js b/ambari-web/app/routes/reassign_master_routes.js
index d7f84ff..26eccc0 100644
--- a/ambari-web/app/routes/reassign_master_routes.js
+++ b/ambari-web/app/routes/reassign_master_routes.js
@@ -302,7 +302,6 @@ module.exports = App.WizardRoute.extend({
next: function (router) {
var controller = router.get('reassignMasterController');
controller.finish();
- controller.get('popup').hide();
App.clusterStatus.setClusterStatus({
clusterName: router.get('reassignMasterController.content.cluster.name'),
clusterState: 'DEFAULT',
--
To stop receiving notification emails like this one, please contact
ababiichuk@apache.org.