You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.3 KiB
34 lines
1.3 KiB
from __future__ import absolute_import
|
|
|
|
from kafka.errors import IllegalArgumentError
|
|
|
|
|
|
class NewTopic(object):
|
|
""" A class for new topic creation
|
|
Arguments:
|
|
name (string): name of the topic
|
|
num_partitions (int): number of partitions
|
|
or -1 if replica_assignment has been specified
|
|
replication_factor (int): replication factor or -1 if
|
|
replica assignment is specified
|
|
replica_assignment (dict of int: [int]): A mapping containing
|
|
partition id and replicas to assign to it.
|
|
topic_configs (dict of str: str): A mapping of config key
|
|
and value for the topic.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
name,
|
|
num_partitions,
|
|
replication_factor,
|
|
replica_assignments=None,
|
|
topic_configs=None,
|
|
):
|
|
if not (num_partitions == -1 or replication_factor == -1) ^ (replica_assignments is None):
|
|
raise IllegalArgumentError('either num_partitions/replication_factor or replica_assignment must be specified')
|
|
self.name = name
|
|
self.num_partitions = num_partitions
|
|
self.replication_factor = replication_factor
|
|
self.replica_assignments = replica_assignments or {}
|
|
self.topic_configs = topic_configs or {}
|