@@ -473,7 +473,7 @@ def delete_topics(self, topics, timeout_ms=None):
473473 return response
474474
475475
476- def _get_cluster_metadata (self , topics = None , auto_topic_creation = False ):
476+ def _get_cluster_metadata (self , topics = None , auto_topic_creation = False , use_controller = False ):
477477 """
478478 topics == None means "get all topics"
479479 """
@@ -492,10 +492,13 @@ def _get_cluster_metadata(self, topics=None, auto_topic_creation=False):
492492 allow_auto_topic_creation = auto_topic_creation
493493 )
494494
495- future = self ._send_request_to_node (
496- self ._client .least_loaded_node (),
497- request
498- )
495+ if use_controller :
496+ future = self ._send_request_to_controller (request )
497+ else :
498+ future = self ._send_request_to_node (
499+ self ._client .least_loaded_node (),
500+ request
501+ )
499502 self ._wait_for_futures ([future ])
500503 return future .value
501504
@@ -505,7 +508,7 @@ def list_topics(self):
505508 return [t ['topic' ] for t in obj ['topics' ]]
506509
507510 def describe_topics (self , topics = None ):
508- metadata = self ._get_cluster_metadata (topics = topics )
511+ metadata = self ._get_cluster_metadata (topics = topics , use_controller = True )
509512 obj = metadata .to_object ()
510513 return obj ['topics' ]
511514
0 commit comments