Skip to content

Commit 239d56f

Browse files
dpkp88manpreet
authored andcommitted
Protocol updates for 0.11.0.0 (dpkp#1127)
1 parent 29bc686 commit 239d56f

File tree

7 files changed

+508
-41
lines changed

7 files changed

+508
-41
lines changed

kafka/protocol/admin.py

Lines changed: 118 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,35 @@ class ApiVersionResponse_v0(Response):
1616
)
1717

1818

19+
class ApiVersionResponse_v1(Response):
20+
API_KEY = 18
21+
API_VERSION = 1
22+
SCHEMA = Schema(
23+
('error_code', Int16),
24+
('api_versions', Array(
25+
('api_key', Int16),
26+
('min_version', Int16),
27+
('max_version', Int16))),
28+
('throttle_time_ms', Int32)
29+
)
30+
31+
1932
class ApiVersionRequest_v0(Request):
2033
API_KEY = 18
2134
API_VERSION = 0
2235
RESPONSE_TYPE = ApiVersionResponse_v0
2336
SCHEMA = Schema()
2437

2538

26-
ApiVersionRequest = [ApiVersionRequest_v0]
27-
ApiVersionResponse = [ApiVersionResponse_v0]
39+
class ApiVersionRequest_v1(Request):
40+
API_KEY = 18
41+
API_VERSION = 1
42+
RESPONSE_TYPE = ApiVersionResponse_v1
43+
SCHEMA = ApiVersionRequest_v0.SCHEMA
44+
45+
46+
ApiVersionRequest = [ApiVersionRequest_v0, ApiVersionRequest_v1]
47+
ApiVersionResponse = [ApiVersionResponse_v0, ApiVersionResponse_v1]
2848

2949

3050
class CreateTopicsResponse_v0(Response):
@@ -48,6 +68,18 @@ class CreateTopicsResponse_v1(Response):
4868
)
4969

5070

71+
class CreateTopicsResponse_v2(Response):
72+
API_KEY = 19
73+
API_VERSION = 2
74+
SCHEMA = Schema(
75+
('throttle_time_ms', Int32),
76+
('topic_error_codes', Array(
77+
('topic', String('utf-8')),
78+
('error_code', Int16),
79+
('error_message', String('utf-8'))))
80+
)
81+
82+
5183
class CreateTopicsRequest_v0(Request):
5284
API_KEY = 19
5385
API_VERSION = 0
@@ -87,8 +119,19 @@ class CreateTopicsRequest_v1(Request):
87119
)
88120

89121

90-
CreateTopicsRequest = [CreateTopicsRequest_v0, CreateTopicsRequest_v1]
91-
CreateTopicsResponse = [CreateTopicsResponse_v0, CreateTopicsResponse_v1]
122+
class CreateTopicsRequest_v2(Request):
123+
API_KEY = 19
124+
API_VERSION = 2
125+
RESPONSE_TYPE = CreateTopicsResponse_v2
126+
SCHEMA = CreateTopicsRequest_v1.SCHEMA
127+
128+
129+
CreateTopicsRequest = [
130+
CreateTopicsRequest_v0, CreateTopicsRequest_v1, CreateTopicsRequest_v2
131+
]
132+
CreateTopicsResponse = [
133+
CreateTopicsResponse_v0, CreateTopicsResponse_v1, CreateTopicsResponse_v2
134+
]
92135

93136

94137
class DeleteTopicsResponse_v0(Response):
@@ -101,6 +144,17 @@ class DeleteTopicsResponse_v0(Response):
101144
)
102145

103146

147+
class DeleteTopicsResponse_v1(Response):
148+
API_KEY = 20
149+
API_VERSION = 1
150+
SCHEMA = Schema(
151+
('throttle_time_ms', Int32),
152+
('topic_error_codes', Array(
153+
('topic', String('utf-8')),
154+
('error_code', Int16)))
155+
)
156+
157+
104158
class DeleteTopicsRequest_v0(Request):
105159
API_KEY = 20
106160
API_VERSION = 0
@@ -111,8 +165,15 @@ class DeleteTopicsRequest_v0(Request):
111165
)
112166

113167

114-
DeleteTopicsRequest = [DeleteTopicsRequest_v0]
115-
DeleteTopicsResponse = [DeleteTopicsResponse_v0]
168+
class DeleteTopicsRequest_v1(Request):
169+
API_KEY = 20
170+
API_VERSION = 1
171+
RESPONSE_TYPE = DeleteTopicsResponse_v1
172+
SCHEMA = DeleteTopicsRequest_v0.SCHEMA
173+
174+
175+
DeleteTopicsRequest = [DeleteTopicsRequest_v0, DeleteTopicsRequest_v1]
176+
DeleteTopicsResponse = [DeleteTopicsResponse_v0, DeleteTopicsResponse_v1]
116177

