Skip to content

Commit 8be2f24

Browse files
jeffwidmandpkp
authored andcommitted
KIP-88 / KAFKA-3853: OffsetFetch v2 structs (#971)
1 parent f93e6de commit 8be2f24

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

kafka/protocol/commit.py

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,22 @@ class OffsetFetchResponse_v1(Struct):
107107
SCHEMA = OffsetFetchResponse_v0.SCHEMA
108108

109109

110+
class OffsetFetchResponse_v2(Struct):
111+
# Added in KIP-88
112+
API_KEY = 9
113+
API_VERSION = 2
114+
SCHEMA = Schema(
115+
('topics', Array(
116+
('topic', String('utf-8')),
117+
('partitions', Array(
118+
('partition', Int32),
119+
('offset', Int64),
120+
('metadata', String('utf-8')),
121+
('error_code', Int16))))),
122+
('error_code', Int16)
123+
)
124+
125+
110126
class OffsetFetchRequest_v0(Struct):
111127
API_KEY = 9
112128
API_VERSION = 0 # zookeeper-backed storage
@@ -126,8 +142,20 @@ class OffsetFetchRequest_v1(Struct):
126142
SCHEMA = OffsetFetchRequest_v0.SCHEMA
127143

128144

129-
OffsetFetchRequest = [OffsetFetchRequest_v0, OffsetFetchRequest_v1]
130-
OffsetFetchResponse = [OffsetFetchResponse_v0, OffsetFetchResponse_v1]
145+
class OffsetFetchRequest_v2(Struct):
146+
# KIP-88: Allows passing null topics to return offsets for all partitions
147+
# that the consumer group has a stored offset for, even if no consumer in
148+
# the group is currently consuming that partition.
149+
API_KEY = 9
150+
API_VERSION = 2
151+
RESPONSE_TYPE = OffsetFetchResponse_v2
152+
SCHEMA = OffsetFetchRequest_v1.SCHEMA
153+
154+
155+
OffsetFetchRequest = [OffsetFetchRequest_v0, OffsetFetchRequest_v1,
156+
OffsetFetchRequest_v2]
157+
OffsetFetchResponse = [OffsetFetchResponse_v0, OffsetFetchResponse_v1,
158+
OffsetFetchResponse_v2]
131159

132160

133161
class GroupCoordinatorResponse_v0(Struct):

0 commit comments

Comments
 (0)