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

penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit 1939fa891834092af53f63557a7c25be8b75fafd
Author: lipenghui <[email protected]>
AuthorDate: Fri Jul 30 11:26:55 2021 +0800

    Fix the schema deletion when delete topic with delete schema (#11501)
    
    The delete topic REST API already provided delete schema option,
    but the delete topic command does not apply this option,
    instead call the delete schema independently.
    
    And the delete schema REST API has a different behavior with the delete 
topic
    REST API with deleteSchema=true. When delete a topic with delete schema 
option,
    the schema ledgers and schema indexes will be deleted, but delete schema 
independently
    only write a delete marker to the schema storage.
    
    We may need to improve the delete schema API, but the improvement does not 
in this PR.
    This PR just correct the delete topic with delete schema behavior.
    
    (cherry picked from commit cc54f704f5e1c8618b2afa75e3d6e9006a459e36)
---
 .../java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java  | 10 ++++------
 .../src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java   | 10 ++--------
 2 files changed, 6 insertions(+), 14 deletions(-)

diff --git 
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
 
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
index acbda97..b0810c2 100644
--- 
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
+++ 
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
@@ -863,9 +863,8 @@ public class PulsarAdminToolTest {
         cmdTopics.run(split("truncate persistent://myprop/clust/ns1/ds1"));
         verify(mockTopics).truncate("persistent://myprop/clust/ns1/ds1");
 
-        cmdTopics.run(split("delete persistent://myprop/clust/ns1/ds1 -d"));
-        verify(mockTopics).delete("persistent://myprop/clust/ns1/ds1", false);
-        verify(mockSchemas).deleteSchema("persistent://myprop/clust/ns1/ds1");
+        cmdTopics.run(split("delete persistent://myprop/clust/ns1/ds1 -f -d"));
+        verify(mockTopics).delete("persistent://myprop/clust/ns1/ds1", true, 
true);
 
         cmdTopics.run(split("unload persistent://myprop/clust/ns1/ds1"));
         verify(mockTopics).unload("persistent://myprop/clust/ns1/ds1");
@@ -974,9 +973,8 @@ public class PulsarAdminToolTest {
         cmdTopics.run(split("get-partitioned-topic-metadata 
persistent://myprop/clust/ns1/ds1"));
         
verify(mockTopics).getPartitionedTopicMetadata("persistent://myprop/clust/ns1/ds1");
 
-        cmdTopics.run(split("delete-partitioned-topic 
persistent://myprop/clust/ns1/ds1 -d"));
-        
verify(mockTopics).deletePartitionedTopic("persistent://myprop/clust/ns1/ds1", 
false);
-        verify(mockSchemas, 
times(2)).deleteSchema("persistent://myprop/clust/ns1/ds1");
+        cmdTopics.run(split("delete-partitioned-topic 
persistent://myprop/clust/ns1/ds1 -d -f"));
+        
verify(mockTopics).deletePartitionedTopic("persistent://myprop/clust/ns1/ds1", 
true, true);
 
         cmdTopics.run(split("peek-messages persistent://myprop/clust/ns1/ds1 
-s sub1 -n 3"));
         verify(mockTopics).peekMessages("persistent://myprop/clust/ns1/ds1", 
"sub1", 3);
diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
index b751196..0d0a757 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
@@ -459,10 +459,7 @@ public class CmdTopics extends CmdBase {
         @Override
         void run() throws Exception {
             String topic = validateTopicName(params);
-            getTopics().deletePartitionedTopic(topic, force);
-            if (deleteSchema) {
-                getAdmin().schemas().deleteSchema(topic);
-            }
+            getTopics().deletePartitionedTopic(topic, force, deleteSchema);
         }
     }
 
@@ -483,10 +480,7 @@ public class CmdTopics extends CmdBase {
         @Override
         void run() throws PulsarAdminException {
             String topic = validateTopicName(params);
-            getTopics().delete(topic, force);
-            if (deleteSchema) {
-                getAdmin().schemas().deleteSchema(topic);
-            }
+            getTopics().delete(topic, force, deleteSchema);
         }
     }
 

Reply via email to