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: us...@infra.apache.org With regards, Apache Git Services