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

nkurihar 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 7037c5e  [cli] Fix output format of string by pulsar-admin command 
(#11878)
7037c5e is described below

commit 7037c5e71bf80f5f41b9b3736f68c1e521af632a
Author: Masahiro Sakamoto <[email protected]>
AuthorDate: Mon Oct 25 10:50:02 2021 +0900

    [cli] Fix output format of string by pulsar-admin command (#11878)
    
    * Fix output format of list of strings by pulsar-admin command
    
    * Fix test code
    
    * Fix docs
---
 .../org/apache/pulsar/admin/cli/CliCommand.java    |  6 +++-
 .../org/apache/pulsar/admin/cli/TestCmdTopics.java | 34 ++++++++++++++++++++++
 site2/docs/io-quickstart.md                        | 10 +++----
 .../tests/integration/cli/FunctionsCLITest.java    |  4 +--
 .../integration/functions/PulsarFunctionsTest.java | 10 +++----
 .../integration/functions/PulsarStateTest.java     |  6 ++--
 .../io/PulsarGenericObjectSinkTest.java            |  2 +-
 .../integration/io/sinks/PulsarIOSinkRunner.java   |  6 ++--
 .../io/sources/AvroKafkaSourceTest.java            |  2 +-
 .../integration/io/sources/BatchSourceTest.java    |  4 +--
 .../io/sources/GenericRecordSourceTest.java        |  4 +--
 .../io/sources/PulsarIOSourceRunner.java           |  4 +--
 .../io/sources/PulsarSourcePropertyTest.java       |  2 +-
 13 files changed, 66 insertions(+), 28 deletions(-)

diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java
index 2f1cf72..6a1428a 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java
@@ -188,7 +188,11 @@ abstract class CliCommand {
 
     <T> void print(T item) {
         try {
-            System.out.println(writer.writeValueAsString(item));
+            if (item instanceof String) {
+                System.out.println(item);
+            } else {
+                System.out.println(writer.writeValueAsString(item));
+            }
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
diff --git 
a/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdTopics.java
 
b/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdTopics.java
index 9dee2b1..fb53600 100644
--- 
a/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdTopics.java
+++ 
b/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdTopics.java
@@ -18,8 +18,19 @@
  */
 package org.apache.pulsar.admin.cli;
 
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import com.google.common.collect.Lists;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.pulsar.client.admin.PulsarAdmin;
+import org.apache.pulsar.client.admin.Topics;
 import org.apache.pulsar.client.impl.MessageIdImpl;
 import 
org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats.LedgerInfo;
 import org.testng.Assert;
@@ -54,4 +65,27 @@ public class TestCmdTopics {
         Assert.assertEquals(CmdTopics.findFirstLedgerWithinThreshold(ledgers, 
5000),
                             new MessageIdImpl(1, 0, -1));
     }
+
+    @Test
+    public void testListCmd() throws Exception {
+        List<String> topicList = 
Lists.newArrayList("persistent://public/default/t1", 
"persistent://public/default/t2",
+                "persistent://public/default/t3");
+
+        Topics topics = mock(Topics.class);
+        doReturn(topicList).when(topics).getList(anyString(), any());
+
+        PulsarAdmin admin = mock(PulsarAdmin.class);
+        when(admin.topics()).thenReturn(topics);
+
+        CmdTopics cmd = new CmdTopics(() -> admin);
+
+        PrintStream defaultSystemOut = System.out;
+        try (ByteArrayOutputStream out = new ByteArrayOutputStream(); 
PrintStream ps = new PrintStream(out)) {
+            System.setOut(ps);
+            cmd.run("list public/default".split("\\s+"));
+            Assert.assertEquals(out.toString(), String.join("\n", topicList) + 
"\n");
+        } finally {
+            System.setOut(defaultSystemOut);
+        }
+    }
 }
diff --git a/site2/docs/io-quickstart.md b/site2/docs/io-quickstart.md
index 75b48d1..e354896 100644
--- a/site2/docs/io-quickstart.md
+++ b/site2/docs/io-quickstart.md
@@ -558,7 +558,7 @@ This sink connector runs as a Pulsar Function and writes 
the messages produced i
 The sink has been created successfully if the following message appears.
 
 ```bash
-"Created successfully"
+Created successfully
 ```
 
 ### Inspect a JDBC sink
@@ -682,7 +682,7 @@ $ bin/pulsar-admin sinks stop \
 The sink instance has been stopped successfully if the following message 
disappears.
 
 ```bash
-"Stopped successfully"
+Stopped successfully
 ```
 
 ### Restart a JDBC sink
@@ -704,7 +704,7 @@ $ bin/pulsar-admin sinks restart \
 The sink instance has been started successfully if the following message 
disappears.
 
 ```bash
-"Started successfully"
+Started successfully
 ```
 
 > #### Tip
@@ -735,7 +735,7 @@ $ bin/pulsar-admin sinks update \
 The sink connector has been updated successfully if the following message 
disappears.
 
 ```bash
-"Updated successfully"
+Updated successfully
 ```
 
 This example double-checks the information.
@@ -794,7 +794,7 @@ $ bin/pulsar-admin sinks delete \
 The sink connector has been deleted successfully if the following message 
appears.
 
 ```text
-"Deleted successfully"
+Deleted successfully
 ```
 
 This example double-checks the status of the sink connector.
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/FunctionsCLITest.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/FunctionsCLITest.java
index a89d36d..75987f1 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/FunctionsCLITest.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/FunctionsCLITest.java
@@ -54,7 +54,7 @@ public class FunctionsCLITest extends PulsarFunctionsTestBase 
{
         };
         ContainerExecResult output = 
pulsarCluster.getAnyWorker().execCmd(commands);
         assertEquals(0, output.getExitCode());
-        assertTrue(output.getStdout().contains("\"Uploaded successfully\""));
+        assertTrue(output.getStdout().contains("Uploaded successfully"));
         return bkPkgPath;
     }
 
@@ -77,7 +77,7 @@ public class FunctionsCLITest extends PulsarFunctionsTestBase 
{
         WorkerContainer container = pulsarCluster.getAnyWorker();
         ContainerExecResult output = container.execCmd(commands);
         assertEquals(0, output.getExitCode());
-        assertTrue(output.getStdout().contains("\"Downloaded successfully\""));
+        assertTrue(output.getStdout().contains("Downloaded successfully"));
         String[] diffCommand = {
             "diff",
             PulsarCluster.ADMIN_SCRIPT,
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java
index 87357a04..97d2c7b 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java
@@ -272,7 +272,7 @@ public abstract class PulsarFunctionsTest extends 
PulsarFunctionsTestBase {
         };
 
         ContainerExecResult containerExecResult = 
pulsarCluster.getAnyWorker().execCmd(commands);
-        assertTrue(containerExecResult.getStdout().contains("\"Created 
successfully\""));
+        assertTrue(containerExecResult.getStdout().contains("Created 
successfully"));
 
         // get function info
         getFunctionInfoSuccess(functionName);
@@ -848,7 +848,7 @@ public abstract class PulsarFunctionsTest extends 
PulsarFunctionsTestBase {
         };
         ContainerExecResult result = pulsarCluster.getAnyWorker().execCmd(
                 commands);
-        assertTrue(result.getStdout().contains("\"Created successfully\""));
+        assertTrue(result.getStdout().contains("Created successfully"));
 
         if (StringUtils.isNotEmpty(inputTopicName)) {
             ensureSubscriptionCreated(
@@ -869,7 +869,7 @@ public abstract class PulsarFunctionsTest extends 
PulsarFunctionsTestBase {
         };
         ContainerExecResult result = pulsarCluster.getAnyWorker().execCmd(
                 commands);
-        assertTrue(result.getStdout().contains("\"Updated successfully\""));
+        assertTrue(result.getStdout().contains("Updated successfully"));
     }
 
     protected <T> void submitFunction(Runtime runtime,
@@ -912,7 +912,7 @@ public abstract class PulsarFunctionsTest extends 
PulsarFunctionsTestBase {
         };
         ContainerExecResult result = pulsarCluster.getAnyWorker().execCmd(
                 commands);
-        assertTrue(result.getStdout().contains("\"Created successfully\""));
+        assertTrue(result.getStdout().contains("Created successfully"));
     }
 
     private <T> void ensureSubscriptionCreated(String inputTopicName,
@@ -1514,7 +1514,7 @@ public abstract class PulsarFunctionsTest extends 
PulsarFunctionsTestBase {
         };
         ContainerExecResult result = pulsarCluster.getAnyWorker().execCmd(
                 commands);
-        assertTrue(result.getStdout().contains("\"Created successfully\""));
+        assertTrue(result.getStdout().contains("Created successfully"));
 
         ensureSubscriptionCreated(inputTopicName, 
String.format("public/default/%s", functionName), schema);
     }
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarStateTest.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarStateTest.java
index c5fb6ec..21b1df1 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarStateTest.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarStateTest.java
@@ -199,7 +199,7 @@ public class PulsarStateTest extends 
PulsarStandaloneTestSuite {
         log.info("Run command : {}", StringUtils.join(commands, ' '));
         ContainerExecResult result = container.execCmd(commands);
         assertTrue(
-                result.getStdout().contains("\"Created successfully\""),
+                result.getStdout().contains("Created successfully"),
                 result.getStdout());
     }
 
@@ -218,7 +218,7 @@ public class PulsarStateTest extends 
PulsarStandaloneTestSuite {
         log.info("Run command : {}", StringUtils.join(commands, ' '));
         ContainerExecResult result = container.execCmd(commands);
         assertTrue(
-                result.getStdout().contains("\"Created successfully\""),
+                result.getStdout().contains("Created successfully"),
                 result.getStdout());
     }
 
@@ -267,7 +267,7 @@ public class PulsarStateTest extends 
PulsarStandaloneTestSuite {
         };
         ContainerExecResult result = container.execCmd(
             commands);
-        assertTrue(result.getStdout().contains("\"Created successfully\""));
+        assertTrue(result.getStdout().contains("Created successfully"));
 
         ensureSubscriptionCreated(inputTopicName, 
String.format("public/default/%s", functionName), inputTopicSchema);
     }
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/PulsarGenericObjectSinkTest.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/PulsarGenericObjectSinkTest.java
index fc266a5..e5b1698 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/PulsarGenericObjectSinkTest.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/PulsarGenericObjectSinkTest.java
@@ -270,7 +270,7 @@ public class PulsarGenericObjectSinkTest extends 
PulsarStandaloneTestSuite {
         log.info("Run command : {}", StringUtils.join(commands, ' '));
         ContainerExecResult result = container.execCmd(commands);
         assertTrue(
-                result.getStdout().contains("\"Created successfully\""),
+                result.getStdout().contains("Created successfully"),
                 result.getStdout());
     }
 
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sinks/PulsarIOSinkRunner.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sinks/PulsarIOSinkRunner.java
index 92b6196..4b055d1 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sinks/PulsarIOSinkRunner.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sinks/PulsarIOSinkRunner.java
@@ -173,7 +173,7 @@ public class PulsarIOSinkRunner extends PulsarIOTestRunner {
         log.info("Run command : {}", StringUtils.join(commands, ' '));
         ContainerExecResult result = 
pulsarCluster.getAnyWorker().execCmd(commands);
         assertTrue(
-            result.getStdout().contains("\"Created successfully\""),
+            result.getStdout().contains("Created successfully"),
             result.getStdout());
     }
 
@@ -212,7 +212,7 @@ public class PulsarIOSinkRunner extends PulsarIOTestRunner {
         log.info("Run command : {}", StringUtils.join(commands, ' '));
         ContainerExecResult result = 
pulsarCluster.getAnyWorker().execCmd(commands);
         assertTrue(
-                result.getStdout().contains("\"Updated successfully\""),
+                result.getStdout().contains("Updated successfully"),
                 result.getStdout());
     }
 
@@ -450,4 +450,4 @@ public class PulsarIOSinkRunner extends PulsarIOTestRunner {
         }
         return kvs;
     }
-}
\ No newline at end of file
+}
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/AvroKafkaSourceTest.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/AvroKafkaSourceTest.java
index 256c49e..94b6969 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/AvroKafkaSourceTest.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/AvroKafkaSourceTest.java
@@ -328,7 +328,7 @@ public class AvroKafkaSourceTest extends 
PulsarFunctionsTestBase {
         log.info("Run command : {}", StringUtils.join(commands, ' '));
         ContainerExecResult result = 
pulsarCluster.getAnyWorker().execCmd(commands);
         assertTrue(
-                result.getStdout().contains("\"Created successfully\""),
+                result.getStdout().contains("Created successfully"),
                 result.getStdout());
     }
 
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/BatchSourceTest.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/BatchSourceTest.java
index 8ed9e54..a3d9b23 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/BatchSourceTest.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/BatchSourceTest.java
@@ -118,7 +118,7 @@ public class BatchSourceTest extends 
PulsarStandaloneTestSuite {
         log.info("Run command : {}", StringUtils.join(commands, ' '));
         ContainerExecResult result = container.execCmd(commands);
         assertTrue(
-            result.getStdout().contains("\"Created successfully\""),
+            result.getStdout().contains("Created successfully"),
             result.getStdout());
     }
 
@@ -224,4 +224,4 @@ public class BatchSourceTest extends 
PulsarStandaloneTestSuite {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/GenericRecordSourceTest.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/GenericRecordSourceTest.java
index 3c961fa..d9484ac 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/GenericRecordSourceTest.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/GenericRecordSourceTest.java
@@ -116,7 +116,7 @@ public class GenericRecordSourceTest extends 
PulsarStandaloneTestSuite {
         log.info("Run command : {}", StringUtils.join(commands, ' '));
         ContainerExecResult result = container.execCmd(commands);
         assertTrue(
-            result.getStdout().contains("\"Created successfully\""),
+            result.getStdout().contains("Created successfully"),
             result.getStdout());
     }
 
@@ -255,4 +255,4 @@ public class GenericRecordSourceTest extends 
PulsarStandaloneTestSuite {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/PulsarIOSourceRunner.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/PulsarIOSourceRunner.java
index 68e80fd..ddad6ed 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/PulsarIOSourceRunner.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/PulsarIOSourceRunner.java
@@ -137,7 +137,7 @@ public class PulsarIOSourceRunner extends 
PulsarIOTestRunner {
         log.info("Run command : {}", StringUtils.join(commands, ' '));
         ContainerExecResult result = 
pulsarCluster.getAnyWorker().execCmd(commands);
         assertTrue(
-            result.getStdout().contains("\"Created successfully\""),
+            result.getStdout().contains("Created successfully"),
             result.getStdout());
     }
 
@@ -162,7 +162,7 @@ public class PulsarIOSourceRunner extends 
PulsarIOTestRunner {
         log.info("Run command : {}", StringUtils.join(commands, ' '));
         ContainerExecResult result = 
pulsarCluster.getAnyWorker().execCmd(commands);
         assertTrue(
-                result.getStdout().contains("\"Updated successfully\""),
+                result.getStdout().contains("Updated successfully"),
                 result.getStdout());
     }
 
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/PulsarSourcePropertyTest.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/PulsarSourcePropertyTest.java
index 19da91a..71b7445 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/PulsarSourcePropertyTest.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/PulsarSourcePropertyTest.java
@@ -104,7 +104,7 @@ public class PulsarSourcePropertyTest extends 
PulsarStandaloneTestSuite {
         log.info("Run command : {}", StringUtils.join(commands, ' '));
         ContainerExecResult result = container.execCmd(commands);
         assertTrue(
-                result.getStdout().contains("\"Created successfully\""),
+                result.getStdout().contains("Created successfully"),
                 result.getStdout());
     }
 

Reply via email to