This is an automated email from the ASF dual-hosted git repository.
krisden pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git
The following commit(s) were added to refs/heads/master by this push:
new c48ff3e KNOX-2265 - Checking CM configs by their related names and
read hive.server2.use.SSL from the service configuration (#280)
c48ff3e is described below
commit c48ff3ec7247de10b9fa4418456ec606f81fa427
Author: Sandor Molnar <[email protected]>
AuthorDate: Fri Mar 6 18:35:41 2020 +0100
KNOX-2265 - Checking CM configs by their related names and read
hive.server2.use.SSL from the service configuration (#280)
---
.../cm/model/AbstractServiceModelGenerator.java | 2 +-
.../cm/model/hive/HiveServiceModelGenerator.java | 4 ++--
.../cm/ClouderaManagerServiceDiscoveryTest.java | 24 ++++++++++++++++------
3 files changed, 21 insertions(+), 9 deletions(-)
diff --git
a/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/AbstractServiceModelGenerator.java
b/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/AbstractServiceModelGenerator.java
index 374ad96..1f08f3e 100644
---
a/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/AbstractServiceModelGenerator.java
+++
b/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/AbstractServiceModelGenerator.java
@@ -54,7 +54,7 @@ public abstract class AbstractServiceModelGenerator
implements ServiceModelGener
protected String getConfigValue(String key, List<ApiConfig> items) {
for (ApiConfig config : items) {
- if (key.equals(config.getName())) {
+ if (key.equals(config.getName()) || key.equals(config.getRelatedName()))
{
String value = config.getValue();
if (value != null) {
return value;
diff --git
a/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/HiveServiceModelGenerator.java
b/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/HiveServiceModelGenerator.java
index 2278580..db50f00 100644
---
a/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/HiveServiceModelGenerator.java
+++
b/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/HiveServiceModelGenerator.java
@@ -78,7 +78,7 @@ public class HiveServiceModelGenerator extends
AbstractServiceModelGenerator {
ApiRole role,
ApiConfigList roleConfig) throws
ApiException {
String hostname = role.getHostRef().getHostname();
- boolean sslEnabled = Boolean.parseBoolean(getRoleConfigValue(roleConfig,
SSL_ENABLED));
+ boolean sslEnabled =
Boolean.parseBoolean(getServiceConfigValue(serviceConfig, SSL_ENABLED));
String scheme = sslEnabled ? "https" : "http";
String port = getHttpPort(roleConfig);
@@ -89,7 +89,7 @@ public class HiveServiceModelGenerator extends
AbstractServiceModelGenerator {
ServiceModel model =
createServiceModel(String.format(Locale.getDefault(), "%s://%s:%s/%s",
scheme, hostname, port, httpPath));
- model.addRoleProperty(getRoleType(), SSL_ENABLED,
getRoleConfigValue(roleConfig, SSL_ENABLED));
+ model.addRoleProperty(getRoleType(), SSL_ENABLED,
Boolean.toString(sslEnabled));
model.addRoleProperty(getRoleType(), SAFETY_VALVE,
getRoleConfigValue(roleConfig, SAFETY_VALVE));
return model;
diff --git
a/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscoveryTest.java
b/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscoveryTest.java
index a2a6431..e797604 100644
---
a/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscoveryTest.java
+++
b/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscoveryTest.java
@@ -961,14 +961,15 @@ public class ClouderaManagerServiceDiscoveryTest {
// Configure the role
Map<String, String> roleProperties = new HashMap<>();
roleProperties.put("hive_hs2_config_safety_valve", hs2SafetyValveValue);
- roleProperties.put("hive.server2.use.SSL", String.valueOf(enableSSL));
+
+ final Map<String, String> serviceProperties =
Collections.singletonMap("hive.server2.use.SSL", String.valueOf(enableSSL));
return doTestDiscovery(hostName,
"HIVE-1",
HiveServiceModelGenerator.SERVICE_TYPE,
"HIVE-1-HIVESERVER2-12345",
HiveServiceModelGenerator.ROLE_TYPE,
- Collections.emptyMap(),
+ serviceProperties,
roleProperties);
}
@@ -988,14 +989,15 @@ public class ClouderaManagerServiceDiscoveryTest {
roleProperties.put("hive_server2_thrift_http_port", thriftPort);
roleProperties.put("hive_server2_transport_mode", "http");
roleProperties.put("hive_hs2_config_safety_valve", hs2SafetyValveValue);
- roleProperties.put("hive.server2.use.SSL", String.valueOf(enableSSL));
+
+ final Map<String, String> serviceProperties =
Collections.singletonMap("hive.server2.use.SSL", String.valueOf(enableSSL));
return doTestDiscovery(hostName,
"HIVE_ON_TEZ-1",
HiveOnTezServiceModelGenerator.SERVICE_TYPE,
"HIVE_ON_TEZ-1-HIVESERVER2-12345",
HiveServiceModelGenerator.ROLE_TYPE,
- Collections.emptyMap(),
+ serviceProperties,
roleProperties);
}
@@ -1215,9 +1217,14 @@ public class ClouderaManagerServiceDiscoveryTest {
ApiServiceConfig serviceConfig =
EasyMock.createNiceMock(ApiServiceConfig.class);
List<ApiConfig> serviceConfigs = new ArrayList<>();
+ int i = 0;
for (Map.Entry<String, String> property : properties.entrySet()) {
ApiConfig config = EasyMock.createNiceMock(ApiConfig.class);
-
EasyMock.expect(config.getName()).andReturn(property.getKey()).anyTimes();
+ if (i++ % 2 == 0) {
+
EasyMock.expect(config.getName()).andReturn(property.getKey()).anyTimes();
+ } else {
+
EasyMock.expect(config.getRelatedName()).andReturn(property.getKey()).anyTimes();
+ }
EasyMock.expect(config.getValue()).andReturn(property.getValue()).anyTimes();
EasyMock.replay(config);
serviceConfigs.add(config);
@@ -1232,9 +1239,14 @@ public class ClouderaManagerServiceDiscoveryTest {
ApiConfigList configList = EasyMock.createNiceMock(ApiConfigList.class);
List<ApiConfig> roleConfigs = new ArrayList<>();
+ int i = 0;
for (Map.Entry<String, String> property : properties.entrySet()) {
ApiConfig config = EasyMock.createNiceMock(ApiConfig.class);
-
EasyMock.expect(config.getName()).andReturn(property.getKey()).anyTimes();
+ if (i++ % 2 == 0) {
+
EasyMock.expect(config.getName()).andReturn(property.getKey()).anyTimes();
+ } else {
+
EasyMock.expect(config.getRelatedName()).andReturn(property.getKey()).anyTimes();
+ }
EasyMock.expect(config.getValue()).andReturn(property.getValue()).anyTimes();
EasyMock.replay(config);
roleConfigs.add(config);