Skip to content

Commit 440e0b8

Browse files
KAFKA-17923 Remove old kafka version from e2e (#17673)
Reviewers: Chia-Ping Tsai <[email protected]>
1 parent 9c0fe85 commit 440e0b8

25 files changed

+60
-353
lines changed

tests/docker/Dockerfile

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,6 @@ RUN echo 'PermitUserEnvironment yes' >> /etc/ssh/sshd_config
7777
# Install binary test dependencies.
7878
# we use the same versions as in vagrant/base.sh
7979
ARG KAFKA_MIRROR="https://s3-us-west-2.amazonaws.com/kafka-packages"
80-
RUN mkdir -p "/opt/kafka-0.8.2.2" && chmod a+rw /opt/kafka-0.8.2.2 && curl -s "$KAFKA_MIRROR/kafka_2.11-0.8.2.2.tgz" | tar xz --strip-components=1 -C "/opt/kafka-0.8.2.2"
81-
RUN mkdir -p "/opt/kafka-0.9.0.1" && chmod a+rw /opt/kafka-0.9.0.1 && curl -s "$KAFKA_MIRROR/kafka_2.11-0.9.0.1.tgz" | tar xz --strip-components=1 -C "/opt/kafka-0.9.0.1"
82-
RUN mkdir -p "/opt/kafka-0.10.0.1" && chmod a+rw /opt/kafka-0.10.0.1 && curl -s "$KAFKA_MIRROR/kafka_2.11-0.10.0.1.tgz" | tar xz --strip-components=1 -C "/opt/kafka-0.10.0.1"
83-
RUN mkdir -p "/opt/kafka-0.10.1.1" && chmod a+rw /opt/kafka-0.10.1.1 && curl -s "$KAFKA_MIRROR/kafka_2.11-0.10.1.1.tgz" | tar xz --strip-components=1 -C "/opt/kafka-0.10.1.1"
84-
RUN mkdir -p "/opt/kafka-0.10.2.2" && chmod a+rw /opt/kafka-0.10.2.2 && curl -s "$KAFKA_MIRROR/kafka_2.11-0.10.2.2.tgz" | tar xz --strip-components=1 -C "/opt/kafka-0.10.2.2"
85-
RUN mkdir -p "/opt/kafka-0.11.0.3" && chmod a+rw /opt/kafka-0.11.0.3 && curl -s "$KAFKA_MIRROR/kafka_2.11-0.11.0.3.tgz" | tar xz --strip-components=1 -C "/opt/kafka-0.11.0.3"
86-
RUN mkdir -p "/opt/kafka-1.0.2" && chmod a+rw /opt/kafka-1.0.2 && curl -s "$KAFKA_MIRROR/kafka_2.11-1.0.2.tgz" | tar xz --strip-components=1 -C "/opt/kafka-1.0.2"
87-
RUN mkdir -p "/opt/kafka-1.1.1" && chmod a+rw /opt/kafka-1.1.1 && curl -s "$KAFKA_MIRROR/kafka_2.11-1.1.1.tgz" | tar xz --strip-components=1 -C "/opt/kafka-1.1.1"
88-
RUN mkdir -p "/opt/kafka-2.0.1" && chmod a+rw /opt/kafka-2.0.1 && curl -s "$KAFKA_MIRROR/kafka_2.12-2.0.1.tgz" | tar xz --strip-components=1 -C "/opt/kafka-2.0.1"
8980
RUN mkdir -p "/opt/kafka-2.1.1" && chmod a+rw /opt/kafka-2.1.1 && curl -s "$KAFKA_MIRROR/kafka_2.12-2.1.1.tgz" | tar xz --strip-components=1 -C "/opt/kafka-2.1.1"
9081
RUN mkdir -p "/opt/kafka-2.2.2" && chmod a+rw /opt/kafka-2.2.2 && curl -s "$KAFKA_MIRROR/kafka_2.12-2.2.2.tgz" | tar xz --strip-components=1 -C "/opt/kafka-2.2.2"
9182
RUN mkdir -p "/opt/kafka-2.3.1" && chmod a+rw /opt/kafka-2.3.1 && curl -s "$KAFKA_MIRROR/kafka_2.12-2.3.1.tgz" | tar xz --strip-components=1 -C "/opt/kafka-2.3.1"
@@ -106,13 +97,6 @@ RUN mkdir -p "/opt/kafka-3.8.1" && chmod a+rw /opt/kafka-3.8.1 && curl -s "$KAFK
10697

10798

10899
# Streams test dependencies
109-
RUN curl -s "$KAFKA_MIRROR/kafka-streams-0.10.0.1-test.jar" -o /opt/kafka-0.10.0.1/libs/kafka-streams-0.10.0.1-test.jar
110-
RUN curl -s "$KAFKA_MIRROR/kafka-streams-0.10.1.1-test.jar" -o /opt/kafka-0.10.1.1/libs/kafka-streams-0.10.1.1-test.jar
111-
RUN curl -s "$KAFKA_MIRROR/kafka-streams-0.10.2.2-test.jar" -o /opt/kafka-0.10.2.2/libs/kafka-streams-0.10.2.2-test.jar
112-
RUN curl -s "$KAFKA_MIRROR/kafka-streams-0.11.0.3-test.jar" -o /opt/kafka-0.11.0.3/libs/kafka-streams-0.11.0.3-test.jar
113-
RUN curl -s "$KAFKA_MIRROR/kafka-streams-1.0.2-test.jar" -o /opt/kafka-1.0.2/libs/kafka-streams-1.0.2-test.jar
114-
RUN curl -s "$KAFKA_MIRROR/kafka-streams-1.1.1-test.jar" -o /opt/kafka-1.1.1/libs/kafka-streams-1.1.1-test.jar
115-
RUN curl -s "$KAFKA_MIRROR/kafka-streams-2.0.1-test.jar" -o /opt/kafka-2.0.1/libs/kafka-streams-2.0.1-test.jar
116100
RUN curl -s "$KAFKA_MIRROR/kafka-streams-2.1.1-test.jar" -o /opt/kafka-2.1.1/libs/kafka-streams-2.1.1-test.jar
117101
RUN curl -s "$KAFKA_MIRROR/kafka-streams-2.2.2-test.jar" -o /opt/kafka-2.2.2/libs/kafka-streams-2.2.2-test.jar
118102
RUN curl -s "$KAFKA_MIRROR/kafka-streams-2.3.1-test.jar" -o /opt/kafka-2.3.1/libs/kafka-streams-2.3.1-test.jar

tests/kafkatest/directory_layout/kafka_path.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import importlib
1717
import os
1818

19-
from kafkatest.version import get_version, KafkaVersion, DEV_BRANCH, LATEST_0_9, LATEST_3_5
19+
from kafkatest.version import get_version, KafkaVersion, DEV_BRANCH, LATEST_3_5
2020

2121

2222
"""This module serves a few purposes:
@@ -55,11 +55,6 @@
5555
# This version of the file connectors does not contain ServiceLoader manifests
5656
LATEST_3_5.__str__(): {
5757
CONNECT_FILE_JAR: "libs/connect-file*.jar"
58-
},
59-
# TODO: This is only used in 0.8.2.x system tests, remove with KAFKA-14762
60-
LATEST_0_9.__str__(): {
61-
TOOLS_JAR_NAME: "libs/kafka-tools*.jar",
62-
TOOLS_DEPENDANT_TEST_LIBS_JAR_NAME: "libs/{argparse4j,jackson}*.jar"
6358
}
6459
}
6560

tests/kafkatest/sanity_checks/test_console_consumer.py

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@
2222

2323
from kafkatest.services.console_consumer import ConsoleConsumer
2424
from kafkatest.services.kafka import KafkaService, quorum
25-
from kafkatest.services.verifiable_producer import VerifiableProducer
2625
from kafkatest.services.zookeeper import ZookeeperService
2726
from kafkatest.utils.remote_account import line_count, file_exists
28-
from kafkatest.version import LATEST_0_8_2
2927

3028

3129
class ConsoleConsumerTest(Test):
@@ -77,24 +75,3 @@ def test_lifecycle(self, security_protocol, sasl_mechanism='GSSAPI', metadata_qu
7775
assert line_count(node, ConsoleConsumer.STDOUT_CAPTURE) == 0
7876

7977
self.consumer.stop_node(node)
80-
81-
@cluster(num_nodes=4)
82-
def test_version(self):
83-
"""Check that console consumer v0.8.2.X successfully starts and consumes messages."""
84-
self.kafka.start()
85-
86-
num_messages = 1000
87-
self.producer = VerifiableProducer(self.test_context, num_nodes=1, kafka=self.kafka, topic=self.topic,
88-
max_messages=num_messages, throughput=1000)
89-
self.producer.start()
90-
self.producer.wait()
91-
92-
self.consumer.nodes[0].version = LATEST_0_8_2
93-
self.consumer.new_consumer = False
94-
self.consumer.consumer_timeout_ms = 1000
95-
self.consumer.start()
96-
self.consumer.wait()
97-
98-
num_consumed = len(self.consumer.messages_consumed[1])
99-
num_produced = self.producer.num_acked
100-
assert num_produced == num_consumed, "num_produced: %d, num_consumed: %d" % (num_produced, num_consumed)

tests/kafkatest/sanity_checks/test_performance_services.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from kafkatest.services.performance import ProducerPerformanceService, ConsumerPerformanceService, EndToEndLatencyService
2222
from kafkatest.services.performance import latency, compute_aggregate_throughput
2323
from kafkatest.services.zookeeper import ZookeeperService
24-
from kafkatest.version import DEV_BRANCH, LATEST_0_8_2, LATEST_0_9, LATEST_1_1, KafkaVersion
24+
from kafkatest.version import DEV_BRANCH, LATEST_2_1, KafkaVersion
2525

2626

2727
class PerformanceServiceTest(Test):
@@ -38,15 +38,8 @@ def setUp(self):
3838
self.zk.start()
3939

4040
@cluster(num_nodes=5)
41-
# We are keeping 0.8.2 here so that we don't inadvertently break support for it. Since this is just a sanity check,
42-
# the overhead should be manageable.
43-
@parametrize(version=str(LATEST_0_8_2), new_consumer=False)
44-
@parametrize(version=str(LATEST_0_9), new_consumer=False)
45-
@parametrize(version=str(LATEST_0_9))
46-
@parametrize(version=str(LATEST_1_1), new_consumer=False)
47-
@cluster(num_nodes=5)
48-
@matrix(version=[str(DEV_BRANCH)], metadata_quorum=quorum.all)
49-
def test_version(self, version=str(LATEST_0_9), new_consumer=True, metadata_quorum=quorum.zk):
41+
@matrix(version=[str(LATEST_2_1), str(DEV_BRANCH)], metadata_quorum=quorum.all)
42+
def test_version(self, version=str(LATEST_2_1), metadata_quorum=quorum.zk):
5043
"""
5144
Sanity check out producer performance service - verify that we can run the service with a small
5245
number of messages. The actual stats here are pretty meaningless since the number of messages is quite small.
@@ -80,7 +73,7 @@ def test_version(self, version=str(LATEST_0_9), new_consumer=True, metadata_quor
8073

8174
# check basic run of consumer performance service
8275
self.consumer_perf = ConsumerPerformanceService(
83-
self.test_context, 1, self.kafka, new_consumer=new_consumer,
76+
self.test_context, 1, self.kafka,
8477
topic=self.topic, version=version, messages=self.num_records)
8578
self.consumer_perf.group = "test-consumer-group"
8679
self.consumer_perf.run()

tests/kafkatest/sanity_checks/test_verifiable_producer.py

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from kafkatest.services.verifiable_producer import VerifiableProducer
2424
from kafkatest.services.zookeeper import ZookeeperService
2525
from kafkatest.utils import is_version
26-
from kafkatest.version import LATEST_0_8_2, LATEST_0_9, LATEST_0_10_0, LATEST_0_10_1, DEV_BRANCH, KafkaVersion
26+
from kafkatest.version import DEV_BRANCH, KafkaVersion
2727

2828

2929
class TestVerifiableProducer(Test):
@@ -45,10 +45,6 @@ def setUp(self):
4545
self.zk.start()
4646

4747
@cluster(num_nodes=3)
48-
@parametrize(producer_version=str(LATEST_0_8_2))
49-
@parametrize(producer_version=str(LATEST_0_9))
50-
@parametrize(producer_version=str(LATEST_0_10_0))
51-
@parametrize(producer_version=str(LATEST_0_10_1))
5248
@matrix(producer_version=[str(DEV_BRANCH)], acks=["0", "1", "-1"], enable_idempotence=[False])
5349
@matrix(producer_version=[str(DEV_BRANCH)], acks=["-1"], enable_idempotence=[True])
5450
@matrix(producer_version=[str(DEV_BRANCH)], security_protocol=['PLAINTEXT', 'SSL'], metadata_quorum=quorum.all)
@@ -81,20 +77,7 @@ def test_simple_run(self, producer_version, acks=None, enable_idempotence=False,
8177
wait_until(lambda: self.producer.num_acked > 5, timeout_sec=15,
8278
err_msg="Producer failed to start in a reasonable amount of time.")
8379

84-
# using version.vstring (distutils.version.LooseVersion) is a tricky way of ensuring
85-
# that this check works with DEV_BRANCH
86-
# When running VerifiableProducer 0.8.X, both the current branch version and 0.8.X should show up because of the
87-
# way verifiable producer pulls in some development directories into its classpath
88-
#
89-
# If the test fails here because 'ps .. | grep' couldn't find the process it means
90-
# the login and grep that is_version() performs is slower than
91-
# the time it takes the producer to produce its messages.
92-
# Easy fix is to decrease throughput= above, the good fix is to make the producer
93-
# not terminate until explicitly killed in this case.
94-
if node.version <= LATEST_0_8_2:
95-
assert is_version(node, [node.version.vstring, LATEST_0_9.vstring], logger=self.logger)
96-
else:
97-
assert is_version(node, [node.version.vstring], logger=self.logger)
80+
assert is_version(node, [node.version.vstring], logger=self.logger)
9881

9982
self.producer.wait()
10083
num_produced = self.producer.num_acked

tests/kafkatest/services/console_consumer.py

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
from kafkatest.directory_layout.kafka_path import KafkaPathResolverMixin
2323
from kafkatest.services.monitor.jmx import JmxMixin, JmxTool
24-
from kafkatest.version import DEV_BRANCH, LATEST_0_8_2, LATEST_0_9, LATEST_0_10_0, V_0_10_0_0, V_0_11_0_0, V_2_0_0, LATEST_3_7
24+
from kafkatest.version import DEV_BRANCH, LATEST_3_7
2525
from kafkatest.services.kafka.util import fix_opts_for_new_jvm
2626

2727
"""
@@ -118,9 +118,6 @@ def __init__(self, context, num_nodes, kafka, topic, group_id="test-consumer-gro
118118

119119
self.isolation_level = isolation_level
120120
self.enable_systest_events = enable_systest_events
121-
if self.enable_systest_events:
122-
# Only available in 0.10.0 and up
123-
assert version >= V_0_10_0_0
124121

125122
self.print_timestamp = print_timestamp
126123
self.jaas_override_variables = jaas_override_variables or {}
@@ -134,10 +131,6 @@ def prop_file(self, node):
134131
"""Return a string which can be used to create a configuration file appropriate for the given node."""
135132
# Process client configuration
136133
prop_file = self.render('console_consumer.properties')
137-
if hasattr(node, "version") and node.version <= LATEST_0_8_2:
138-
# in 0.8.2.X and earlier, console consumer does not have --timeout-ms option
139-
# instead, we have to pass it through the config file
140-
prop_file += "\nconsumer.timeout.ms=%s\n" % str(self.consumer_timeout_ms)
141134

142135
# Add security properties to the config. If security protocol is not specified,
143136
# use the default in the template properties.
@@ -176,28 +169,16 @@ def start_cmd(self, node):
176169
"%(console_consumer)s " \
177170
"--topic %(topic)s " \
178171
"--consumer.config %(config_file)s " % args
179-
180-
if self.new_consumer:
181-
assert node.version.consumer_supports_bootstrap_server(), \
182-
"new_consumer is only supported if version >= 0.9.0.0, version %s" % str(node.version)
183-
if node.version <= LATEST_0_10_0:
184-
cmd += " --new-consumer"
185-
cmd += " --bootstrap-server %(broker_list)s" % args
186-
if node.version >= V_0_11_0_0:
187-
cmd += " --isolation-level %s" % self.isolation_level
188-
else:
189-
assert node.version < V_2_0_0, \
190-
"new_consumer==false is only supported if version < 2.0.0, version %s" % str(node.version)
191-
cmd += " --zookeeper %(zk_connect)s" % args
172+
cmd += " --bootstrap-server %(broker_list)s" % args
173+
cmd += " --isolation-level %s" % self.isolation_level
192174

193175
if self.from_beginning:
194176
cmd += " --from-beginning"
195177

196178
if self.consumer_timeout_ms is not None:
197179
# version 0.8.X and below do not support --timeout-ms option
198180
# This will be added in the properties file instead
199-
if node.version > LATEST_0_8_2:
200-
cmd += " --timeout-ms %s" % self.consumer_timeout_ms
181+
cmd += " --timeout-ms %s" % self.consumer_timeout_ms
201182

202183
if self.print_timestamp:
203184
cmd += " --property print.timestamp=true"
@@ -209,16 +190,12 @@ def start_cmd(self, node):
209190
cmd += " --property print.partition=true"
210191

211192
# LoggingMessageFormatter was introduced after 0.9
212-
if node.version > LATEST_0_9:
213-
if node.version > LATEST_3_7:
214-
cmd += " --formatter org.apache.kafka.tools.consumer.LoggingMessageFormatter"
215-
else:
216-
cmd += " --formatter kafka.tools.LoggingMessageFormatter"
193+
if node.version > LATEST_3_7:
194+
cmd += " --formatter org.apache.kafka.tools.consumer.LoggingMessageFormatter"
195+
else:
196+
cmd += " --formatter kafka.tools.LoggingMessageFormatter"
217197

218198
if self.enable_systest_events:
219-
# enable systest events is only available in 0.10.0 and later
220-
# check the assertion here as well, in case node.version has been modified
221-
assert node.version >= V_0_10_0_0
222199
cmd += " --enable-systest-events"
223200

224201
if self.consumer_properties is not None:

tests/kafkatest/services/kafka/templates/kafka.properties

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,7 @@ listener.security.protocol.map={{ listener_security_protocol_map }}
4141
{% if quorum_info.using_zk or quorum_info.has_brokers %}
4242
advertised.host.name={{ node.account.hostname }}
4343
advertised.listeners={{ advertised_listeners }}
44-
45-
{% if node.version.supports_named_listeners() %}
4644
inter.broker.listener.name={{ interbroker_listener.name }}
47-
{% else %}
48-
security.inter.broker.protocol={{ interbroker_listener.security_protocol }}
49-
{% endif %}
5045
{% endif %}
5146

5247
{% for k, v in listener_security_config.client_listener_overrides.items() %}

tests/kafkatest/services/kafka/util.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,9 @@
1616
from collections import namedtuple
1717

1818
from kafkatest.utils.remote_account import java_version
19-
from kafkatest.version import LATEST_0_8_2, LATEST_0_9, LATEST_0_10_0, LATEST_0_10_1, LATEST_0_10_2, LATEST_0_11_0, LATEST_1_0
2019

2120
TopicPartition = namedtuple('TopicPartition', ['topic', 'partition'])
2221

23-
new_jdk_not_supported = frozenset([str(LATEST_0_8_2), str(LATEST_0_9), str(LATEST_0_10_0), str(LATEST_0_10_1), str(LATEST_0_10_2), str(LATEST_0_11_0), str(LATEST_1_0)])
24-
2522
def fix_opts_for_new_jvm(node):
2623
# Startup scripts for early versions of Kafka contains options
2724
# that not supported on latest versions of JVM like -XX:+PrintGCDateStamps or -XX:UseParNewGC.
@@ -31,12 +28,6 @@ def fix_opts_for_new_jvm(node):
3128
if java_ver <= 9:
3229
return ""
3330

34-
cmd = ""
35-
# check kafka version for kafka node types
36-
if hasattr(node, 'version'):
37-
if node.version == LATEST_0_8_2 or node.version == LATEST_0_9 or node.version == LATEST_0_10_0 or node.version == LATEST_0_10_1 or node.version == LATEST_0_10_2 or node.version == LATEST_0_11_0 or node.version == LATEST_1_0:
38-
cmd += "export KAFKA_GC_LOG_OPTS=\"-Xlog:gc*:file=kafka-gc.log:time,tags:filecount=10,filesize=102400\"; "
39-
cmd += "export KAFKA_JVM_PERFORMANCE_OPTS=\"-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:MaxInlineLevel=15 -Djava.awt.headless=true\"; "
40-
return cmd
31+
return ""
4132

4233

tests/kafkatest/services/monitor/jmx.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from ducktape.utils.util import wait_until
2020

2121
from kafkatest.directory_layout.kafka_path import KafkaPathResolverMixin
22-
from kafkatest.version import get_version, V_0_11_0_0, V_3_4_0, DEV_BRANCH
22+
from kafkatest.version import get_version, V_3_4_0, DEV_BRANCH
2323

2424
class JmxMixin(object):
2525
"""This mixin helps existing service subclasses start JmxTool on their worker nodes and collect jmx stats.
@@ -139,10 +139,7 @@ def jmxtool_version(self, node):
139139
# To correctly wait for requested JMX metrics to be added we need the --wait option for JmxTool. This option was
140140
# not added until 0.11.0.1, so any earlier versions need to use JmxTool from a newer version.
141141
version = get_version(node)
142-
if version <= V_0_11_0_0:
143-
return DEV_BRANCH
144-
else:
145-
return version
142+
return version
146143

147144
def jmx_class_name(self, version):
148145
if version <= V_3_4_0:

0 commit comments

Comments
 (0)