You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by zh...@apache.org on 2020/05/12 13:45:06 UTC

[pulsar] 15/17: [Issue 6887][pulsar-broker] ttlDurationDefaultInSeconds not applying (#6920)

This is an automated email from the ASF dual-hosted git repository.

zhaijia pushed a commit to branch branch-2.5
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit f428d84b2448ac83607124a7794ba2bdc25028fb
Author: Jiechuan Chen <65...@qq.com>
AuthorDate: Tue May 12 18:53:06 2020 +0800

    [Issue 6887][pulsar-broker] ttlDurationDefaultInSeconds not applying (#6920)
    
    Fixes #6887
    
    ### Motivation
    The ttl for namespaces should be retrieved from broker's configuration if it is not configured at namespace policies. However, the current code only returns the value stored in namespace policies directly without judging if it is configured or not.
    
    ### Modifications
    
    Added a condition to test if ttl is configured at namespace policies. If not, retrieve value stored in broker's configuration and return it as output.
    
    * fixes "ttlDurationDefaultInSeconds is not applied"
    
    * testcase added for getTtlDurationDefaultInSeconds
    (cherry picked from commit a24203cc140a97940bca99ca7a761c7e5e78c49c)
---
 .../main/java/org/apache/pulsar/broker/admin/AdminResource.java    | 4 ++++
 .../src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java | 7 +++++++
 2 files changed, 11 insertions(+)

diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java
index c49acbe..f18d964 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java
@@ -478,6 +478,10 @@ public abstract class AdminResource extends PulsarWebResource {
         if (policies.clusterSubscribeRate.isEmpty()) {
             policies.clusterSubscribeRate.put(cluster, subscribeRate());
         }
+
+        if (policies.message_ttl_in_seconds <= 0) {
+            policies.message_ttl_in_seconds = config.getTtlDurationDefaultInSeconds();
+        }
     }
 
     protected BacklogQuota namespaceBacklogQuota(String namespace, String namespacePath) {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
index 0ab6311..82808b1 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
@@ -2295,4 +2295,11 @@ public class AdminApiTest extends MockedPulsarServiceBaseTest {
         TopicStats topicStats = admin.topics().getStats(topic);
         assertEquals(topicStats.backlogSize, 0);
     }
+
+    @Test
+    public void testGetTtlDurationDefaultInSeconds() throws Exception {
+        conf.setTtlDurationDefaultInSeconds(3600);
+        int seconds = admin.namespaces().getPolicies("prop-xyz/ns1").message_ttl_in_seconds;
+        assertEquals(seconds, 3600);
+    }
 }