This is an automated email from the ASF dual-hosted git repository.
tison 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 36d4708356d [improve][cli][PIP-280] Retrofit `pulsar-cli-utils` into
`pulsar-broker` and `pulsar-client-tools` (#21412)
36d4708356d is described below
commit 36d4708356d6880b32f806c0c2bd07116a4a8596
Author: Kim, Joo Hyuk <[email protected]>
AuthorDate: Tue Nov 14 12:55:20 2023 +0900
[improve][cli][PIP-280] Retrofit `pulsar-cli-utils` into `pulsar-broker`
and `pulsar-client-tools` (#21412)
Co-authored-by: tison <[email protected]>
---
pulsar-broker/pom.xml | 6 ++++++
.../pulsar/utils/auth/tokens/TokensCliUtils.java | 23 ++++++--------------
.../pulsar/admin/cli/CmdPersistentTopics.java | 25 ++++++----------------
.../apache/pulsar/admin/cli/CmdTransactions.java | 18 ++++++----------
4 files changed, 26 insertions(+), 46 deletions(-)
diff --git a/pulsar-broker/pom.xml b/pulsar-broker/pom.xml
index 46f2eb95175..6aac8959a10 100644
--- a/pulsar-broker/pom.xml
+++ b/pulsar-broker/pom.xml
@@ -82,6 +82,12 @@
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>pulsar-cli-utils</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>managed-ledger</artifactId>
diff --git
a/pulsar-broker/src/main/java/org/apache/pulsar/utils/auth/tokens/TokensCliUtils.java
b/pulsar-broker/src/main/java/org/apache/pulsar/utils/auth/tokens/TokensCliUtils.java
index fa91ef79d40..fa3a7bed8f6 100644
---
a/pulsar-broker/src/main/java/org/apache/pulsar/utils/auth/tokens/TokensCliUtils.java
+++
b/pulsar-broker/src/main/java/org/apache/pulsar/utils/auth/tokens/TokensCliUtils.java
@@ -22,7 +22,6 @@ import com.beust.jcommander.DefaultUsageFormatter;
import com.beust.jcommander.IUsageFormatter;
import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;
-import com.beust.jcommander.ParameterException;
import com.beust.jcommander.Parameters;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwt;
@@ -41,11 +40,10 @@ import java.security.Key;
import java.security.KeyPair;
import java.util.Date;
import java.util.Optional;
-import java.util.concurrent.TimeUnit;
import javax.crypto.SecretKey;
import lombok.Cleanup;
import org.apache.pulsar.broker.authentication.utils.AuthTokenUtils;
-import org.apache.pulsar.common.util.RelativeTimeUtil;
+import org.apache.pulsar.cli.converters.TimeUnitToSecondsConverter;
import org.apache.pulsar.docs.tools.CmdGenerateDocs;
public class TokensCliUtils {
@@ -120,8 +118,9 @@ public class TokensCliUtils {
@Parameter(names = {"-e",
"--expiry-time"},
description = "Relative expiry time for the token (eg: 1h, 3d,
10y)."
- + " (m=minutes) Default: no expiration")
- private String expiryTime;
+ + " (m=minutes) Default: no expiration",
+ converter = TimeUnitToSecondsConverter.class)
+ private Long expiryTime = null;
@Parameter(names = {"-sk",
"--secret-key"},
@@ -154,17 +153,9 @@ public class TokensCliUtils {
signingKey = AuthTokenUtils.decodeSecretKey(encodedKey);
}
- Optional<Date> optExpiryTime = Optional.empty();
- if (expiryTime != null) {
- long relativeTimeMillis;
- try {
- relativeTimeMillis = TimeUnit.SECONDS.toMillis(
-
RelativeTimeUtil.parseRelativeTimeInSeconds(expiryTime));
- } catch (IllegalArgumentException exception) {
- throw new ParameterException(exception.getMessage());
- }
- optExpiryTime = Optional.of(new
Date(System.currentTimeMillis() + relativeTimeMillis));
- }
+ Optional<Date> optExpiryTime = (expiryTime == null)
+ ? Optional.empty()
+ : Optional.of(new Date(System.currentTimeMillis() +
expiryTime));
String token = AuthTokenUtils.createToken(signingKey, subject,
optExpiryTime);
System.out.println(token);
diff --git
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
index c9c55ff5c0d..cdfcaefc7f6 100644
---
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
+++
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
@@ -20,7 +20,6 @@ package org.apache.pulsar.admin.cli;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import com.beust.jcommander.Parameter;
-import com.beust.jcommander.ParameterException;
import com.beust.jcommander.Parameters;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -33,6 +32,7 @@ import java.util.Objects;
import java.util.concurrent.ExecutionException;
import java.util.function.Supplier;
import org.apache.pulsar.cli.converters.TimeUnitToMillisConverter;
+import org.apache.pulsar.cli.converters.TimeUnitToSecondsConverter;
import org.apache.pulsar.client.admin.LongRunningProcessStatus;
import org.apache.pulsar.client.admin.PulsarAdmin;
import org.apache.pulsar.client.admin.PulsarAdminException;
@@ -42,7 +42,6 @@ import org.apache.pulsar.client.api.MessageId;
import org.apache.pulsar.client.cli.NoSplitter;
import org.apache.pulsar.client.impl.BatchMessageIdImpl;
import org.apache.pulsar.client.impl.MessageIdImpl;
-import org.apache.pulsar.common.util.RelativeTimeUtil;
@Parameters(commandDescription = "Operations on persistent topics. The
persistent-topics "
+ "has been deprecated in favor of topics", hidden = true)
@@ -458,17 +457,12 @@ public class CmdPersistentTopics extends CmdBase {
private String subName;
@Parameter(names = { "-t", "--expireTime" }, description = "Expire
messages older than time in seconds "
- + "(or minutes, hours, days, weeks eg: 100m, 3h, 2d, 5w)",
required = true)
- private String expireTimeStr;
+ + "(or minutes, hours, days, weeks eg: 100m, 3h, 2d, 5w)",
required = true,
+ converter = TimeUnitToSecondsConverter.class)
+ private Long expireTimeInSeconds;
@Override
void run() throws PulsarAdminException {
- long expireTimeInSeconds;
- try {
- expireTimeInSeconds =
RelativeTimeUtil.parseRelativeTimeInSeconds(expireTimeStr);
- } catch (IllegalArgumentException e) {
- throw new ParameterException(e.getMessage());
- }
String persistentTopic = validatePersistentTopic(params);
getPersistentTopics().expireMessages(persistentTopic, subName,
expireTimeInSeconds);
}
@@ -481,17 +475,12 @@ public class CmdPersistentTopics extends CmdBase {
private java.util.List<String> params;
@Parameter(names = { "-t", "--expireTime" }, description = "Expire
messages older than time in seconds "
- + "(or minutes, hours, days, weeks eg: 100m, 3h, 2d, 5w)",
required = true)
- private String expireTimeStr;
+ + "(or minutes, hours, days, weeks eg: 100m, 3h, 2d, 5w)",
required = true,
+ converter = TimeUnitToSecondsConverter.class)
+ private Long expireTimeInSeconds;
@Override
void run() throws PulsarAdminException {
- long expireTimeInSeconds;
- try {
- expireTimeInSeconds =
RelativeTimeUtil.parseRelativeTimeInSeconds(expireTimeStr);
- } catch (IllegalArgumentException e) {
- throw new ParameterException(e.getMessage());
- }
String persistentTopic = validatePersistentTopic(params);
getPersistentTopics().expireMessagesForAllSubscriptions(persistentTopic,
expireTimeInSeconds);
}
diff --git
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTransactions.java
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTransactions.java
index b999e30b108..279759021d8 100644
---
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTransactions.java
+++
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTransactions.java
@@ -19,15 +19,14 @@
package org.apache.pulsar.admin.cli;
import com.beust.jcommander.Parameter;
-import com.beust.jcommander.ParameterException;
import com.beust.jcommander.Parameters;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
import java.util.stream.Collectors;
+import org.apache.pulsar.cli.converters.TimeUnitToMillisConverter;
import org.apache.pulsar.client.admin.PulsarAdmin;
import org.apache.pulsar.client.api.transaction.TxnID;
import org.apache.pulsar.common.policies.data.TransactionCoordinatorInfo;
-import org.apache.pulsar.common.util.RelativeTimeUtil;
@Parameters(commandDescription = "Operations on transactions")
public class CmdTransactions extends CmdBase {
@@ -144,22 +143,17 @@ public class CmdTransactions extends CmdBase {
private Integer coordinatorId;
@Parameter(names = { "-t", "--time" }, description = "The transaction
timeout time. "
- + "(eg: 1s, 10s, 1m, 5h, 3d)", required = true)
- private String timeoutStr = "1s";
+ + "(eg: 1s, 10s, 1m, 5h, 3d)", required = true,
+ converter = TimeUnitToMillisConverter.class)
+ private Long timeoutInMillis = 1L;
@Override
void run() throws Exception {
- long timeout;
- try {
- timeout =
TimeUnit.SECONDS.toMillis(RelativeTimeUtil.parseRelativeTimeInSeconds(timeoutStr));
- } catch (IllegalArgumentException exception) {
- throw new ParameterException(exception.getMessage());
- }
if (coordinatorId != null) {
print(getAdmin().transactions().getSlowTransactionsByCoordinatorId(coordinatorId,
- timeout, TimeUnit.MILLISECONDS));
+ timeoutInMillis, TimeUnit.MILLISECONDS));
} else {
- print(getAdmin().transactions().getSlowTransactions(timeout,
TimeUnit.MILLISECONDS));
+
print(getAdmin().transactions().getSlowTransactions(timeoutInMillis,
TimeUnit.MILLISECONDS));
}
}
}