summaryrefslogtreecommitdiff
path: root/kafka/protocol/produce.py
diff options
context:
space:
mode:
Diffstat (limited to 'kafka/protocol/produce.py')
-rw-r--r--kafka/protocol/produce.py79
1 files changed, 77 insertions, 2 deletions
diff --git a/kafka/protocol/produce.py b/kafka/protocol/produce.py
index f4032b3..9b3f6bf 100644
--- a/kafka/protocol/produce.py
+++ b/kafka/protocol/produce.py
@@ -78,6 +78,50 @@ class ProduceResponse_v5(Response):
)
+class ProduceResponse_v6(Response):
+ """
+ The version number is bumped to indicate that on quota violation brokers send out responses before throttling.
+ """
+ API_KEY = 0
+ API_VERSION = 6
+ SCHEMA = ProduceResponse_v5.SCHEMA
+
+
+class ProduceResponse_v7(Response):
+ """
+ V7 bumped up to indicate ZStandard capability. (see KIP-110)
+ """
+ API_KEY = 0
+ API_VERSION = 7
+ SCHEMA = ProduceResponse_v6.SCHEMA
+
+
+class ProduceResponse_v8(Response):
+ """
+ V8 bumped up to add two new fields record_errors offset list and error_message
+ (See KIP-467)
+ """
+ API_KEY = 0
+ API_VERSION = 8
+ SCHEMA = Schema(
+ ('topics', Array(
+ ('topic', String('utf-8')),
+ ('partitions', Array(
+ ('partition', Int32),
+ ('error_code', Int16),
+ ('offset', Int64),
+ ('timestamp', Int64),
+ ('log_start_offset', Int64)),
+ ('record_errors', (Array(
+ ('batch_index', Int32),
+ ('batch_index_error_message', String('utf-8'))
+ ))),
+ ('error_message', String('utf-8'))
+ ))),
+ ('throttle_time_ms', Int32)
+ )
+
+
class ProduceRequest(Request):
API_KEY = 0
@@ -106,6 +150,7 @@ class ProduceRequest_v1(ProduceRequest):
RESPONSE_TYPE = ProduceResponse_v1
SCHEMA = ProduceRequest_v0.SCHEMA
+
class ProduceRequest_v2(ProduceRequest):
API_VERSION = 2
RESPONSE_TYPE = ProduceResponse_v2
@@ -147,11 +192,41 @@ class ProduceRequest_v5(ProduceRequest):
SCHEMA = ProduceRequest_v4.SCHEMA
+class ProduceRequest_v6(ProduceRequest):
+ """
+ The version number is bumped to indicate that on quota violation brokers send out responses before throttling.
+ """
+ API_VERSION = 6
+ RESPONSE_TYPE = ProduceResponse_v6
+ SCHEMA = ProduceRequest_v5.SCHEMA
+
+
+class ProduceRequest_v7(ProduceRequest):
+ """
+ V7 bumped up to indicate ZStandard capability. (see KIP-110)
+ """
+ API_VERSION = 7
+ RESPONSE_TYPE = ProduceResponse_v7
+ SCHEMA = ProduceRequest_v6.SCHEMA
+
+
+class ProduceRequest_v8(ProduceRequest):
+ """
+ V8 bumped up to add two new fields record_errors offset list and error_message to PartitionResponse
+ (See KIP-467)
+ """
+ API_VERSION = 8
+ RESPONSE_TYPE = ProduceResponse_v8
+ SCHEMA = ProduceRequest_v7.SCHEMA
+
+
ProduceRequest = [
ProduceRequest_v0, ProduceRequest_v1, ProduceRequest_v2,
- ProduceRequest_v3, ProduceRequest_v4, ProduceRequest_v5
+ ProduceRequest_v3, ProduceRequest_v4, ProduceRequest_v5,
+ ProduceRequest_v6, ProduceRequest_v7, ProduceRequest_v8,
]
ProduceResponse = [
ProduceResponse_v0, ProduceResponse_v1, ProduceResponse_v2,
- ProduceResponse_v3, ProduceResponse_v4, ProduceResponse_v5
+ ProduceResponse_v3, ProduceResponse_v4, ProduceResponse_v5,
+ ProduceResponse_v6, ProduceResponse_v7, ProduceResponse_v8,
]