This is an automated email from the ASF dual-hosted git repository.
lhotari pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new a2c15340d3a [improve][cli] Add proxyServiceUrl / proxyProtocol parsing
from conf file to pulsar-client CLI (#17932)
a2c15340d3a is described below
commit a2c15340d3a73401b57574a4032ca375bde502bc
Author: Lari Hotari <[email protected]>
AuthorDate: Sat Nov 5 09:07:22 2022 +0200
[improve][cli] Add proxyServiceUrl / proxyProtocol parsing from conf file
to pulsar-client CLI (#17932)
---
.../pulsar/client/cli/PulsarClientToolTest.java | 30 +++++++++++++++++++---
.../apache/pulsar/client/cli/PulsarClientTool.java | 12 +++++++++
2 files changed, 39 insertions(+), 3 deletions(-)
diff --git
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/client/cli/PulsarClientToolTest.java
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/client/cli/PulsarClientToolTest.java
index 83a3268593e..52edde856b7 100644
---
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/client/cli/PulsarClientToolTest.java
+++
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/client/cli/PulsarClientToolTest.java
@@ -19,6 +19,7 @@
package org.apache.pulsar.client.cli;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
import java.time.Duration;
import java.util.Properties;
import java.util.UUID;
@@ -32,6 +33,7 @@ import org.apache.pulsar.broker.service.BrokerTestBase;
import org.apache.pulsar.client.admin.PulsarAdminException;
import org.apache.pulsar.client.api.Consumer;
import org.apache.pulsar.client.api.Message;
+import org.apache.pulsar.client.api.ProxyProtocol;
import org.apache.pulsar.client.impl.BatchMessageIdImpl;
import org.apache.pulsar.common.policies.data.TenantInfoImpl;
import org.awaitility.Awaitility;
@@ -281,8 +283,8 @@ public class PulsarClientToolTest extends BrokerTestBase {
final String message = "test msg";
final int numberOfMessages = 1;
final String topicName = getTopicWithRandomSuffix("test-topic");
-
- String[] args = {"--url", url,
+
+ String[] args = {"--url", url,
"--auth-plugin", authPlugin,
"--auth-params", authParams,
"--tlsTrustCertsFilePath", tlsTrustCertsFilePath,
@@ -293,8 +295,30 @@ public class PulsarClientToolTest extends BrokerTestBase {
assertEquals(pulsarClientTool.rootParams.getAuthParams(), authParams);
assertEquals(pulsarClientTool.rootParams.getAuthPluginClassName(),
authPlugin);
assertEquals(pulsarClientTool.rootParams.getServiceURL(), url);
+ assertNull(pulsarClientTool.rootParams.getProxyServiceURL());
+ assertNull(pulsarClientTool.rootParams.getProxyProtocol());
}
+ @Test
+ public void testParsingProxyServiceUrlAndProxyProtocolFromProperties()
throws Exception {
+ Properties properties = new Properties();
+ properties.setProperty("proxyServiceUrl",
"pulsar+ssl://my-proxy-pulsar:4443");
+ properties.setProperty("proxyProtocol", "SNI");
+ PulsarClientTool pulsarClientTool = new PulsarClientTool(properties);
+ final String url = "pulsar+ssl://localhost:6651";
+ final String message = "test msg";
+ final int numberOfMessages = 1;
+ final String topicName = getTopicWithRandomSuffix("test-topic");
+
+ String[] args = {"--url", url,
+ "produce", "-m", message,
+ "-n", Integer.toString(numberOfMessages), topicName};
+ pulsarClientTool.jcommander.parse(args);
+ assertEquals(pulsarClientTool.rootParams.getServiceURL(), url);
+ assertEquals(pulsarClientTool.rootParams.getProxyServiceURL(),
"pulsar+ssl://my-proxy-pulsar:4443");
+ assertEquals(pulsarClientTool.rootParams.getProxyProtocol(),
ProxyProtocol.SNI);
+ }
+
@Test
public void testSendMultipleMessage() throws Exception {
Properties properties = new Properties();
@@ -316,7 +340,7 @@ public class PulsarClientToolTest extends BrokerTestBase {
Assert.assertEquals(new String(msg.getData()), "msg" + i);
}
}
-
+
private static String getTopicWithRandomSuffix(String localNameBase) {
return String.format("persistent://prop/ns-abc/test/%s-%s",
localNameBase, UUID.randomUUID().toString());
}
diff --git
a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/PulsarClientTool.java
b/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/PulsarClientTool.java
index 8bb672304b9..6083fbd7301 100644
---
a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/PulsarClientTool.java
+++
b/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/PulsarClientTool.java
@@ -30,6 +30,7 @@ import java.io.FileInputStream;
import java.util.Arrays;
import java.util.Properties;
import lombok.Getter;
+import org.apache.commons.lang3.StringUtils;
import org.apache.pulsar.PulsarVersion;
import org.apache.pulsar.client.api.Authentication;
import org.apache.pulsar.client.api.AuthenticationFactory;
@@ -146,6 +147,17 @@ public class PulsarClientTool {
this.rootParams.authPluginClassName =
properties.getProperty("authPlugin");
this.rootParams.authParams = properties.getProperty("authParams");
this.rootParams.tlsTrustCertsFilePath =
properties.getProperty("tlsTrustCertsFilePath");
+ this.rootParams.proxyServiceURL =
StringUtils.trimToNull(properties.getProperty("proxyServiceUrl"));
+ String proxyProtocolString =
StringUtils.trimToNull(properties.getProperty("proxyProtocol"));
+ if (proxyProtocolString != null) {
+ try {
+ this.rootParams.proxyProtocol =
ProxyProtocol.valueOf(proxyProtocolString.toUpperCase());
+ } catch (IllegalArgumentException e) {
+ System.out.println("Incorrect proxyProtocol name '" +
proxyProtocolString + "'");
+ e.printStackTrace();
+ System.exit(-1);
+ }
+ }
}
private void updateConfig() throws UnsupportedAuthenticationException {