From 321151da473ffd6b663b3fc22b091475e070c8ee Mon Sep 17 00:00:00 2001 From: Xiaoman Dong Date: Wed, 7 Sep 2022 15:12:34 -0700 Subject: [PATCH 1/2] allow hiding pinot broker swagger UI --- .../broker/broker/BrokerAdminApiApplication.java | 11 ++++++++++- .../org/apache/pinot/spi/utils/CommonConstants.java | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java index 1a43f7cf25ac..3592f6a01a19 100644 --- a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java +++ b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java @@ -46,9 +46,12 @@ import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.jackson.JacksonFeature; import org.glassfish.jersey.server.ResourceConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class BrokerAdminApiApplication extends ResourceConfig { + private static final Logger LOGGER = LoggerFactory.getLogger(BrokerAdminApiApplication.class); private static final String RESOURCE_PACKAGE = "org.apache.pinot.broker.api.resources"; public static final String PINOT_CONFIGURATION = "pinotConfiguration"; public static final String BROKER_INSTANCE_ID = "brokerInstanceId"; @@ -100,7 +103,13 @@ public void start(List listenerConfigs) { } catch (IOException e) { throw new RuntimeException("Failed to start http server", e); } - PinotReflectionUtils.runWithLock(this::setupSwagger); + PinotConfiguration brokerConf = (PinotConfiguration) getProperties().get(PINOT_CONFIGURATION); + if (brokerConf.getProperty(CommonConstants.Broker.CONFIG_OF_SWAGGER_BROKER_ENABLED, + CommonConstants.Broker.DEFAULT_SWAGGER_BROKER_ENABLED)) { + PinotReflectionUtils.runWithLock(this::setupSwagger); + } else { + LOGGER.info("Hiding Swagger UI for Broker, by {}", CommonConstants.Broker.CONFIG_OF_SWAGGER_BROKER_ENABLED); + } } private void setupSwagger() { diff --git a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/CommonConstants.java b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/CommonConstants.java index 2ca5801b1a72..5b67b4721723 100644 --- a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/CommonConstants.java +++ b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/CommonConstants.java @@ -263,6 +263,8 @@ public static class Broker { public static final boolean DEFAULT_BROKER_REQUEST_CLIENT_IP_LOGGING = false; public static final String CONFIG_OF_LOGGER_ROOT_DIR = "pinot.broker.logger.root.dir"; + public static final String CONFIG_OF_SWAGGER_BROKER_ENABLED = "pinot.broker.swagger.enabled"; + public static final boolean DEFAULT_SWAGGER_BROKER_ENABLED = true; public static class Request { public static final String SQL = "sql"; From 83fc0487a4ce7b98c53bd36c787147b3f66ec23f Mon Sep 17 00:00:00 2001 From: Xiaoman Dong Date: Thu, 8 Sep 2022 08:33:29 -0700 Subject: [PATCH 2/2] refactor based on feedback --- .../pinot/broker/broker/BrokerAdminApiApplication.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java index 3592f6a01a19..17ee575f2a57 100644 --- a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java +++ b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java @@ -57,6 +57,7 @@ public class BrokerAdminApiApplication extends ResourceConfig { public static final String BROKER_INSTANCE_ID = "brokerInstanceId"; private final boolean _useHttps; + private final boolean _swaggerBrokerEnabled; private HttpServer _httpServer; @@ -65,6 +66,8 @@ public BrokerAdminApiApplication(BrokerRoutingManager routingManager, BrokerRequ packages(RESOURCE_PACKAGE); property(PINOT_CONFIGURATION, brokerConf); _useHttps = Boolean.parseBoolean(brokerConf.getProperty(CommonConstants.Broker.CONFIG_OF_SWAGGER_USE_HTTPS)); + _swaggerBrokerEnabled = brokerConf.getProperty(CommonConstants.Broker.CONFIG_OF_SWAGGER_BROKER_ENABLED, + CommonConstants.Broker.DEFAULT_SWAGGER_BROKER_ENABLED); if (brokerConf.getProperty(CommonConstants.Broker.BROKER_SERVICE_AUTO_DISCOVERY, false)) { register(ServiceAutoDiscoveryFeature.class); } @@ -103,9 +106,8 @@ public void start(List listenerConfigs) { } catch (IOException e) { throw new RuntimeException("Failed to start http server", e); } - PinotConfiguration brokerConf = (PinotConfiguration) getProperties().get(PINOT_CONFIGURATION); - if (brokerConf.getProperty(CommonConstants.Broker.CONFIG_OF_SWAGGER_BROKER_ENABLED, - CommonConstants.Broker.DEFAULT_SWAGGER_BROKER_ENABLED)) { + + if (_swaggerBrokerEnabled) { PinotReflectionUtils.runWithLock(this::setupSwagger); } else { LOGGER.info("Hiding Swagger UI for Broker, by {}", CommonConstants.Broker.CONFIG_OF_SWAGGER_BROKER_ENABLED);