Skip to content

Commit 3962d67

Browse files
committed
Add protocol defs for AddPartitionsToTxn, EndTxn, and AddOffsetsToTxn
1 parent f5e4fa6 commit 3962d67

File tree

3 files changed

+180
-0
lines changed

3 files changed

+180
-0
lines changed

kafka/protocol/add_offsets_to_txn.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
from __future__ import absolute_import
2+
3+
from kafka.protocol.api import Request, Response
4+
from kafka.protocol.types import Int16, Int32, Int64, Schema, String
5+
6+
7+
class AddOffsetsToTxnResponse_v0(Response):
8+
API_KEY = 25
9+
API_VERSION = 0
10+
SCHEMA = Schema(
11+
('throttle_time_ms', Int32),
12+
('error_code', Int16),
13+
)
14+
15+
16+
class AddOffsetsToTxnResponse_v1(Response):
17+
API_KEY = 25
18+
API_VERSION = 1
19+
SCHEMA = AddOffsetsToTxnResponse_v0.SCHEMA
20+
21+
22+
class AddOffsetsToTxnResponse_v2(Response):
23+
API_KEY = 25
24+
API_VERSION = 2
25+
SCHEMA = AddOffsetsToTxnResponse_v1.SCHEMA
26+
27+
28+
class AddOffsetsToTxnRequest_v0(Request):
29+
API_KEY = 25
30+
API_VERSION = 0
31+
RESPONSE_TYPE = AddOffsetsToTxnResponse_v0
32+
SCHEMA = Schema(
33+
('transactional_id', String('utf-8')),
34+
('producer_id', Int64),
35+
('producer_epoch', Int16),
36+
('group_id', String('utf-8')),
37+
)
38+
39+
40+
class AddOffsetsToTxnRequest_v1(Request):
41+
API_KEY = 25
42+
API_VERSION = 1
43+
RESPONSE_TYPE = AddOffsetsToTxnResponse_v1
44+
SCHEMA = AddOffsetsToTxnRequest_v0.SCHEMA
45+
46+
47+
class AddOffsetsToTxnRequest_v2(Request):
48+
API_KEY = 25
49+
API_VERSION = 2
50+
RESPONSE_TYPE = AddOffsetsToTxnResponse_v2
51+
SCHEMA = AddOffsetsToTxnRequest_v1.SCHEMA
52+
53+
54+
AddOffsetsToTxnRequest = [
55+
AddOffsetsToTxnRequest_v0, AddOffsetsToTxnRequest_v1, AddOffsetsToTxnRequest_v2,
56+
]
57+
AddOffsetsToTxnResponse = [
58+
AddOffsetsToTxnResponse_v0, AddOffsetsToTxnResponse_v1, AddOffsetsToTxnResponse_v2,
59+
]
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
from __future__ import absolute_import
2+
3+
from kafka.protocol.api import Request, Response
4+
from kafka.protocol.types import Array, Int16, Int32, Int64, Schema, String
5+
6+
7+
class AddPartitionsToTxnResponse_v0(Response):
8+
API_KEY = 24
9+
API_VERSION = 0
10+
SCHEMA = Schema(
11+
('throttle_time_ms', Int32),
12+
('results', Array(
13+
('topic', String('utf-8')),
14+
('partitions', Array(
15+
('partition', Int32),
16+
('error_code', Int16))))))
17+
18+
19+
class AddPartitionsToTxnResponse_v1(Response):
20+
API_KEY = 24
21+
API_VERSION = 1
22+
SCHEMA = AddPartitionsToTxnResponse_v0.SCHEMA
23+
24+
25+
class AddPartitionsToTxnResponse_v2(Response):
26+
API_KEY = 24
27+
API_VERSION = 2
28+
SCHEMA = AddPartitionsToTxnResponse_v1.SCHEMA
29+
30+
31+
class AddPartitionsToTxnRequest_v0(Request):
32+
API_KEY = 24
33+
API_VERSION = 0
34+
RESPONSE_TYPE = AddPartitionsToTxnResponse_v0
35+
SCHEMA = Schema(
36+
('transactional_id', String('utf-8')),
37+
('producer_id', Int64),
38+
('producer_epoch', Int16),
39+
('topics', Array(
40+
('topic', String('utf-8')),
41+
('partitions', Array(Int32)))))
42+
43+
44+
class AddPartitionsToTxnRequest_v1(Request):
45+
API_KEY = 24
46+
API_VERSION = 1
47+
RESPONSE_TYPE = AddPartitionsToTxnResponse_v1
48+
SCHEMA = AddPartitionsToTxnRequest_v0.SCHEMA
49+
50+
51+
class AddPartitionsToTxnRequest_v2(Request):
52+
API_KEY = 24
53+
API_VERSION = 2
54+
RESPONSE_TYPE = AddPartitionsToTxnResponse_v2
55+
SCHEMA = AddPartitionsToTxnRequest_v1.SCHEMA
56+
57+
58+
AddPartitionsToTxnRequest = [
59+
AddPartitionsToTxnRequest_v0, AddPartitionsToTxnRequest_v1, AddPartitionsToTxnRequest_v2,
60+
]
61+
AddPartitionsToTxnResponse = [
62+
AddPartitionsToTxnResponse_v0, AddPartitionsToTxnResponse_v1, AddPartitionsToTxnResponse_v2,
63+
]

kafka/protocol/end_txn.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
from __future__ import absolute_import
2+
3+
from kafka.protocol.api import Request, Response
4+
from kafka.protocol.types import Boolean, Int16, Int32, Int64, Schema, String
5+
6+
7+
class EndTxnResponse_v0(Response):
8+
API_KEY = 26
9+
API_VERSION = 0
10+
SCHEMA = Schema(
11+
('throttle_time_ms', Int32),
12+
('error_code', Int16),
13+
)
14+
15+
16+
class EndTxnResponse_v1(Response):
17+
API_KEY = 26
18+
API_VERSION = 1
19+
SCHEMA = EndTxnResponse_v0.SCHEMA
20+
21+
22+
class EndTxnResponse_v2(Response):
23+
API_KEY = 26
24+
API_VERSION = 2
25+
SCHEMA = EndTxnResponse_v1.SCHEMA
26+
27+
28+
class EndTxnRequest_v0(Request):
29+
API_KEY = 26
30+
API_VERSION = 0
31+
RESPONSE_TYPE = EndTxnResponse_v0
32+
SCHEMA = Schema(
33+
('transactional_id', String('utf-8')),
34+
('producer_id', Int64),
35+
('producer_epoch', Int16),
36+
('committed', Boolean))
37+
38+
39+
class EndTxnRequest_v1(Request):
40+
API_KEY = 26
41+
API_VERSION = 1
42+
RESPONSE_TYPE = EndTxnResponse_v1
43+
SCHEMA = EndTxnRequest_v0.SCHEMA
44+
45+
46+
class EndTxnRequest_v2(Request):
47+
API_KEY = 26
48+
API_VERSION = 2
49+
RESPONSE_TYPE = EndTxnResponse_v2
50+
SCHEMA = EndTxnRequest_v1.SCHEMA
51+
52+
53+
EndTxnRequest = [
54+
EndTxnRequest_v0, EndTxnRequest_v1, EndTxnRequest_v2,
55+
]
56+
EndTxnResponse = [
57+
EndTxnResponse_v0, EndTxnResponse_v1, EndTxnResponse_v2,
58+
]

0 commit comments

Comments
 (0)