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 {