117178

118179
class ListGroupsResponse_v0(Response):
@@ -126,15 +187,34 @@ class ListGroupsResponse_v0(Response):
126187
)
127188

128189

190+
class ListGroupsResponse_v1(Response):
191+
API_KEY = 16
192+
API_VERSION = 1
193+
SCHEMA = Schema(
194+
('throttle_time_ms', Int32),
195+
('error_code', Int16),
196+
('groups', Array(
197+
('group', String('utf-8')),
198+
('protocol_type', String('utf-8'))))
199+
)
200+
201+
129202
class ListGroupsRequest_v0(Request):
130203
API_KEY = 16
131204
API_VERSION = 0
132205
RESPONSE_TYPE = ListGroupsResponse_v0
133206
SCHEMA = Schema()
134207

135208

136-
ListGroupsRequest = [ListGroupsRequest_v0]
137-
ListGroupsResponse = [ListGroupsResponse_v0]
209+
class ListGroupsRequest_v1(Request):
210+
API_KEY = 16
211+
API_VERSION = 1
212+
RESPONSE_TYPE = ListGroupsResponse_v1
213+
SCHEMA = ListGroupsRequest_v0.SCHEMA
214+
215+
216+
ListGroupsRequest = [ListGroupsRequest_v0, ListGroupsRequest_v1]
217+
ListGroupsResponse = [ListGroupsResponse_v0, ListGroupsResponse_v1]
138218

139219

140220
class DescribeGroupsResponse_v0(Response):
@@ -156,6 +236,27 @@ class DescribeGroupsResponse_v0(Response):
156236
)
157237

158238

239+
class DescribeGroupsResponse_v1(Response):
240+
API_KEY = 15
241+
API_VERSION = 1
242+
SCHEMA = Schema(
243+
('throttle_time_ms', Int32),
244+
('groups', Array(
245+
('error_code', Int16),
246+
('group', String('utf-8')),
247+
('state', String('utf-8')),
248+
('protocol_type', String('utf-8')),
249+
('protocol', String('utf-8')),
250+
('members', Array(
251+
('member_id', String('utf-8')),
252+
('client_id', String('utf-8')),
253+
('client_host', String('utf-8')),
254+
('member_metadata', Bytes),
255+
('member_assignment', Bytes)))))
256+
)
257+
258+
259+
159260
class DescribeGroupsRequest_v0(Request):
160261
API_KEY = 15
161262
API_VERSION = 0
@@ -165,8 +266,15 @@ class DescribeGroupsRequest_v0(Request):
165266
)
166267

167268

168-
DescribeGroupsRequest = [DescribeGroupsRequest_v0]
169-
DescribeGroupsResponse = [DescribeGroupsResponse_v0]
269+
class DescribeGroupsRequest_v1(Request):
270+
API_KEY = 15
271+
API_VERSION = 1
272+
RESPONSE_TYPE = DescribeGroupsResponse_v1
273+
SCHEMA = DescribeGroupsRequest_v0.SCHEMA
274+
275+
276+
DescribeGroupsRequest = [DescribeGroupsRequest_v0, DescribeGroupsRequest_v1]
277+
DescribeGroupsResponse = [DescribeGroupsResponse_v0, DescribeGroupsResponse_v1]
170278

171279

172280
class SaslHandShakeResponse_v0(Response):

kafka/protocol/commit.py

Lines changed: 84 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import absolute_import
22

33
from .api import Request, Response
4-
from .types import Array, Int16, Int32, Int64, Schema, String
4+
from .types import Array, Int8, Int16, Int32, Int64, Schema, String
55

66

77
class OffsetCommitResponse_v0(Response):
@@ -28,6 +28,19 @@ class OffsetCommitResponse_v2(Response):
2828
SCHEMA = OffsetCommitResponse_v1.SCHEMA
2929

3030

31+
class OffsetCommitResponse_v3(Response):
32+
API_KEY = 8
33+
API_VERSION = 3
34+
SCHEMA = Schema(
35+
('throttle_time_ms', Int32),
36+
('topics', Array(
37+
('topic', String('utf-8')),
38+
('partitions', Array(
39+
('partition', Int32),
40+
('error_code', Int16)))))
41+
)
42+
43+
3144
class OffsetCommitRequest_v0(Request):
3245
API_KEY = 8
3346
API_VERSION = 0 # Zookeeper-backed storage
@@ -81,10 +94,21 @@ class OffsetCommitRequest_v2(Request):
8194
DEFAULT_RETENTION_TIME = -1
8295

8396

