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 <[email protected]>
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"
)