Merge pull request #3082 from hiveww/AMBARI-25374-branch-2.7
AMBARI-25374. Use host names instead ip addresses while checking hive interactive service status
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/configuration/hive-interactive-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/configuration/hive-interactive-site.xml
index 52d5db4..c98eedc 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/configuration/hive-interactive-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/configuration/hive-interactive-site.xml
@@ -257,6 +257,12 @@
<on-ambari-upgrade add="true"/>
</property>
<property>
+ <name>hive.server2.leadertest.use.ip</name>
+ <value>true</value>
+ <description>Use ip address to check hive interactive service status</description>
+ <on-ambari-upgrade add="true"/>
+ </property>
+ <property>
<name>hive.server2.zookeeper.namespace</name>
<value>hiveserver2-hive2</value>
<description>The parent node in ZooKeeper used by HiveServer2 when supporting dynamic service discovery.</description>
diff --git a/ambari-web/app/mappers/service_metrics_mapper.js b/ambari-web/app/mappers/service_metrics_mapper.js
index 0d23ce2..e2ddbfc 100644
--- a/ambari-web/app/mappers/service_metrics_mapper.js
+++ b/ambari-web/app/mappers/service_metrics_mapper.js
@@ -316,16 +316,19 @@
var self = this;
App.router.get('configurationController').getCurrentConfigsBySites(['hive-site', 'hive-interactive-site']).done(function (configs) {
var hiveWebUiPort = configs.findProperty('type', 'hive-interactive-site').properties['hive.server2.webui.port'];
+ var hiveWebUiProtoFlag = configs.findProperty('type', 'hive-interactive-site').properties['hive.server2.webui.use.ssl'];
+ var hiveWebUiProto = hiveWebUiProtoFlag ? 'https' : 'http';
var hostNames = hiveInteractiveServers.mapProperty('host_name');
+ var useIps = configs.findProperty('type', 'hive-interactive-site').properties['hive.server2.leadertest.use.ip'];
var notDefinedHostIp = hostNames.find(function (hostName) {
return !self.get('hostNameIpMap')[hostName];
});
- if (notDefinedHostIp) {
+ if (useIps && notDefinedHostIp) {
self.getHostNameIpMap(hostNames).done(function () {
- self.getHiveServersInteractiveStatus(hiveInteractiveServers, hiveWebUiPort);
+ self.getHiveServersInteractiveStatus(hiveInteractiveServers, hiveWebUiPort, hiveWebUiProto, useIps);
});
} else {
- self.getHiveServersInteractiveStatus(hiveInteractiveServers, hiveWebUiPort);
+ self.getHiveServersInteractiveStatus(hiveInteractiveServers, hiveWebUiPort, hiveWebUiProto, useIps);
}
});
},
@@ -347,14 +350,15 @@
});
},
- getHiveServersInteractiveStatus: function(hiveInteractiveServers, hiveWebUiPort) {
+ getHiveServersInteractiveStatus: function(hiveInteractiveServers, hiveWebUiPort, hiveWebUiProto, useIps) {
var self = this;
hiveInteractiveServers.forEach(function (hiveInteractiveServer) {
App.ajax.send({
name: 'hiveServerInteractive.getStatus',
data: {
- hsiHost: self.hostNameIpMap[hiveInteractiveServer.host_name],
- port: hiveWebUiPort
+ hsiHost: useIps ? self.hostNameIpMap[hiveInteractiveServer.host_name] : hiveInteractiveServer.host_name,
+ port: hiveWebUiPort,
+ proto: hiveWebUiProto
},
sender: self
}).success(function (isActive) {
diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js
index 2401c08..1a899e6 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -3220,7 +3220,7 @@
mock: '',
format: function (data) {
return {
- url: 'http://' + data.hsiHost + ':' + data.port + '/leader'
+ url: data.proto + '://' + data.hsiHost + ':' + data.port + '/leader'
}
}
}
diff --git a/ambari-web/test/mappers/service_metrics_mapper_test.js b/ambari-web/test/mappers/service_metrics_mapper_test.js
index 20af575..823db86 100644
--- a/ambari-web/test/mappers/service_metrics_mapper_test.js
+++ b/ambari-web/test/mappers/service_metrics_mapper_test.js
@@ -273,7 +273,7 @@
sinon.stub(configurationController, 'getCurrentConfigsBySites', function () {
return {done: function (callback) {
return callback([
- {type: 'hive-interactive-site', properties: {'hive.server2.webui.port': '1'}}
+ {type: 'hive-interactive-site', properties: {'hive.server2.webui.port': '1', 'hive.server2.leadertest.use.ip': true}},
]);
}};
});