diff options
author | Dana Powers <dana.powers@gmail.com> | 2017-03-03 11:53:31 -0800 |
---|---|---|
committer | Dana Powers <dana.powers@gmail.com> | 2017-03-03 11:53:31 -0800 |
commit | e6752bfbc75b3787bbda16a3bab8d61f73eafdc7 (patch) | |
tree | 7cf5584093c2b3ee0d2b36d73d65270a80e1ce51 | |
parent | 373d22161302a2980f1507ccdf0cf37044866f13 (diff) | |
download | kafka-python-fresh_brokers.tar.gz |
Drop old brokers when rebuilding broker metadatafresh_brokers
-rw-r--r-- | kafka/cluster.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/kafka/cluster.py b/kafka/cluster.py index 4646378..0a5c07f 100644 --- a/kafka/cluster.py +++ b/kafka/cluster.py @@ -199,20 +199,21 @@ class ClusterMetadata(object): if not metadata.brokers: log.warning("No broker metadata found in MetadataResponse") + _new_brokers = {} for broker in metadata.brokers: if metadata.API_VERSION == 0: node_id, host, port = broker rack = None else: node_id, host, port, rack = broker - self._brokers.update({ + _new_brokers.update({ node_id: BrokerMetadata(node_id, host, port, rack) }) if metadata.API_VERSION == 0: - self.controller = None + _new_controller = None else: - self.controller = self._brokers.get(metadata.controller_id) + _new_controller = _new_brokers.get(metadata.controller_id) _new_partitions = {} _new_broker_partitions = collections.defaultdict(set) @@ -253,6 +254,8 @@ class ClusterMetadata(object): topic, error_type) with self._lock: + self._brokers = _new_brokers + self.controller = _new_controller self._partitions = _new_partitions self._broker_partitions = _new_broker_partitions self.unauthorized_topics = _new_unauthorized_topics |