This is an automated email from the ASF dual-hosted git repository.
technoboy pushed a commit to branch branch-3.2
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/branch-3.2 by this push:
new 1412b9eceb7 [improve][cli] error out when --destinationBroker is set
when --bundle is empty (#21879)
1412b9eceb7 is described below
commit 1412b9eceb7fddc7c96159a97f1cae58b59a8514
Author: Heesung Sohn <[email protected]>
AuthorDate: Wed Jan 10 17:23:41 2024 -0800
[improve][cli] error out when --destinationBroker is set when --bundle is
empty (#21879)
---
.../java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java | 9 +++++++++
.../src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java | 8 +++++++-
2 files changed, 16 insertions(+), 1 deletion(-)
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 07efa5165e5..fdcf6bdac35 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
@@ -468,6 +468,11 @@ public class PulsarAdminToolTest {
namespaces.run(split("remove-replicator-dispatch-rate
myprop/clust/ns1"));
verify(mockNamespaces).removeReplicatorDispatchRate("myprop/clust/ns1");
+
+ assertFalse(namespaces.run(split("unload myprop/clust/ns1 -d
broker")));
+ verify(mockNamespaces, times(0)).unload("myprop/clust/ns1");
+
+ namespaces = new CmdNamespaces(() -> admin);
namespaces.run(split("unload myprop/clust/ns1"));
verify(mockNamespaces).unload("myprop/clust/ns1");
@@ -484,6 +489,10 @@ public class PulsarAdminToolTest {
namespaces.run(split("unload myprop/clust/ns1 -b
0x80000000_0xffffffff"));
verify(mockNamespaces).unloadNamespaceBundle("myprop/clust/ns1",
"0x80000000_0xffffffff", null);
+ namespaces = new CmdNamespaces(() -> admin);
+ namespaces.run(split("unload myprop/clust/ns1 -b 0x80000000_0xffffffff
-d broker"));
+ verify(mockNamespaces).unloadNamespaceBundle("myprop/clust/ns1",
"0x80000000_0xffffffff", "broker");
+
namespaces.run(split("split-bundle myprop/clust/ns1 -b
0x00000000_0xffffffff"));
verify(mockNamespaces).splitNamespaceBundle("myprop/clust/ns1",
"0x00000000_0xffffffff", false, null);
diff --git
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
index c7658cbf770..f37d5b383f6 100644
---
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
+++
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
@@ -866,13 +866,19 @@ public class CmdNamespaces extends CmdBase {
private String bundle;
@Parameter(names = { "--destinationBroker", "-d" },
- description = "Target brokerWebServiceAddress to which the
bundle has to be allocated to")
+ description = "Target brokerWebServiceAddress to which the
bundle has to be allocated to. "
+ + "--destinationBroker cannot be set when --bundle is
not specified.")
private String destinationBroker;
@Override
void run() throws PulsarAdminException {
String namespace = validateNamespace(params);
+
+
if (bundle == null) {
+ if (StringUtils.isNotBlank(destinationBroker)) {
+ throw new ParameterException("--destinationBroker cannot
be set when --bundle is not specified.");
+ }
getAdmin().namespaces().unload(namespace);
} else {
getAdmin().namespaces().unloadNamespaceBundle(namespace,
bundle, destinationBroker);