This is an automated email from the ASF dual-hosted git repository. smolnar82 pushed a commit to branch knox_idf in repository https://gitbox.apache.org/repos/asf/knox.git
commit 168d2a46f11658c889143a2928b35c41aab8731a Author: hanicz <[email protected]> AuthorDate: Tue Jun 16 09:39:49 2026 +0200 KNOX-3352: Set scheme for Iceberg REST catalog based on ssl enabled c… (#1265) * KNOX-3352: Set scheme for Iceberg REST catalog based on ssl enabled config * KNOX-3352: Fix unit test (cherry picked from commit 13d2f1f34b3b5a274e7591afaa5d72eac01dee82) --- .../model/hive/IcebergRestServiceModelGenerator.java | 5 ++++- .../hive/IcebergRestServiceModelGeneratorTest.java | 20 +++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/IcebergRestServiceModelGenerator.java b/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/IcebergRestServiceModelGenerator.java index f25f914db..531f7f328 100644 --- a/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/IcebergRestServiceModelGenerator.java +++ b/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/IcebergRestServiceModelGenerator.java @@ -36,6 +36,7 @@ public class IcebergRestServiceModelGenerator extends AbstractServiceModelGenera static final String HTTP_PORT = "hive_metastore_catalog_servlet_port"; static final String HTTP_PATH = "hive_metastore_catalog_servlet_path"; static final String REST_CATALOG_ENABLED = "hive_rest_catalog_enabled"; + static final String SSL_ENABLED = "hiveserver2_enable_ssl"; static final String DEFAULT_HTTP_PATH = "icecli"; @@ -74,7 +75,8 @@ public class IcebergRestServiceModelGenerator extends AbstractServiceModelGenera ApiRole role, ApiConfigList roleConfig, ApiServiceConfig coreSettingsConfig) throws ApiException { String hostname = role.getHostRef().getHostname(); - String scheme = "http"; + boolean sslEnabled = Boolean.parseBoolean(getServiceConfigValue(serviceConfig, SSL_ENABLED)); + String scheme = sslEnabled ? "https" : "http"; String port = getHttpPort(serviceConfig); String httpPath = getHttpPath(serviceConfig); @@ -87,6 +89,7 @@ public class IcebergRestServiceModelGenerator extends AbstractServiceModelGenera model.addServiceProperty(HTTP_PORT, getHttpPort(serviceConfig)); model.addServiceProperty(HTTP_PATH, getHttpPath(serviceConfig)); model.addServiceProperty(REST_CATALOG_ENABLED, getRestCatalogEnabled(serviceConfig)); + model.addServiceProperty(SSL_ENABLED, Boolean.toString(sslEnabled)); return model; } diff --git a/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/IcebergRestServiceModelGeneratorTest.java b/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/IcebergRestServiceModelGeneratorTest.java index 97179bbea..1de14e6b2 100644 --- a/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/IcebergRestServiceModelGeneratorTest.java +++ b/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/model/hive/IcebergRestServiceModelGeneratorTest.java @@ -50,9 +50,23 @@ public class IcebergRestServiceModelGeneratorTest extends AbstractServiceModelGe @Test public void testServiceModel() { final Map<String, String> serviceConfig = new HashMap<>(); - serviceConfig.put("hive_metastore_catalog_servlet_port", "8090"); - serviceConfig.put("hive_metastore_catalog_servlet_path", "icecli"); - serviceConfig.put("hive_rest_catalog_enabled", "true"); + serviceConfig.put(IcebergRestServiceModelGenerator.HTTP_PORT, "8090"); + serviceConfig.put(IcebergRestServiceModelGenerator.HTTP_PATH, "icecli"); + serviceConfig.put(IcebergRestServiceModelGenerator.REST_CATALOG_ENABLED, "true"); + serviceConfig.put(IcebergRestServiceModelGenerator.SSL_ENABLED, "false"); + + final Map<String, String> roleConfig = Collections.emptyMap(); + + validateServiceModel(createServiceModel(serviceConfig, roleConfig), serviceConfig, roleConfig); + } + + @Test + public void testServiceModelSslEnabled() { + final Map<String, String> serviceConfig = new HashMap<>(); + serviceConfig.put(IcebergRestServiceModelGenerator.HTTP_PORT, "8091"); + serviceConfig.put(IcebergRestServiceModelGenerator.HTTP_PATH, "icecli2"); + serviceConfig.put(IcebergRestServiceModelGenerator.REST_CATALOG_ENABLED, "false"); + serviceConfig.put(IcebergRestServiceModelGenerator.SSL_ENABLED, "true"); final Map<String, String> roleConfig = Collections.emptyMap();
