sijie closed pull request #1843: If left unspecified, function tenants and
namespaces should have the same behavior as topics
URL: https://github.com/apache/incubator-pulsar/pull/1843
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java
index 3d0bb2b6e8..de4ab40ca8 100644
---
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java
+++
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java
@@ -209,7 +209,7 @@ public void testCreateWithoutTenant() throws Exception {
});
CreateFunction creater = cmd.getCreater();
- assertEquals("tenant", creater.getFunctionConfig().getTenant());
+ assertEquals("public", creater.getFunctionConfig().getTenant());
verify(functions, times(1)).createFunction(any(FunctionDetails.class),
anyString());
}
@@ -228,8 +228,8 @@ public void testCreateWithoutNamespace() throws Exception {
});
CreateFunction creater = cmd.getCreater();
- assertEquals("tenant", creater.getFunctionConfig().getTenant());
- assertEquals("namespace", creater.getFunctionConfig().getNamespace());
+ assertEquals("public", creater.getFunctionConfig().getTenant());
+ assertEquals("default", creater.getFunctionConfig().getNamespace());
verify(functions, times(1)).createFunction(any(FunctionDetails.class),
anyString());
}
diff --git
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
index 21de29b2d3..d565568602 100644
---
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
+++
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
@@ -22,6 +22,8 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.Objects.isNull;
import static org.apache.bookkeeper.common.concurrent.FutureUtils.result;
+import static org.apache.pulsar.common.naming.TopicName.DEFAULT_NAMESPACE;
+import static org.apache.pulsar.common.naming.TopicName.PUBLIC_TENANT;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters;
@@ -606,21 +608,11 @@ private void inferMissingFunctionName(FunctionConfig
functionConfig) {
}
private void inferMissingTenant(FunctionConfig functionConfig) {
- try {
- String inputTopic = getUniqueInput(functionConfig);
-
functionConfig.setTenant(TopicName.get(inputTopic).getTenant());
- } catch (IllegalArgumentException ex) {
- throw new RuntimeException("You need to specify a tenant for
the function", ex);
- }
+ functionConfig.setTenant(PUBLIC_TENANT);
}
private void inferMissingNamespace(FunctionConfig functionConfig) {
- try {
- String inputTopic = getUniqueInput(functionConfig);
-
functionConfig.setNamespace(TopicName.get(inputTopic).getNamespacePortion());
- } catch (IllegalArgumentException ex) {
- throw new RuntimeException("You need to specify a namespace
for the function");
- }
+ functionConfig.setNamespace(DEFAULT_NAMESPACE);
}
private void inferMissingOutput(FunctionConfig functionConfig) {
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 fa99091efb..822d600851 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
@@ -56,6 +56,9 @@
import net.jodah.typetools.TypeResolver;
+import static org.apache.pulsar.common.naming.TopicName.DEFAULT_NAMESPACE;
+import static org.apache.pulsar.common.naming.TopicName.PUBLIC_TENANT;
+
@Getter
@Parameters(commandDescription = "Interface for managing Pulsar Sinks (Egress
data from Pulsar)")
public class CmdSinks extends CmdBase {
@@ -182,9 +185,13 @@ void processArguments() throws Exception {
if (null != tenant) {
sinkConfig.setTenant(tenant);
+ } else if (sinkConfig.getTenant() == null) {
+ sinkConfig.setTenant(PUBLIC_TENANT);
}
if (null != namespace) {
sinkConfig.setNamespace(namespace);
+ } else if (sinkConfig.getNamespace() == null) {
+ sinkConfig.setNamespace(DEFAULT_NAMESPACE);
}
if (null != name) {
sinkConfig.setName(name);
diff --git
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
index 6cdc37c7a4..d16fb5b5d9 100644
---
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
+++
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
@@ -50,6 +50,9 @@
import net.jodah.typetools.TypeResolver;
+import static org.apache.pulsar.common.naming.TopicName.DEFAULT_NAMESPACE;
+import static org.apache.pulsar.common.naming.TopicName.PUBLIC_TENANT;
+
@Getter
@Parameters(commandDescription = "Interface for managing Pulsar Source
(Ingress data to Pulsar)")
public class CmdSources extends CmdBase {
@@ -175,9 +178,13 @@ void processArguments() throws Exception {
if (null != tenant) {
sourceConfig.setTenant(tenant);
+ } else if (sourceConfig.getTenant() == null) {
+ sourceConfig.setTenant(PUBLIC_TENANT);
}
if (null != namespace) {
sourceConfig.setNamespace(namespace);
+ } else if (sourceConfig.getNamespace() == null) {
+ sourceConfig.setNamespace(DEFAULT_NAMESPACE);
}
if (null != name) {
sourceConfig.setName(name);
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services