This is an automated email from the ASF dual-hosted git repository.
mattisonchao pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/branch-2.9 by this push:
new 19bd78a25bd [branch-2.9] fix:remove the loadbalance/bundle-data node
(#15730)
19bd78a25bd is described below
commit 19bd78a25bd9b3bd07438c3a9869014d9d900fa3
Author: Qiang Zhao <[email protected]>
AuthorDate: Thu May 26 12:04:05 2022 +0800
[branch-2.9] fix:remove the loadbalance/bundle-data node (#15730)
---
.../broker/resources/NamespaceResources.java | 37 +++++++++++++++++++++-
.../pulsar/broker/admin/impl/NamespacesBase.java | 4 ++-
.../pulsar/broker/admin/impl/TenantsBase.java | 2 ++
.../apache/pulsar/broker/admin/AdminApiTest2.java | 5 +++
4 files changed, 46 insertions(+), 2 deletions(-)
diff --git
a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/resources/NamespaceResources.java
b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/resources/NamespaceResources.java
index 190d25144da..8f677f069d5 100644
---
a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/resources/NamespaceResources.java
+++
b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/resources/NamespaceResources.java
@@ -54,7 +54,7 @@ public class NamespaceResources extends
BaseResources<Policies> {
private static final String POLICIES_READONLY_FLAG_PATH =
"/admin/flags/policies-readonly";
private static final String NAMESPACE_BASE_PATH = "/namespace";
-
+ private static final String BUNDLE_DATA_BASE_PATH =
"/loadbalance/bundle-data";
public NamespaceResources(MetadataStore localStore, MetadataStore
configurationStore, int operationTimeoutSec) {
super(configurationStore, Policies.class, operationTimeoutSec);
this.configurationStore = configurationStore;
@@ -281,4 +281,39 @@ public class NamespaceResources extends
BaseResources<Policies> {
return completableFuture;
}
}
+
+
+ // clear resource of `/loadbalance/bundle-data/{tenant}/{namespace}/` for
zk-node
+ public CompletableFuture<Void> deleteBundleDataAsync(NamespaceName ns) {
+ final String namespaceBundlePath = joinPath(BUNDLE_DATA_BASE_PATH,
ns.toString());
+ CompletableFuture<Void> future = new CompletableFuture<Void>();
+ deleteRecursiveAsync(this, namespaceBundlePath).whenComplete((ignore,
ex) -> {
+ if (ex instanceof MetadataStoreException.NotFoundException) {
+ future.complete(null);
+ } else if (ex != null) {
+ future.completeExceptionally(ex);
+ } else {
+ future.complete(null);
+ }
+ });
+
+ return future;
+ }
+
+ // clear resource of `/loadbalance/bundle-data/{tenant}/` for zk-node
+ public CompletableFuture<Void> deleteBundleDataTenantAsync(String tenant) {
+ final String tenantBundlePath = joinPath(BUNDLE_DATA_BASE_PATH,
tenant);
+ CompletableFuture<Void> future = new CompletableFuture<Void>();
+ deleteRecursiveAsync(this, tenantBundlePath).whenComplete((ignore, ex)
-> {
+ if (ex instanceof MetadataStoreException.NotFoundException) {
+ future.complete(null);
+ } else if (ex != null) {
+ future.completeExceptionally(ex);
+ } else {
+ future.complete(null);
+ }
+ });
+
+ return future;
+ }
}
\ No newline at end of file
diff --git
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
index a2e1dad5b10..edbe1bfe385 100644
---
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
+++
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
@@ -324,7 +324,9 @@ public abstract class NamespacesBase extends AdminResource {
// z-node can be deleted now
.thenCompose(ignore ->
namespaceResources().deletePoliciesAsync(namespaceName))
// clear z-node of local policies
- .thenCompose(ignore ->
getLocalPolicies().deleteLocalPoliciesAsync(namespaceName));
+ .thenCompose(ignore ->
getLocalPolicies().deleteLocalPoliciesAsync(namespaceName))
+ // clear /loadbalance/bundle-data
+ .thenCompose(ignore ->
namespaceResources().deleteBundleDataAsync(namespaceName));
}
diff --git
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java
index 209a5329701..3ec725e6f80 100644
---
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java
+++
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java
@@ -265,6 +265,8 @@ public class TenantsBase extends PulsarWebResource {
.clearTenantPersistence(tenant))
.thenCompose(ignore ->
pulsar().getPulsarResources().getNamespaceResources()
.deleteTenantAsync(tenant))
+ .thenCompose(ignore ->
pulsar().getPulsarResources().getNamespaceResources()
+ .deleteBundleDataTenantAsync(tenant))
.whenComplete((ignore, ex) -> {
if (ex != null) {
log.error("[{}] Failed to delete tenant {}",
clientAppId(), tenant, ex);
diff --git
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest2.java
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest2.java
index 0bf34a16fe0..baafbc1ba42 100644
---
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest2.java
+++
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest2.java
@@ -1311,7 +1311,9 @@ public class AdminApiTest2 extends
MockedPulsarServiceBaseTest {
assertFalse(admin.tenants().getTenants().contains(tenant));
final String managedLedgersPath = "/managed-ledgers/" + tenant;
+ final String bundleDataPath = "/loadbalance/bundle-data/" + tenant;
assertFalse(pulsar.getLocalMetadataStore().exists(managedLedgersPath).join());
+
assertFalse(pulsar.getLocalMetadataStore().exists(bundleDataPath).join());
}
@Test
@@ -1355,6 +1357,9 @@ public class AdminApiTest2 extends
MockedPulsarServiceBaseTest {
final String managedLedgersPath = "/managed-ledgers/" + namespace;
assertFalse(pulsar.getLocalMetadataStore().exists(managedLedgersPath).join());
+
+ final String bundleDataPath = "/loadbalance/bundle-data/" + namespace;
+
assertFalse(pulsar.getLocalMetadataStore().exists(bundleDataPath).join());
}
@Test