You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ap...@apache.org on 2021/06/02 21:41:26 UTC

[incubator-pinot] 02/04: plumbing prep for TLS-enabled tests

This is an automated email from the ASF dual-hosted git repository.

apucher pushed a commit to branch tls-integration-test
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git

commit 03b134805dc7f83194ffe2c97edf2e1631ea9597
Author: Alexander Pucher <al...@alexpucher.com>
AuthorDate: Wed Jun 2 14:38:07 2021 -0700

    plumbing prep for TLS-enabled tests
---
 .../pinot/controller/helix/ControllerTest.java     | 14 ++++++--
 .../java/org/apache/pinot/core/util/TlsUtils.java  |  1 -
 .../pinot/integration/tests/ClusterTest.java       | 41 +++++++++++++++++++++-
 3 files changed, 52 insertions(+), 4 deletions(-)

diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTest.java
index 4e2a4e1..f206f6b 100644
--- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTest.java
+++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTest.java
@@ -42,6 +42,7 @@ import org.apache.commons.httpclient.methods.multipart.Part;
 import org.apache.commons.httpclient.methods.multipart.StringPart;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.StringUtils;
 import org.apache.helix.ConfigAccessor;
 import org.apache.helix.HelixAdmin;
 import org.apache.helix.HelixDataAccessor;
@@ -158,8 +159,17 @@ public abstract class ControllerTest {
 
     ControllerConf config = new ControllerConf(properties);
 
-    _controllerPort = Integer.valueOf(config.getControllerPort());
-    _controllerBaseApiUrl = "http://localhost:" + _controllerPort;
+    String controllerScheme = "http";
+    if (StringUtils.isNotBlank(config.getControllerVipProtocol())) {
+      controllerScheme = config.getControllerVipProtocol();
+    }
+
+    _controllerPort = DEFAULT_CONTROLLER_PORT;
+    if (StringUtils.isNotBlank(config.getControllerPort())) {
+      _controllerPort = Integer.parseInt(config.getControllerPort());
+    }
+
+    _controllerBaseApiUrl = controllerScheme + "://localhost:" + _controllerPort;
     _controllerRequestURLBuilder = ControllerRequestURLBuilder.baseUrl(_controllerBaseApiUrl);
     _controllerDataDir = config.getDataDir();
 
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/util/TlsUtils.java b/pinot-core/src/main/java/org/apache/pinot/core/util/TlsUtils.java
index 661c159..0d12b98 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/util/TlsUtils.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/util/TlsUtils.java
@@ -49,7 +49,6 @@ import org.apache.pinot.spi.utils.CommonConstants;
  * Utility class for shared TLS configuration logic
  */
 public final class TlsUtils {
-  private static final String ENABLED = "enabled";
   private static final String CLIENT_AUTH_ENABLED = "client.auth.enabled";
   private static final String KEYSTORE_PATH = "keystore.path";
   private static final String KEYSTORE_PASSWORD = "keystore.password";
diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/ClusterTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/ClusterTest.java
index 726422e..25137b3 100644
--- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/ClusterTest.java
+++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/ClusterTest.java
@@ -82,7 +82,7 @@ import static org.testng.Assert.assertTrue;
  */
 public abstract class ClusterTest extends ControllerTest {
   private static final Logger LOGGER = LoggerFactory.getLogger(ClusterTest.class);
-  private static final int DEFAULT_BROKER_PORT = 18099;
+  protected static final int DEFAULT_BROKER_PORT = 18099;
   protected static final Random RANDOM = new Random(System.currentTimeMillis());
 
   protected String _brokerBaseApiUrl;
@@ -133,6 +133,27 @@ public abstract class ClusterTest extends ControllerTest {
     _brokerBaseApiUrl = "http://localhost:" + _brokerPorts.get(0);
   }
 
+  protected void startBrokerHttps()
+      throws Exception {
+    _brokerStarters = new ArrayList<>();
+    _brokerPorts = new ArrayList<>();
+
+    Map<String, Object> properties = getDefaultBrokerConfiguration().toMap();
+    properties.put(Broker.CONFIG_OF_BROKER_TIMEOUT_MS, 60 * 1000L);
+    properties.put(Broker.CONFIG_OF_DELAY_SHUTDOWN_TIME_MS, 0);
+
+    PinotConfiguration configuration = new PinotConfiguration(properties);
+    overrideBrokerConf(configuration);
+
+    HelixBrokerStarter brokerStarter =
+        new HelixBrokerStarter(configuration, getHelixClusterName(), getZkUrl(), LOCAL_HOST);
+    brokerStarter.start();
+    _brokerStarters.add(brokerStarter);
+
+    _brokerPorts.add(DEFAULT_BROKER_PORT);
+    _brokerBaseApiUrl = "https://localhost:" + _brokerPorts.get(0);
+  }
+
   protected int getRandomBrokerPort() {
     return _brokerPorts.get(RANDOM.nextInt(_brokerPorts.size()));
   }
@@ -197,6 +218,24 @@ public abstract class ClusterTest extends ControllerTest {
     }
   }
 
+  protected void startServerHttps() {
+    FileUtils.deleteQuietly(new File(Server.DEFAULT_INSTANCE_BASE_DIR));
+    _serverStarters = new ArrayList<>();
+
+    Map<String, Object> properties = getDefaultServerConfiguration().toMap();
+
+    PinotConfiguration configuration = new PinotConfiguration(properties);
+    overrideServerConf(configuration);
+
+    try {
+      HelixServerStarter helixServerStarter = new HelixServerStarter(getHelixClusterName(), getZkUrl(), configuration);
+      _serverStarters.add(helixServerStarter);
+      helixServerStarter.start();
+    } catch (Exception e) {
+      throw new RuntimeException(e);
+    }
+  }
+
   protected PinotConfiguration getDefaultMinionConfiguration() {
     return new PinotConfiguration();
   }

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org