summaryrefslogtreecommitdiff
path: root/kafka/protocol/metadata.py
diff options
context:
space:
mode:
authorDana Powers <dana.powers@rd.io>2015-11-28 19:41:06 +0800
committerZack Dever <zack.dever@rd.io>2015-12-04 11:25:39 -0800
commita85e09df89a43de5b659a0fa4ed35bec37c60e04 (patch)
treea539af32fe502006c1f35b96d8ae36225292f7a5 /kafka/protocol/metadata.py
parente24a4d5f5252d6f97ac586e328b95779ef83f4b6 (diff)
downloadkafka-python-a85e09df89a43de5b659a0fa4ed35bec37c60e04.tar.gz
Rework protocol type definition: AbstractType, Schema, Struct
Diffstat (limited to 'kafka/protocol/metadata.py')
-rw-r--r--kafka/protocol/metadata.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/kafka/protocol/metadata.py b/kafka/protocol/metadata.py
new file mode 100644
index 0000000..b35e7ef
--- /dev/null
+++ b/kafka/protocol/metadata.py
@@ -0,0 +1,28 @@
+from .struct import Struct
+from .types import Array, Int16, Int32, Schema, String
+
+
+class MetadataRequest(Struct):
+ API_KEY = 3
+ API_VERSION = 0
+ SCHEMA = Schema(
+ ('topics', Array(String('utf-8')))
+ )
+
+
+class MetadataResponse(Struct):
+ SCHEMA = Schema(
+ ('brokers', Array(
+ ('node_id', Int32),
+ ('host', String('utf-8')),
+ ('port', Int32))),
+ ('topics', Array(
+ ('error_code', Int16),
+ ('topic', String('utf-8')),
+ ('partitions', Array(
+ ('error_code', Int16),
+ ('partition', Int32),
+ ('leader', Int32),
+ ('replicas', Array(Int32)),
+ ('isr', Array(Int32))))))
+ )