You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2019/10/07 15:41:17 UTC
[pulsar] branch master updated: [pulsar-broker] fix ns-isolation
api to fetch policy for specific broker (#5314)
This is an automated email from the ASF dual-hosted git repository.
mmerli 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 e1357a7 [pulsar-broker] fix ns-isolation api to fetch policy for specific broker (#5314)
e1357a7 is described below
commit e1357a7d1ae6a51dfa742986a4a2afe33beb0256
Author: Rajan Dhabalia <rd...@apache.org>
AuthorDate: Mon Oct 7 08:41:12 2019 -0700
[pulsar-broker] fix ns-isolation api to fetch policy for specific broker (#5314)
---
.../org/apache/pulsar/broker/admin/impl/ClustersBase.java | 15 ++++-----------
.../policies/data/BrokerNamespaceIsolationData.java | 12 ++++++++++++
2 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/ClustersBase.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/ClustersBase.java
index 79107b8..417a68b 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/ClustersBase.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/ClustersBase.java
@@ -631,19 +631,9 @@ public class ClustersBase extends AdminResource {
validateSuperUserAccess();
validateClusterExists(cluster);
- Set<String> availableBrokers;
final String nsIsolationPoliciesPath = AdminResource.path("clusters", cluster, NAMESPACE_ISOLATION_POLICIES);
Map<String, NamespaceIsolationData> nsPolicies;
try {
- availableBrokers = pulsar().getLoadManager().get().getAvailableBrokers();
- } catch (Exception e) {
- log.error("[{}] Failed to get list of brokers in cluster {}", clientAppId(), cluster, e);
- throw new RestException(e);
- }
- if (availableBrokers == null || !availableBrokers.contains(broker)) {
- throw new RestException(Status.NOT_FOUND, "Broker is not part of active broker list " + broker);
- }
- try {
Optional<NamespaceIsolationPolicies> nsPoliciesResult = namespaceIsolationPoliciesCache()
.get(nsIsolationPoliciesPath);
if (!nsPoliciesResult.isPresent()) {
@@ -659,11 +649,14 @@ public class ClustersBase extends AdminResource {
if (nsPolicies != null) {
nsPolicies.forEach((name, policyData) -> {
NamespaceIsolationPolicyImpl nsPolicyImpl = new NamespaceIsolationPolicyImpl(policyData);
- if (nsPolicyImpl.isPrimaryBroker(broker) || nsPolicyImpl.isSecondaryBroker(broker)) {
+ boolean isPrimary = nsPolicyImpl.isPrimaryBroker(broker);
+ if (isPrimary || nsPolicyImpl.isSecondaryBroker(broker)) {
if (brokerIsolationData.namespaceRegex == null) {
brokerIsolationData.namespaceRegex = Lists.newArrayList();
}
brokerIsolationData.namespaceRegex.addAll(policyData.namespaces);
+ brokerIsolationData.isPrimary = isPrimary;
+ brokerIsolationData.policyName = name;
}
});
}
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/BrokerNamespaceIsolationData.java b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/BrokerNamespaceIsolationData.java
index 53faf0a..8adc23a 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/BrokerNamespaceIsolationData.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/BrokerNamespaceIsolationData.java
@@ -39,6 +39,18 @@ public class BrokerNamespaceIsolationData {
)
public String brokerName;
@ApiModelProperty(
+ name = "policyName",
+ value = "Policy name",
+ example = "my-policy"
+ )
+ public String policyName;
+ @ApiModelProperty(
+ name = "isPrimary",
+ value = "Is Primary broker",
+ example = "true/false"
+ )
+ public boolean isPrimary;
+ @ApiModelProperty(
name = "namespaceRegex",
value = "The namespace-isolation policies attached to this broker"
)