You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by sm...@apache.org on 2024/01/29 10:22:08 UTC
(knox) branch master updated: KNOX-3004 - Building a valid JDBC URL for Impala (#837)
This is an automated email from the ASF dual-hosted git repository.
smolnar 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 b855e0f4b KNOX-3004 - Building a valid JDBC URL for Impala (#837)
b855e0f4b is described below
commit b855e0f4bbe58724ffb0358edd246d5b52ed94fe
Author: Sandor Molnar <sm...@apache.org>
AuthorDate: Mon Jan 29 11:22:03 2024 +0100
KNOX-3004 - Building a valid JDBC URL for Impala (#837)
---
.../knox/gateway/service/metadata/ServiceModel.java | 4 ++++
.../knox/gateway/service/metadata/ServiceModelTest.java | 17 +++++++++++++++++
2 files changed, 21 insertions(+)
diff --git a/gateway-service-metadata/src/main/java/org/apache/knox/gateway/service/metadata/ServiceModel.java b/gateway-service-metadata/src/main/java/org/apache/knox/gateway/service/metadata/ServiceModel.java
index d4b08d088..5e35d27ff 100644
--- a/gateway-service-metadata/src/main/java/org/apache/knox/gateway/service/metadata/ServiceModel.java
+++ b/gateway-service-metadata/src/main/java/org/apache/knox/gateway/service/metadata/ServiceModel.java
@@ -48,6 +48,8 @@ public class ServiceModel implements Comparable<ServiceModel> {
static final String CURL_SAMPLE_TEMPLATE = "curl -iv -X %s \"%s%s\"";
static final String HIVE_SERVICE_NAME = "HIVE";
static final String HIVE_SERVICE_URL_TEMPLATE = "jdbc:hive2://%s:%d/;ssl=true;transportMode=http;httpPath=%s/%s/hive";
+ static final String IMPALA_SERVICE_NAME = "IMPALA";
+ static final String IMPALA_SERVICE_URL_TEMPLATE = "jdbc:impala://%s:%d/;ssl=1;transportMode=http;httpPath=%s/%s/impala;AuthMech=3";
public enum Type {
API, UI, API_AND_UI, UNKNOWN
@@ -127,6 +129,8 @@ public class ServiceModel implements Comparable<ServiceModel> {
String context = getContext();
if (HIVE_SERVICE_NAME.equals(getServiceName())) {
return String.format(Locale.ROOT, HIVE_SERVICE_URL_TEMPLATE, request.getServerName(), request.getServerPort(), gatewayPath, topologyName);
+ } else if (IMPALA_SERVICE_NAME.equals(getServiceName())) {
+ return String.format(Locale.ROOT, IMPALA_SERVICE_URL_TEMPLATE, request.getServerName(), request.getServerPort(), gatewayPath, topologyName);
} else {
return getServiceUrl(context);
}
diff --git a/gateway-service-metadata/src/test/java/org/apache/knox/gateway/service/metadata/ServiceModelTest.java b/gateway-service-metadata/src/test/java/org/apache/knox/gateway/service/metadata/ServiceModelTest.java
index 4058ee2f6..77ff7c3e2 100644
--- a/gateway-service-metadata/src/test/java/org/apache/knox/gateway/service/metadata/ServiceModelTest.java
+++ b/gateway-service-metadata/src/test/java/org/apache/knox/gateway/service/metadata/ServiceModelTest.java
@@ -19,6 +19,8 @@ package org.apache.knox.gateway.service.metadata;
import static org.apache.knox.gateway.service.metadata.ServiceModel.HIVE_SERVICE_NAME;
import static org.apache.knox.gateway.service.metadata.ServiceModel.HIVE_SERVICE_URL_TEMPLATE;
+import static org.apache.knox.gateway.service.metadata.ServiceModel.IMPALA_SERVICE_NAME;
+import static org.apache.knox.gateway.service.metadata.ServiceModel.IMPALA_SERVICE_URL_TEMPLATE;
import static org.apache.knox.gateway.service.metadata.ServiceModel.SERVICE_URL_TEMPLATE;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -159,6 +161,21 @@ public class ServiceModelTest {
assertEquals(String.format(Locale.ROOT, HIVE_SERVICE_URL_TEMPLATE, SERVER_NAME, SERVER_PORT, gatewayPath, topologyName), serviceModel.getServiceUrl());
}
+ @Test
+ public void shouldReturnProperImpalaServiceUrl() throws Exception {
+ final ServiceModel serviceModel = new ServiceModel();
+ final String gatewayPath = "gateway";
+ final String topologyName = "sandbox";
+ serviceModel.setGatewayPath(gatewayPath);
+ serviceModel.setTopologyName(topologyName);
+ serviceModel.setRequest(setUpHttpRequestMock());
+ final Service service = EasyMock.createNiceMock(Service.class);
+ serviceModel.setService(service);
+ EasyMock.expect(service.getRole()).andReturn(IMPALA_SERVICE_NAME).anyTimes();
+ EasyMock.replay(service);
+ assertEquals(String.format(Locale.ROOT, IMPALA_SERVICE_URL_TEMPLATE, SERVER_NAME, SERVER_PORT, gatewayPath, topologyName), serviceModel.getServiceUrl());
+ }
+
public HttpServletRequest setUpHttpRequestMock() {
final HttpServletRequest httpServletRequestMock = EasyMock.createNiceMock(HttpServletRequest.class);
EasyMock.expect(httpServletRequestMock.getScheme()).andReturn(SERVER_SCHEME).anyTimes();