in ambari-web/app/mappers/service_mapper.js [260:359]
countServiceComponents: function (hostComponent, servicesMap, service) {
if (!service) {
service = {
everyStarted: true,
everyStartedOrMaintenance: true,
masterComponents: [],
isStarted: false,
isUnknown: false,
isStarting: false,
isStopped: false,
isHbaseActive: false,
serviceName: hostComponent.get('service.id'),
isRunning: true,
hdfsHealthStatus: '',
toolTipContent: ''
};
servicesMap[hostComponent.get('service.id')] = service;
}
if (hostComponent.get('isMaster')) {
if (service.everyStartedOrMaintenance) {
service.everyStartedOrMaintenance = (((hostComponent.get('componentName') === 'NAMENODE' && !App.HostComponent.find().someProperty('componentName', 'SECONDARY_NAMENODE')) || hostComponent.get('componentName') === 'JOURNALNODE') && App.HDFSService.find().filterProperty('activeNameNode.hostName').length > 0)
? true : service.everyStartedOrMaintenance = ([App.HostComponentStatus.started, App.HostComponentStatus.maintenance].contains(hostComponent.get('workStatus')));
} else {
service.everyStartedOrMaintenance = false;
}
service.everyStarted = (service.everyStarted)
? (hostComponent.get('workStatus') === App.HostComponentStatus.started)
: false;
service.isStarted = (!service.isStarted)
? (hostComponent.get('workStatus') === App.HostComponentStatus.started)
: true;
service.isUnknown = (!service.isUnknown)
? (hostComponent.get('workStatus') === App.HostComponentStatus.unknown)
: true;
service.isStarting = (!service.isStarting)
? (hostComponent.get('workStatus') === App.HostComponentStatus.starting)
: true;
service.isStopped = (!service.isStopped)
? (hostComponent.get('workStatus') === App.HostComponentStatus.stopped)
: true;
service.isHbaseActive = (!service.isHbaseActive)
? (hostComponent.get('haStatus') === 'true')
: true;
service.masterComponents.push(hostComponent);
// set advanced nameNode display name for HA, active or standby NameNode
// this is useful on three places: hdfs health status hover tooltip, hdfs service summary and NN component on host detail page
if (hostComponent.get('componentName') === 'NAMENODE' && !App.HostComponent.find().someProperty('componentName', 'SECONDARY_NAMENODE')) {
var hostName = hostComponent.get('host.hostName');
var services = App.Service.find();
var hdfs;
services.forEach(function (item) {
if (item.get("serviceName") == "HDFS") {
hdfs = App.HDFSService.find(item.get('id'));
}
}, this);
var activeNNText = Em.I18n.t('services.service.summary.nameNode.active');
var standbyNNText = Em.I18n.t('services.service.summary.nameNode.standby');
if (hdfs) {
if (hdfs.get('activeNameNode') && hdfs.get('activeNameNode').get('hostName')) {
var activeHostname = hdfs.get('activeNameNode').get('hostName');
}
if (hdfs.get('standbyNameNode') && hdfs.get('standbyNameNode').get('hostName')) {
var standbyHostname1 = hdfs.get('standbyNameNode').get('hostName');
}
if (hdfs.get('standbyNameNode2') && hdfs.get('standbyNameNode2').get('hostName')) {
var standbyHostname2 = hdfs.get('standbyNameNode2').get('hostName');
}
if (hostName == activeHostname) {
hostComponent.set('displayNameAdvanced', activeNNText);
} else if (hostName == standbyHostname1 || hostName == standbyHostname2) {
hostComponent.set('displayNameAdvanced', standbyNNText);
} else {
hostComponent.set('displayNameAdvanced', null);
}
}
} else if (hostComponent.get('componentName') === 'HBASE_MASTER') {
if (hostComponent.get('workStatus') === 'STARTED') {
hostComponent.get('haStatus') == 'true' ? hostComponent.set('displayNameAdvanced', this.t('dashboard.services.hbase.masterServer.active')) : hostComponent.set('displayNameAdvanced', this.t('dashboard.services.hbase.masterServer.standby'));
} else {
hostComponent.set('displayNameAdvanced', null);
}
}
if (hostComponent.get("displayNameAdvanced")) {
service.toolTipContent += hostComponent.get("displayNameAdvanced") + " " + hostComponent.get("componentTextStatus") + "<br/>";
} else {
service.toolTipContent += hostComponent.get("displayName") + " " + hostComponent.get("componentTextStatus") + "<br/>";
}
}
if (hostComponent.get('workStatus') !== App.HostComponentStatus.stopped &&
hostComponent.get('workStatus') !== App.HostComponentStatus.install_failed &&
hostComponent.get('workStatus') !== App.HostComponentStatus.unknown &&
hostComponent.get('workStatus') !== App.HostComponentStatus.maintenance) {
service.isRunning = false;
}
},