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

sijie 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 5162393  Allow to create partitioned topic with 1 partition (#4764)
5162393 is described below

commit 5162393c7eb48862bc4bdc82ed05a0f20963f274
Author: Jia Zhai <[email protected]>
AuthorDate: Sun Jul 21 14:15:53 2019 +0800

    Allow to create partitioned topic with 1 partition (#4764)
    
    **Motivation**
    when create partitioned topic, there is a check that `numPartitions > 1`, 
if numPartitions==1, it will fail.
    Some user may want to create partitioned topic with only 1 topic at the 
start time, and during using it, could update to more topics later.
    
    **Modification**
    change check of `numPartitions > 1` to `numPartitions > 0`
    
    expect all existing ut passed.
---
 .../apache/pulsar/broker/admin/impl/PersistentTopicsBase.java  |  8 ++++----
 .../org/apache/pulsar/broker/admin/v1/NonPersistentTopics.java |  4 ++--
 .../org/apache/pulsar/broker/admin/v2/NonPersistentTopics.java |  4 ++--
 .../org/apache/pulsar/broker/admin/v2/PersistentTopics.java    |  2 +-
 .../pulsar/client/admin/internal/NonPersistentTopicsImpl.java  |  2 +-
 .../org/apache/pulsar/client/admin/internal/TopicsImpl.java    | 10 +++++-----
 6 files changed, 15 insertions(+), 15 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
index 937e70e..8c51b03 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
@@ -372,8 +372,8 @@ public class PersistentTopicsBase extends AdminResource {
 
     protected void internalCreatePartitionedTopic(int numPartitions) {
         validateAdminAccessForTenant(topicName.getTenant());
-        if (numPartitions <= 1) {
-            throw new RestException(Status.NOT_ACCEPTABLE, "Number of 
partitions should be more than 1");
+        if (numPartitions <= 0) {
+            throw new RestException(Status.NOT_ACCEPTABLE, "Number of 
partitions should be more than 0");
         }
         try {
             String path = ZkAdminPaths.partitionedTopicPath(topicName);
@@ -431,8 +431,8 @@ public class PersistentTopicsBase extends AdminResource {
                     topicName);
             throw new RestException(Status.FORBIDDEN, "Update forbidden on 
global namespace");
         }
-        if (numPartitions <= 1) {
-            throw new RestException(Status.NOT_ACCEPTABLE, "Number of 
partitions should be more than 1");
+        if (numPartitions <= 0) {
+            throw new RestException(Status.NOT_ACCEPTABLE, "Number of 
partitions should be more than 0");
         }
         try {
             updatePartitionedTopic(topicName, numPartitions).get();
diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v1/NonPersistentTopics.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v1/NonPersistentTopics.java
index dd9fc66..ced620a 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v1/NonPersistentTopics.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v1/NonPersistentTopics.java
@@ -120,8 +120,8 @@ public class NonPersistentTopics extends PersistentTopics {
             int numPartitions) {
         validateTopicName(property, cluster, namespace, encodedTopic);
         validateAdminAccessForTenant(topicName.getTenant());
-        if (numPartitions <= 1) {
-            throw new RestException(Status.NOT_ACCEPTABLE, "Number of 
partitions should be more than 1");
+        if (numPartitions <= 0) {
+            throw new RestException(Status.NOT_ACCEPTABLE, "Number of 
partitions should be more than 0");
         }
         try {
             String path = path(PARTITIONED_TOPIC_PATH_ZNODE, 
namespaceName.toString(), domain(),
diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/NonPersistentTopics.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/NonPersistentTopics.java
index 32047b8..9807c9f 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/NonPersistentTopics.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/NonPersistentTopics.java
@@ -164,8 +164,8 @@ public class NonPersistentTopics extends PersistentTopics {
         validateGlobalNamespaceOwnership(tenant,namespace);
         validateTopicName(tenant, namespace, encodedTopic);
         validateAdminAccessForTenant(topicName.getTenant());
-        if (numPartitions <= 1) {
-            throw new RestException(Status.NOT_ACCEPTABLE, "Number of 
partitions should be more than 1");
+        if (numPartitions <= 0) {
+            throw new RestException(Status.NOT_ACCEPTABLE, "Number of 
partitions should be more than 0");
         }
         try {
             String path = path(PARTITIONED_TOPIC_PATH_ZNODE, 
namespaceName.toString(), domain(),
diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/PersistentTopics.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/PersistentTopics.java
index fa2bc25..04aa79f 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/PersistentTopics.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/PersistentTopics.java
@@ -248,7 +248,7 @@ public class PersistentTopics extends PersistentTopicsBase {
             @ApiResponse(code = 401, message = "Don't have permission to 
adminisActions to be grantedtrate resources on this tenant"),
             @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant does not exist"),
-            @ApiResponse(code = 406, message = "The number of partitions 
should be more than 1"),
+            @ApiResponse(code = 406, message = "The number of partitions 
should be more than 0"),
             @ApiResponse(code = 409, message = "Partitioned topic does not 
exist"),
             @ApiResponse(code = 412, message = "Partitioned topic name is 
invalid"),
             @ApiResponse(code = 500, message = "Internal server error")
diff --git 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/NonPersistentTopicsImpl.java
 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/NonPersistentTopicsImpl.java
index d9b23c8..c8b563c 100644
--- 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/NonPersistentTopicsImpl.java
+++ 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/NonPersistentTopicsImpl.java
@@ -67,7 +67,7 @@ public class NonPersistentTopicsImpl extends BaseResource 
implements NonPersiste
 
     @Override
     public CompletableFuture<Void> createPartitionedTopicAsync(String topic, 
int numPartitions) {
-        checkArgument(numPartitions > 1, "Number of partitions should be more 
than 1");
+        checkArgument(numPartitions > 0, "Number of partitions should be more 
than 0");
         TopicName topicName = validateTopic(topic);
         WebTarget path = topicPath(topicName, "partitions");
         return asyncPutRequest(path, Entity.entity(numPartitions, 
MediaType.APPLICATION_JSON));
diff --git 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java
 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java
index 79b9212..fb5dd1c 100644
--- 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java
+++ 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java
@@ -223,17 +223,17 @@ public class TopicsImpl extends BaseResource implements 
Topics {
             throw new PulsarAdminException.TimeoutException(e);
         }
     }
-    
+
     @Override
     public CompletableFuture<Void> createNonPartitionedTopicAsync(String 
topic){
        TopicName tn = validateTopic(topic);
        WebTarget path = topicPath(tn);
        return asyncPutRequest(path, Entity.entity("", 
MediaType.APPLICATION_JSON));
     }
-    
+
     @Override
     public CompletableFuture<Void> createPartitionedTopicAsync(String topic, 
int numPartitions) {
-        checkArgument(numPartitions > 1, "Number of partitions should be more 
than 1");
+        checkArgument(numPartitions > 0, "Number of partitions should be more 
than 0");
         TopicName tn = validateTopic(topic);
         WebTarget path = topicPath(tn, "partitions");
         return asyncPutRequest(path, Entity.entity(numPartitions, 
MediaType.APPLICATION_JSON));
@@ -255,7 +255,7 @@ public class TopicsImpl extends BaseResource implements 
Topics {
 
     @Override
     public CompletableFuture<Void> updatePartitionedTopicAsync(String topic, 
int numPartitions) {
-        checkArgument(numPartitions > 1, "Number of partitions must be more 
than 1");
+        checkArgument(numPartitions > 0, "Number of partitions must be more 
than 0");
         TopicName tn = validateTopic(topic);
         WebTarget path = topicPath(tn, "partitions");
         return asyncPostRequest(path, Entity.entity(numPartitions, 
MediaType.APPLICATION_JSON));
@@ -587,7 +587,7 @@ public class TopicsImpl extends BaseResource implements 
Topics {
                 });
         return future;
     }
-    
+
     @Override
     public void deleteSubscription(String topic, String subName) throws 
PulsarAdminException {
         try {

Reply via email to