summaryrefslogtreecommitdiff
path: root/kafka/protocol/fetch.py
diff options
context:
space:
mode:
authorJeff Widman <jeff@jeffwidman.com>2017-01-18 16:52:29 -0800
committerDana Powers <dana.powers@gmail.com>2017-01-18 16:52:29 -0800
commit7df120d7ce4f3cb429cdfb7b246d41d744b30e6c (patch)
treedf9edc73eb634d9d5805d8964f07253f08ab2c03 /kafka/protocol/fetch.py
parent2c6261a4d6bd2fbcabbc0431c8f1defe5b6e7e21 (diff)
downloadkafka-python-7df120d7ce4f3cb429cdfb7b246d41d744b30e6c.tar.gz
Add FetchRequest/Response_v3 structs (#943)
Diffstat (limited to 'kafka/protocol/fetch.py')
-rw-r--r--kafka/protocol/fetch.py30
1 files changed, 28 insertions, 2 deletions
diff --git a/kafka/protocol/fetch.py b/kafka/protocol/fetch.py
index 7df6627..79b010f 100644
--- a/kafka/protocol/fetch.py
+++ b/kafka/protocol/fetch.py
@@ -40,6 +40,12 @@ class FetchResponse_v2(Struct):
SCHEMA = FetchResponse_v1.SCHEMA # message format changed internally
+class FetchResponse_v3(Struct):
+ API_KEY = 1
+ API_VERSION = 3
+ SCHEMA = FetchResponse_v2.SCHEMA
+
+
class FetchRequest_v0(Struct):
API_KEY = 1
API_VERSION = 0
@@ -71,5 +77,25 @@ class FetchRequest_v2(Struct):
SCHEMA = FetchRequest_v1.SCHEMA
-FetchRequest = [FetchRequest_v0, FetchRequest_v1, FetchRequest_v2]
-FetchResponse = [FetchResponse_v0, FetchResponse_v1, FetchResponse_v2]
+class FetchRequest_v3(Struct):
+ API_KEY = 1
+ API_VERSION = 3
+ RESPONSE_TYPE = FetchResponse_v3
+ SCHEMA = Schema(
+ ('replica_id', Int32),
+ ('max_wait_time', Int32),
+ ('min_bytes', Int32),
+ ('max_bytes', Int32), # This new field is only difference from FR_v2
+ ('topics', Array(
+ ('topic', String('utf-8')),
+ ('partitions', Array(
+ ('partition', Int32),
+ ('offset', Int64),
+ ('max_bytes', Int32)))))
+ )
+
+
+FetchRequest = [FetchRequest_v0, FetchRequest_v1, FetchRequest_v2,
+ FetchRequest_v3]
+FetchResponse = [FetchResponse_v0, FetchResponse_v1, FetchResponse_v2,
+ FetchResponse_v3]