Skip to content

Commit

Permalink
KAFKA-13129: replace describe topic via zk with describe users (apach…
Browse files Browse the repository at this point in the history
…e#11115)

Replace the unsupported describe topic via zk with describe users to fix the system tests.
For the upgrade_test case where TLS support is not required, use list_acls instead.

Reviewers: Ismael Juma <[email protected]>
  • Loading branch information
showuon authored Jul 23, 2021
1 parent c38adaf commit f959e6c
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 9 deletions.
9 changes: 4 additions & 5 deletions tests/kafkatest/services/zookeeper.py
Original file line number Diff line number Diff line change
Expand Up @@ -220,16 +220,15 @@ def create(self, path, chroot=None, value=""):
output = self.nodes[0].account.ssh_output(cmd)
self.logger.debug(output)

def describe(self, topic):
def describeUsers(self):
"""
Describe the given topic using the ConfigCommand CLI
Describe the default user using the ConfigCommand CLI
"""

kafka_run_class = self.path.script("kafka-run-class.sh", DEV_BRANCH)
cmd = "%s kafka.admin.ConfigCommand --zookeeper %s %s --describe --topic %s" % \
cmd = "%s kafka.admin.ConfigCommand --zookeeper %s %s --describe --entity-type users --entity-default" % \
(kafka_run_class, self.connect_setting(force_tls=self.zk_client_secure_port),
self.zkTlsConfigFileOption(),
topic)
self.zkTlsConfigFileOption())
self.logger.debug(cmd)
output = self.nodes[0].account.ssh_output(cmd)
self.logger.debug(output)
Expand Down
4 changes: 2 additions & 2 deletions tests/kafkatest/tests/core/upgrade_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,10 @@ def perform_upgrade(self, from_kafka_version, to_message_format_version=None):
self.logger.info("Upgrade ZooKeeper from %s to %s" % (str(self.zk.nodes[0].version), str(DEV_BRANCH)))
self.zk.set_version(DEV_BRANCH)
self.zk.restart_cluster()
# Confirm we have a successful ZooKeeper upgrade by describing the topic.
# Confirm we have a successful ZooKeeper upgrade by List ACLs for the topic.
# Not trying to detect a problem here leads to failure in the ensuing Kafka roll, which would be a less
# intuitive failure than seeing a problem here, so detect ZooKeeper upgrade problems before involving Kafka.
self.zk.describe(self.topic)
self.zk.list_acls(self.topic)
# Do some stuff that exercises the use of ZooKeeper before we upgrade to the latest ZooKeeper client version
self.logger.info("First pass bounce - rolling Kafka with old ZooKeeper client")
for node in self.kafka.nodes:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def test_zk_tls_encrypt_only(self):

# Make sure the ConfigCommand CLI is able to talk to a TLS-enabled, encrypt-only ZooKeeper quorum
# This is necessary for the bootstrap use case despite direct ZooKeeper connectivity being deprecated
self.zk.describe(self.topic)
self.zk.describeUsers()

# Make sure the AclCommand CLI is able to talk to a TLS-enabled, encrypt-only ZooKeeper quorum
# This is necessary for the bootstrap use case despite direct ZooKeeper connectivity being deprecated
Expand Down
2 changes: 1 addition & 1 deletion tests/kafkatest/tests/core/zookeeper_tls_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def test_zk_tls(self):

# Make sure the ConfigCommand CLI is able to talk to a TLS-enabled ZooKeeper quorum
# This is necessary for the bootstrap use case despite direct ZooKeeper connectivity being deprecated
self.zk.describe(self.topic)
self.zk.describeUsers()

# Make sure the AclCommand CLI is able to talk to a TLS-enabled ZooKeeper quorum
# This is necessary for the bootstrap use case despite direct ZooKeeper connectivity being deprecated
Expand Down

0 comments on commit f959e6c

Please sign in to comment.