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 <[email protected]>
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('[email protected]')
+ } : {});
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
[email protected].