You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by zh...@apache.org on 2023/02/28 09:30:47 UTC
[pulsar] 01/02: [fix][broker]add test case for deleting namespace fail when has partitioned system topic (#17338)
This is an automated email from the ASF dual-hosted git repository.
zhaocong pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit f1ec5ca772d92fc6a8bb364324d14d6d90f6e04c
Author: fengyubiao <yu...@streamnative.io>
AuthorDate: Fri Sep 16 09:32:24 2022 +0800
[fix][broker]add test case for deleting namespace fail when has partitioned system topic (#17338)
(cherry picked from commit bfbe3811ab1120dd602d2548422f934c7358b5b5)
---
.../apache/pulsar/broker/admin/AdminApi2Test.java | 47 ++++++++++++++++++++--
1 file changed, 44 insertions(+), 3 deletions(-)
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApi2Test.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApi2Test.java
index 9f6a10894c9..4de7c78b6bc 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApi2Test.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApi2Test.java
@@ -49,7 +49,9 @@ import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import javax.ws.rs.core.Response.Status;
+import lombok.AllArgsConstructor;
import lombok.Cleanup;
+import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.bookkeeper.mledger.ManagedLedger;
import org.apache.bookkeeper.mledger.impl.ManagedCursorImpl;
@@ -1326,9 +1328,43 @@ public class AdminApi2Test extends MockedPulsarServiceBaseTest {
assertFalse(pulsar.getLocalMetadataStore().exists(localPoliciesPath).join());
}
- @Test
- public void testDeleteNamespace() throws Exception {
- pulsar.getConfiguration().setForceDeleteNamespaceAllowed(false);
+ @Data
+ @AllArgsConstructor
+ private static class NamespaceAttr {
+ private boolean systemTopicEnabled;
+ private String autoTopicCreationType;
+ private int defaultNumPartitions;
+ private boolean forceDeleteNamespaceAllowed;
+ }
+
+ @DataProvider(name = "namespaceAttrs")
+ public Object[][] namespaceAttributes(){
+ return new Object[][]{
+ {new NamespaceAttr(false, "non-partitioned", 0, false)},
+ {new NamespaceAttr(true, "non-partitioned", 0, false)},
+ {new NamespaceAttr(true, "partitioned", 3, false)}
+ };
+ }
+
+ private NamespaceAttr markOriginalNamespaceAttr(){
+ return new NamespaceAttr(conf.isSystemTopicEnabled(), conf.getAllowAutoTopicCreationType(),
+ conf.getDefaultNumPartitions(), conf.isForceDeleteNamespaceAllowed());
+ }
+
+ private void setNamespaceAttr(NamespaceAttr namespaceAttr){
+ conf.setSystemTopicEnabled(namespaceAttr.systemTopicEnabled);
+ conf.setAllowAutoTopicCreationType(namespaceAttr.autoTopicCreationType);
+ conf.setDefaultNumPartitions(namespaceAttr.defaultNumPartitions);
+ conf.setForceDeleteNamespaceAllowed(namespaceAttr.forceDeleteNamespaceAllowed);
+ }
+
+ @Test(dataProvider = "namespaceAttrs")
+ public void testDeleteNamespace(NamespaceAttr namespaceAttr) throws Exception {
+ // Set conf.
+ internalCleanup();
+ NamespaceAttr originalNamespaceAttr = markOriginalNamespaceAttr();
+ setNamespaceAttr(namespaceAttr);
+ setup();
String tenant = "test-tenant";
assertFalse(admin.tenants().getTenants().contains(tenant));
@@ -1373,6 +1409,11 @@ public class AdminApi2Test extends MockedPulsarServiceBaseTest {
final String bundleDataPath = "/loadbalance/bundle-data/" + namespace;
assertFalse(pulsar.getLocalMetadataStore().exists(bundleDataPath).join());
+
+ // Reset config
+ internalCleanup();
+ setNamespaceAttr(originalNamespaceAttr);
+ setup();
}
private void awaitChangeEventTopicAndCompactionCreateFinish(String ns, String topic) throws Exception {