84-
OffsetCommitRequest = [OffsetCommitRequest_v0, OffsetCommitRequest_v1,
85-
OffsetCommitRequest_v2]
86-
OffsetCommitResponse = [OffsetCommitResponse_v0, OffsetCommitResponse_v1,
87-
OffsetCommitResponse_v2]
97+
class OffsetCommitRequest_v3(Request):
98+
API_KEY = 8
99+
API_VERSION = 3
100+
RESPONSE_TYPE = OffsetCommitResponse_v3
101+
SCHEMA = OffsetCommitRequest_v2.SCHEMA
102+
103+
104+
OffsetCommitRequest = [
105+
OffsetCommitRequest_v0, OffsetCommitRequest_v1,
106+
OffsetCommitRequest_v2, OffsetCommitRequest_v3
107+
]
108+
OffsetCommitResponse = [
109+
OffsetCommitResponse_v0, OffsetCommitResponse_v1,
110+
OffsetCommitResponse_v2, OffsetCommitResponse_v3
111+
]
88112

89113

90114
class OffsetFetchResponse_v0(Response):
@@ -123,6 +147,22 @@ class OffsetFetchResponse_v2(Response):
123147
)
124148

125149

150+
class OffsetFetchResponse_v3(Response):
151+
API_KEY = 9
152+
API_VERSION = 3
153+
SCHEMA = Schema(
154+
('throttle_time_ms', Int32),
155+
('topics', Array(
156+
('topic', String('utf-8')),
157+
('partitions', Array(
158+
('partition', Int32),
159+
('offset', Int64),
160+
('metadata', String('utf-8')),
161+
('error_code', Int16))))),
162+
('error_code', Int16)
163+
)
164+
165+
126166
class OffsetFetchRequest_v0(Request):
127167
API_KEY = 9
128168
API_VERSION = 0 # zookeeper-backed storage
@@ -152,10 +192,21 @@ class OffsetFetchRequest_v2(Request):
152192
SCHEMA = OffsetFetchRequest_v1.SCHEMA
153193

154194

155-
OffsetFetchRequest = [OffsetFetchRequest_v0, OffsetFetchRequest_v1,
156-
OffsetFetchRequest_v2]
157-
OffsetFetchResponse = [OffsetFetchResponse_v0, OffsetFetchResponse_v1,
158-
OffsetFetchResponse_v2]
195+
class OffsetFetchRequest_v3(Request):
196+
API_KEY = 9
197+
API_VERSION = 3
198+
RESPONSE_TYPE = OffsetFetchResponse_v3
199+
SCHEMA = OffsetFetchRequest_v2.SCHEMA
200+
201+
202+
OffsetFetchRequest = [
203+
OffsetFetchRequest_v0, OffsetFetchRequest_v1,
204+
OffsetFetchRequest_v2, OffsetFetchRequest_v3,
205+
]
206+
OffsetFetchResponse = [
207+
OffsetFetchResponse_v0, OffsetFetchResponse_v1,
208+
OffsetFetchResponse_v2, OffsetFetchResponse_v3,
209+
]
159210

160211

161212
class GroupCoordinatorResponse_v0(Response):
@@ -169,6 +220,18 @@ class GroupCoordinatorResponse_v0(Response):
169220
)
170221

171222

223+
class GroupCoordinatorResponse_v1(Response):
224+
API_KEY = 10
225+
API_VERSION = 1
226+
SCHEMA = Schema(
227+
('error_code', Int16),
228+
('error_message', String('utf-8')),
229+
('coordinator_id', Int32),
230+
('host', String('utf-8')),
231+
('port', Int32)
232+
)
233+
234+
172235
class GroupCoordinatorRequest_v0(Request):
173236
API_KEY = 10
174237
API_VERSION = 0
@@ -178,5 +241,15 @@ class GroupCoordinatorRequest_v0(Request):
178241
)
179242

180243

181-
GroupCoordinatorRequest = [GroupCoordinatorRequest_v0]
182-
GroupCoordinatorResponse = [GroupCoordinatorResponse_v0]
244+
class GroupCoordinatorRequest_v1(Request):
245+
API_KEY = 10
246+
API_VERSION = 1
247+
RESPONSE_TYPE = GroupCoordinatorResponse_v1
248+
SCHEMA = Schema(
249+
('coordinator_key', String('utf-8')),
250+
('coordinator_type', Int8)
251+
)
252+
253+
254+
GroupCoordinatorRequest = [GroupCoordinatorRequest_v0, GroupCoordinatorRequest_v1]
255+
GroupCoordinatorResponse = [GroupCoordinatorResponse_v0, GroupCoordinatorResponse_v1]

0 commit comments

Comments
 (0)