-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[improve][pip] PIP-277: Add
current
option in the Clusters list cmd (…
- Loading branch information
1 parent
3bbd5a3
commit d890432
Showing
1 changed file
with
48 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# Motivation | ||
|
||
After configuring the geo-replication on Pulsar clusters, the `clusters list` API will return multiple clusters, including the local Pulsar cluster and remote clusters like | ||
|
||
``` | ||
bin/pulsar-admin clusters list | ||
us-west | ||
us-east | ||
us-cent | ||
``` | ||
But in this return, you can't distinguish the local and the remote cluster. When you need to remove the geo-replication configuration, it will be hard to decide which cluster should be removed on replicated tenants and namespaces unless you record the cluster information. | ||
|
||
# High Level Design | ||
|
||
Add `--current` option to the cluster list cmd and mark the current cluster with `(*)` | ||
``` | ||
bin/pulsar-admin clusters list --current | ||
us-west(*) | ||
us-east | ||
us-cent | ||
``` | ||
|
||
# Detailed Design | ||
|
||
## Implementation Details | ||
|
||
Add `--current` option to the cluster list cmd | ||
``` | ||
@Parameter(names = { "-c", "--current" }, description = "Print the current cluster with (*)", required = false) | ||
private boolean current = false; | ||
``` | ||
|
||
``` | ||
void run() throws PulsarAdminException { | ||
java.util.List<String> clusters = getAdmin().clusters().getClusters(); | ||
String clusterName = getAdmin().brokers().getRuntimeConfigurations().get("clusterName"); | ||
List<String> result = clusters.stream().map(c ->c.equals(clusterName) ? (current ? c + "(*)" : c) : c).collect(Collectors.toList()); | ||
print(result); | ||
} | ||
``` | ||
|
||
# Links | ||
|
||
<!-- | ||
Updated afterwards | ||
--> | ||
* Mailing List discussion thread: https://lists.apache.org/thread/800r6ld5wg7bttbywmk38m1qx12hs6nl | ||
* Mailing List voting thread: https://lists.apache.org/thread/rqn3rd3c4hj11o3b12ygopmztj2yy7pv |