You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by zi...@apache.org on 2022/04/24 07:27:02 UTC
[pulsar] branch master updated: [fix] Set sinkType in config file (#15174)
This is an automated email from the ASF dual-hosted git repository.
zike 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 ba854a1bebf [fix] Set sinkType in config file (#15174)
ba854a1bebf is described below
commit ba854a1bebf9b19775f395f9ac7d810dab77ce90
Author: HuangWei <hu...@apache.org>
AuthorDate: Sun Apr 24 15:26:54 2022 +0800
[fix] Set sinkType in config file (#15174)
### Motivation
The sink config file doesn't support set 'sinkType', e.g. https://github.com/apache/pulsar/blob/a19a30a5e89bfd2c2da5460db6120c8e0a48d8f7/site2/docs/io-jdbc-sink.md?plain=1#L51
### Modifications
Add 'sinkType' to class `SinkConfig`. If no cmd arg '--sink-type' and 'sinkType' exists in config file, we will try to use the 'sinkType' built-in sink.
---
.../src/main/java/org/apache/pulsar/common/io/SinkConfig.java | 2 ++
.../src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java | 2 ++
.../test/java/org/apache/pulsar/admin/cli/TestCmdSinks.java | 10 ++++++++++
3 files changed, 14 insertions(+)
diff --git a/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/io/SinkConfig.java b/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/io/SinkConfig.java
index 0fe37ae47a2..5bd9227ca1b 100644
--- a/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/io/SinkConfig.java
+++ b/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/io/SinkConfig.java
@@ -77,6 +77,8 @@ public class SinkConfig {
private Boolean autoAck;
private Long timeoutMs;
private Long negativeAckRedeliveryDelayMs;
+
+ private String sinkType;
private String archive;
// Whether the subscriptions the functions created/used should be deleted when the functions is deleted
private Boolean cleanupSubscription;
diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java
index 67526da83be..21a7c3a7877 100644
--- a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java
+++ b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java
@@ -518,6 +518,8 @@ public class CmdSinks extends CmdBase {
if (sinkType != null) {
sinkConfig.setArchive(validateSinkType(sinkType));
+ } else if (sinkConfig.getSinkType() != null) {
+ sinkConfig.setArchive(validateSinkType(sinkConfig.getSinkType()));
}
Resources resources = sinkConfig.getResources();
diff --git a/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSinks.java b/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSinks.java
index 1b67b18a210..7a00f0429fc 100644
--- a/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSinks.java
+++ b/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSinks.java
@@ -478,6 +478,16 @@ public class TestCmdSinks {
testCmdSinkConfigFile(testSinkConfig, expectedSinkConfig);
}
+ @Test(expectedExceptions = ParameterException.class, expectedExceptionsMessageRegExp = "Invalid sink type 'foo' " +
+ "-- Available sinks are: \\[\\]")
+ public void testCmdSinkConfigFileInvalidSinkType() throws Exception {
+ SinkConfig testSinkConfig = getSinkConfig();
+ // sinkType is prior than archive
+ testSinkConfig.setSinkType("foo");
+
+ testCmdSinkConfigFile(testSinkConfig, null);
+ }
+
private void testCmdSinkConfigFile(SinkConfig testSinkConfig, SinkConfig expectedSinkConfig) throws Exception {
File file = Files.createTempFile("", "").toFile();