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/05/19 00:49:20 UTC

[pulsar] 05/26: [Issue 3987][pulsar-broker]Handle config is null when create tenant (#4019)

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

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

commit d22c993f301a50036f8a2f1b51d8d3ef43edf8e0
Author: tuteng <eg...@gmail.com>
AuthorDate: Thu Apr 11 14:08:23 2019 +0800

    [Issue 3987][pulsar-broker]Handle config is null when create tenant (#4019)
    
    Fixes #3987
    
    ### Motivation
    
    Config will not appear null when create tenant use pulsar-admin create foo3, but use the following command, config is null.
    ```
    curl -X PUT http://localhost:8080/admin/v2/tenants/foo3
    ```
    
    ### Modifications
    
    Handle config is null when create tenant use curl.
    
    ### Verifying this change
    Test pass
    ```
    curl -X PUT http://localhost:8080/admin/v2/tenants/foo3
    curl -X GET http://localhost:8080/admin/v2/tenants/foo3
    {"adminRoles":[],"allowedClusters":[]}
    ```
---
 .../main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java | 3 +++
 .../src/test/java/org/apache/pulsar/broker/admin/AdminTest.java    | 7 +++++++
 2 files changed, 10 insertions(+)

diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java
index cb3cd53..ee137f6 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java
@@ -91,6 +91,9 @@ public class TenantsBase extends AdminResource {
 
         try {
             NamedEntity.checkName(tenant);
+            if (config == null) {
+                config = new TenantInfo();
+            }
             zkCreate(path(POLICIES, tenant), jsonMapper().writeValueAsBytes(config));
             log.info("[{}] Created tenant {}", clientAppId(), tenant);
         } catch (KeeperException.NodeExistsException e) {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminTest.java
index b4f46aa..1cdd954 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminTest.java
@@ -499,8 +499,15 @@ public class AdminTest extends MockedPulsarServiceBaseTest {
             assertEquals(e.getResponse().getStatus(), Status.PRECONDITION_FAILED.getStatusCode());
         }
 
+        // Check tenantInfo is null
+        TenantInfo nullTenantInfo = new TenantInfo();
+        properties.createTenant("tenant-config-is-null", null);
+        assertEquals(properties.getTenantAdmin("tenant-config-is-null"), nullTenantInfo);
+
+
         namespaces.deleteNamespace("my-tenant", "use", "my-namespace", false);
         properties.deleteTenant("my-tenant");
+        properties.deleteTenant("tenant-config-is-null");
     }
 
     @Test