summaryrefslogtreecommitdiff
path: root/kafka/protocol/offset.py
diff options
context:
space:
mode:
authorJulien Lafaye <jlafaye@gmail.com>2017-01-19 22:10:26 +0100
committerDana Powers <dana.powers@gmail.com>2017-01-19 13:10:26 -0800
commit25741bdc89df30cc0c07af448eda987da83998fc (patch)
tree481bab02ccbfc52888690024663bc9d44d8f7073 /kafka/protocol/offset.py
parent4da18a97df672be6b0a687ac64d5221bd3196178 (diff)
downloadkafka-python-25741bdc89df30cc0c07af448eda987da83998fc.tar.gz
Add support for offsetRequestV1 messages (#951)
Diffstat (limited to 'kafka/protocol/offset.py')
-rw-r--r--kafka/protocol/offset.py35
1 files changed, 32 insertions, 3 deletions
diff --git a/kafka/protocol/offset.py b/kafka/protocol/offset.py
index 8d66063..77a6a09 100644
--- a/kafka/protocol/offset.py
+++ b/kafka/protocol/offset.py
@@ -22,6 +22,19 @@ class OffsetResponse_v0(Struct):
('offsets', Array(Int64))))))
)
+class OffsetResponse_v1(Struct):
+ API_KEY = 2
+ API_VERSION = 1
+ SCHEMA = Schema(
+ ('topics', Array(
+ ('topic', String('utf-8')),
+ ('partitions', Array(
+ ('partition', Int32),
+ ('error_code', Int16),
+ ('timestamp', Int64),
+ ('offset', Int64)))))
+ )
+
class OffsetRequest_v0(Struct):
API_KEY = 2
@@ -33,13 +46,29 @@ class OffsetRequest_v0(Struct):
('topic', String('utf-8')),
('partitions', Array(
('partition', Int32),
- ('time', Int64),
+ ('timestamp', Int64),
('max_offsets', Int32)))))
)
DEFAULTS = {
'replica_id': -1
}
+class OffsetRequest_v1(Struct):
+ API_KEY = 2
+ API_VERSION = 1
+ RESPONSE_TYPE = OffsetResponse_v1
+ SCHEMA = Schema(
+ ('replica_id', Int32),
+ ('topics', Array(
+ ('topic', String('utf-8')),
+ ('partitions', Array(
+ ('partition', Int32),
+ ('time', Int64)))))
+ )
+ DEFAULTS = {
+ 'replica_id': -1
+ }
+
-OffsetRequest = [OffsetRequest_v0]
-OffsetResponse = [OffsetResponse_v0]
+OffsetRequest = [OffsetRequest_v0, OffsetRequest_v1]
+OffsetResponse = [OffsetResponse_v0, OffsetResponse_v1]