You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ja...@apache.org on 2016/02/29 23:46:31 UTC
ambari git commit: AMBARI-15235. Display tag for StandBy name node
should not be changed to NameNode if there is an active namenode. (jaimin)
Repository: ambari
Updated Branches:
refs/heads/trunk 7a36ae748 -> a5ed43fca
AMBARI-15235. Display tag for StandBy name node should not be changed to NameNode if there is an active namenode. (jaimin)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/a5ed43fc
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/a5ed43fc
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/a5ed43fc
Branch: refs/heads/trunk
Commit: a5ed43fcab5de7fcb94fa56e7279f32e158760e3
Parents: 7a36ae7
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Mon Feb 29 14:42:58 2016 -0800
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Mon Feb 29 14:46:19 2016 -0800
----------------------------------------------------------------------
.../app/mappers/service_metrics_mapper.js | 17 +++-
.../test/mappers/service_metrics_mapper_test.js | 101 +++++++++++++++++++
2 files changed, 114 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/a5ed43fc/ambari-web/app/mappers/service_metrics_mapper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mappers/service_metrics_mapper.js b/ambari-web/app/mappers/service_metrics_mapper.js
index a88c3e6..9d5c155 100644
--- a/ambari-web/app/mappers/service_metrics_mapper.js
+++ b/ambari-web/app/mappers/service_metrics_mapper.js
@@ -408,20 +408,23 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
var haState2 = Em.get(component.host_components[1], 'metrics.dfs.FSNamesystem.HAState');
var active_name_node = [];
var standby_name_nodes = [];
+ var namenodeName1 = component.host_components[0].HostRoles.host_name;
+ var namenodeName2 = component.host_components[1].HostRoles.host_name;
+
switch (haState1) {
case "active":
- active_name_node.push(component.host_components[0].HostRoles.host_name);
+ active_name_node.push(namenodeName1);
break;
case "standby":
- standby_name_nodes.push(component.host_components[0].HostRoles.host_name);
+ standby_name_nodes.push(namenodeName1);
break;
}
switch (haState2) {
case "active":
- active_name_node.push(component.host_components[1].HostRoles.host_name);
+ active_name_node.push(namenodeName2);
break;
case "standby":
- standby_name_nodes.push(component.host_components[1].HostRoles.host_name);
+ standby_name_nodes.push(namenodeName2);
break;
}
item.active_name_node_id = null;
@@ -433,6 +436,12 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
break;
}
switch (standby_name_nodes.length) {
+ case 0:
+ if (active_name_node.length === 1) {
+ var standbyNameNode = (active_name_node[0] === namenodeName1) ? namenodeName2 : namenodeName1;
+ item.standby_name_node_id = 'NAMENODE' + '_' + standbyNameNode;
+ }
+ break;
case 1:
item.standby_name_node_id = 'NAMENODE' + '_' + standby_name_nodes[0];
break;
http://git-wip-us.apache.org/repos/asf/ambari/blob/a5ed43fc/ambari-web/test/mappers/service_metrics_mapper_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mappers/service_metrics_mapper_test.js b/ambari-web/test/mappers/service_metrics_mapper_test.js
index d2c9cc0..4e0f216 100644
--- a/ambari-web/test/mappers/service_metrics_mapper_test.js
+++ b/ambari-web/test/mappers/service_metrics_mapper_test.js
@@ -20,6 +20,107 @@ var App = require('app');
describe('App.serviceMetricsMapper', function () {
+ describe('#computeAdditionalRelations', function () {
+
+ var tests = [
+ {
+ message: 'if both namenodes are standby then `display_name_advanced` for both should be `Standby NameNode`',
+ haStateForNn1: 'standby',
+ haStateForNn2: 'standby',
+ expectedNameForNn1: 'Standby NameNode',
+ expectedNameForNn2: 'Standby NameNode'
+ },
+ {
+ message: 'if one namenode is active and another is standby then they should be shown as `Active NameNode` and `Standby NameNode` respectively',
+ haStateForNn1: 'active',
+ haStateForNn2: 'standby',
+ expectedNameForNn1: 'Active NameNode',
+ expectedNameForNn2: 'Standby NameNode'
+ },
+ {
+ message: 'if one namenode is active and another is unknown then they should be shown as `Active NameNode` and `Standby NameNode` respectively',
+ haStateForNn1: 'active',
+ haStateForNn2: undefined,
+ expectedNameForNn1: 'Active NameNode',
+ expectedNameForNn2: 'Standby NameNode'
+ },
+ {
+ message: 'if both namenodes state are unknown then `display_name_advanced` for both should be null (NN will be shown with display name as `NameNode`)',
+ haStateForNn1: undefined,
+ haStateForNn2: undefined,
+ expectedNameForNn1: null,
+ expectedNameForNn2: null
+ }
+ ];
+
+ var services = [
+ {
+ ServiceInfo: {
+ service_name: "HDFS"
+ },
+ components: [
+ {
+ ServiceComponentInfo: {
+ component_name: "NAMENODE",
+ service_name: "HDFS"
+ },
+ host_components: [
+ {
+ HostRoles: {
+ component_name: "NAMENODE",
+ host_name: "h1"
+ },
+ metrics: {
+ dfs: {
+ FSNamesystem: {
+ HAState: ""
+ }
+ }
+ }
+ },
+ {
+ HostRoles: {
+ component_name: "NAMENODE",
+ host_name: "h2"
+ },
+ metrics: {
+ dfs: {
+ FSNamesystem: {
+ HAState: ""
+ }
+ }
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ];
+
+ var hostComponents = [
+ {
+ component_name: "NAMENODE",
+ host_id: "h1",
+ service_id: "HDFS"
+ },
+ {
+ component_name: "NAMENODE",
+ host_id: "h2",
+ service_id: "HDFS"
+ }
+ ];
+
+ tests.forEach(function (test) {
+ it(test.message, function () {
+ services[0].components[0].host_components[0].metrics.dfs.FSNamesystem['HAState'] = test.haStateForNn1;
+ services[0].components[0].host_components[1].metrics.dfs.FSNamesystem['HAState'] = test.haStateForNn2;
+ App.serviceMetricsMapper.computeAdditionalRelations(hostComponents, services);
+ expect(hostComponents[0].display_name_advanced).to.equal(test.expectedNameForNn1);
+ expect(hostComponents[1].display_name_advanced).to.equal(test.expectedNameForNn2);
+ });
+ });
+ });
+
describe('#yarnMapper', function () {
it('should set ACTIVE RM first in any cases (if RM HA enabled)', function() {