From ba1dee62ed02907cd4ed6c093daeb2397507da41 Mon Sep 17 00:00:00 2001 From: Nikolay Izhikov Date: Tue, 23 Jun 2020 19:38:57 +0300 Subject: [PATCH] KAFKA-10180: Fix security_config caching. --- tests/kafkatest/services/kafka/kafka.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/tests/kafkatest/services/kafka/kafka.py b/tests/kafkatest/services/kafka/kafka.py index 8a32dfb3d80b9..22ba69b922a88 100644 --- a/tests/kafkatest/services/kafka/kafka.py +++ b/tests/kafkatest/services/kafka/kafka.py @@ -181,6 +181,7 @@ def __init__(self, context, num_nodes, zk, security_protocol=SecurityConfig.PLAI self.interbroker_listener = None self.setup_interbroker_listener(interbroker_security_protocol, self.listener_security_config.use_separate_interbroker_listener) self.interbroker_sasl_mechanism = interbroker_sasl_mechanism + self._security_config = None for node in self.nodes: node.version = version @@ -214,16 +215,17 @@ def setup_interbroker_listener(self, security_protocol, use_separate_listener=Fa @property def security_config(self): - config = SecurityConfig(self.context, self.security_protocol, self.interbroker_listener.security_protocol, - zk_sasl=self.zk.zk_sasl, zk_tls=self.zk_client_secure, - client_sasl_mechanism=self.client_sasl_mechanism, - interbroker_sasl_mechanism=self.interbroker_sasl_mechanism, - listener_security_config=self.listener_security_config, - tls_version=self.tls_version) - for port in self.port_mappings.values(): - if port.open: - config.enable_security_protocol(port.security_protocol) - return config + if not self._security_config: + self._security_config = SecurityConfig(self.context, self.security_protocol, self.interbroker_listener.security_protocol, + zk_sasl=self.zk.zk_sasl, zk_tls=self.zk_client_secure, + client_sasl_mechanism=self.client_sasl_mechanism, + interbroker_sasl_mechanism=self.interbroker_sasl_mechanism, + listener_security_config=self.listener_security_config, + tls_version=self.tls_version) + for port in self.port_mappings.values(): + if port.open: + self._security_config.enable_security_protocol(port.security_protocol) + return self._security_config def open_port(self, listener_name): self.port_mappings[listener_name].open = True