This is an automated email from the ASF dual-hosted git repository.
eolivelli 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 e3f22c0 [pulsar-admin] Check validity of --types for topic and
namespace (#12462)
e3f22c0 is described below
commit e3f22c0948775ecd94a76c6b7d177924ff15394a
Author: Ruguo Yu <[email protected]>
AuthorDate: Sat Oct 30 18:18:37 2021 +0800
[pulsar-admin] Check validity of --types for topic and namespace (#12462)
---
.../java/org/apache/pulsar/admin/cli/CmdNamespaces.java | 17 +++++++++++++----
.../java/org/apache/pulsar/admin/cli/CmdTopics.java | 17 +++++++++++++----
2 files changed, 26 insertions(+), 8 deletions(-)
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 6ce9ae6..c7ec8a2 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
@@ -317,15 +317,24 @@ public class CmdNamespaces extends CmdBase {
@Parameter(description = "tenant/namespace", required = true)
private java.util.List<String> params;
- @Parameter(names = { "--types",
- "-t" }, description = "Subscription types enabled list (comma
separated values)", required = true)
- private String subTypes;
+ @Parameter(names = {"--types", "-t"}, description = "Subscription
types enabled list (comma separated values)."
+ + " Possible values: (Exclusive, Shared, Failover,
Key_Shared).", required = true)
+ private List<String> subTypes;
@Override
void run() throws PulsarAdminException {
String namespace = validateNamespace(params);
Set<SubscriptionType> types = new HashSet<>();
- Lists.newArrayList(subTypes.split(",")).forEach(s ->
types.add(SubscriptionType.valueOf(s)));
+ subTypes.forEach(s -> {
+ SubscriptionType subType;
+ try {
+ subType = SubscriptionType.valueOf(s);
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(String.format("Illegal
subscription type %s. Possible values: %s.", s,
+ Arrays.toString(SubscriptionType.values())));
+ }
+ types.add(subType);
+ });
getAdmin().namespaces().setSubscriptionTypesEnabled(namespace,
types);
}
}
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 fbd037a..2e746c4 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
@@ -1850,15 +1850,24 @@ public class CmdTopics extends CmdBase {
@Parameter(description = "persistent://tenant/namespace/topic",
required = true)
private java.util.List<String> params;
- @Parameter(names = { "--types",
- "-t" }, description = "Subscription types enabled list (comma
separated values)", required = true)
- private String subTypes;
+ @Parameter(names = {"--types", "-t"}, description = "Subscription
types enabled list (comma separated values)."
+ + " Possible values: (Exclusive, Shared, Failover,
Key_Shared).", required = true)
+ private List<String> subTypes;
@Override
void run() throws PulsarAdminException {
String persistentTopic = validatePersistentTopic(params);
Set<SubscriptionType> types = new HashSet<>();
- Lists.newArrayList(subTypes.split(",")).forEach(s ->
types.add(SubscriptionType.valueOf(s)));
+ subTypes.forEach(s -> {
+ SubscriptionType subType;
+ try {
+ subType = SubscriptionType.valueOf(s);
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(String.format("Illegal
subscription type %s. Possible values: %s.", s,
+ Arrays.toString(SubscriptionType.values())));
+ }
+ types.add(subType);
+ });
getTopics().setSubscriptionTypesEnabled(persistentTopic, types);
}
}