You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by ni...@apache.org on 2022/05/31 14:14:05 UTC

[pulsar] branch master updated: [fix][admin] Fix check on create function class name (#15700)

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

nicoloboschi 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 8126643ef6d [fix][admin] Fix check on create function class name (#15700)
8126643ef6d is described below

commit 8126643ef6dbd000977f58016d1da05ee411ba70
Author: Christophe Bornet <cb...@hotmail.com>
AuthorDate: Tue May 31 16:13:58 2022 +0200

    [fix][admin] Fix check on create function class name (#15700)
    
    The check was done for PYTHON or JAVA runtime but the runtime is not inferred in the admin CLI.
    The fix is to do the check if a jar or py is provided instead
---
 .../java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java | 14 ++++++++++++++
 .../java/org/apache/pulsar/admin/cli/CmdFunctions.java     |  3 +--
 2 files changed, 15 insertions(+), 2 deletions(-)

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 7ee9313838f..efb5ae8ad64 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
@@ -447,6 +447,20 @@ public class CmdFunctionsTest {
         verify(functions, times(1)).createFunction(any(FunctionConfig.class), anyString());
     }
 
+    @Test
+    public void testCreateFunctionWithoutClassName() throws Exception {
+        cmd.run(new String[] {
+                "create",
+                "--name", FN_NAME,
+                "--inputs", INPUT_TOPIC_NAME,
+                "--output", OUTPUT_TOPIC_NAME,
+                "--jar", PACKAGE_URL,
+                "--tenant", "sample",
+                "--namespace", "ns1",
+        });
+        verify(functions, times(0)).createFunctionWithUrl(any(FunctionConfig.class), anyString());
+    }
+
     @Test
     public void testCreateFunctionWithoutBasicArguments() throws Exception {
         cmd.run(new String[] {
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 4aca2bfa8b7..a9c83a2cd09 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
@@ -643,8 +643,7 @@ public class CmdFunctions extends CmdBase {
 
         protected void validateFunctionConfigs(FunctionConfig functionConfig) {
             // go doesn't need className
-            if (functionConfig.getRuntime() == FunctionConfig.Runtime.PYTHON
-                    || functionConfig.getRuntime() == FunctionConfig.Runtime.JAVA){
+            if (functionConfig.getPy() != null || functionConfig.getJar() != null) {
                 if (StringUtils.isEmpty(functionConfig.getClassName())) {
                     throw new ParameterException("No Function Classname specified");
                 }