diff options
author | Tincu Gabriel <gabi@aiven.io> | 2020-12-02 15:37:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-02 06:37:38 -0800 |
commit | c48817e0d21d7752077e28f2ea9a657b9001a14b (patch) | |
tree | 7503f558518f8e704f158fd0782eecbfc0592c46 /kafka/admin/client.py | |
parent | 53dc740bce8ef19c32fad2881021d1f6bb055f7a (diff) | |
download | kafka-python-c48817e0d21d7752077e28f2ea9a657b9001a14b.tar.gz |
Support configuration of custom kafka client for Admin/Consumer/Producer (#2144)
Diffstat (limited to 'kafka/admin/client.py')
-rw-r--r-- | kafka/admin/client.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/kafka/admin/client.py b/kafka/admin/client.py index c58da0c..63a0f3b 100644 --- a/kafka/admin/client.py +++ b/kafka/admin/client.py @@ -146,6 +146,7 @@ class KafkaAdminClient(object): sasl mechanism handshake. Default: one of bootstrap servers sasl_oauth_token_provider (AbstractTokenProvider): OAuthBearer token provider instance. (See kafka.oauth.abstract). Default: None + kafka_client (callable): Custom class / callable for creating KafkaClient instances """ DEFAULT_CONFIG = { @@ -186,6 +187,7 @@ class KafkaAdminClient(object): 'metric_reporters': [], 'metrics_num_samples': 2, 'metrics_sample_window_ms': 30000, + 'kafka_client': KafkaClient, } def __init__(self, **configs): @@ -205,9 +207,11 @@ class KafkaAdminClient(object): reporters = [reporter() for reporter in self.config['metric_reporters']] self._metrics = Metrics(metric_config, reporters) - self._client = KafkaClient(metrics=self._metrics, - metric_group_prefix='admin', - **self.config) + self._client = self.config['kafka_client']( + metrics=self._metrics, + metric_group_prefix='admin', + **self.config + ) self._client.check_version(timeout=(self.config['api_version_auto_timeout_ms'] / 1000)) # Get auto-discovered version from client if necessary |