diff options
Diffstat (limited to 'kafka/protocol/group.py')
-rw-r--r-- | kafka/protocol/group.py | 93 |
1 files changed, 85 insertions, 8 deletions
diff --git a/kafka/protocol/group.py b/kafka/protocol/group.py index 5cab754..ce75a5f 100644 --- a/kafka/protocol/group.py +++ b/kafka/protocol/group.py @@ -26,6 +26,22 @@ class JoinGroupResponse_v1(Response): SCHEMA = JoinGroupResponse_v0.SCHEMA +class JoinGroupResponse_v2(Response): + API_KEY = 11 + API_VERSION = 2 + SCHEMA = Schema( + ('throttle_time_ms', Int32), + ('error_code', Int16), + ('generation_id', Int32), + ('group_protocol', String('utf-8')), + ('leader_id', String('utf-8')), + ('member_id', String('utf-8')), + ('members', Array( + ('member_id', String('utf-8')), + ('member_metadata', Bytes))) + ) + + class JoinGroupRequest_v0(Request): API_KEY = 11 API_VERSION = 0 @@ -59,8 +75,20 @@ class JoinGroupRequest_v1(Request): UNKNOWN_MEMBER_ID = '' -JoinGroupRequest = [JoinGroupRequest_v0, JoinGroupRequest_v1] -JoinGroupResponse = [JoinGroupResponse_v0, JoinGroupResponse_v1] +class JoinGroupRequest_v2(Request): + API_KEY = 11 + API_VERSION = 2 + RESPONSE_TYPE = JoinGroupResponse_v2 + SCHEMA = JoinGroupRequest_v1.SCHEMA + UNKNOWN_MEMBER_ID = '' + + +JoinGroupRequest = [ + JoinGroupRequest_v0, JoinGroupRequest_v1, JoinGroupRequest_v2 +] +JoinGroupResponse = [ + JoinGroupResponse_v0, JoinGroupResponse_v1, JoinGroupResponse_v1 +] class ProtocolMetadata(Struct): @@ -80,6 +108,16 @@ class SyncGroupResponse_v0(Response): ) +class SyncGroupResponse_v1(Response): + API_KEY = 14 + API_VERSION = 1 + SCHEMA = Schema( + ('throttle_time_ms', Int32), + ('error_code', Int16), + ('member_assignment', Bytes) + ) + + class SyncGroupRequest_v0(Request): API_KEY = 14 API_VERSION = 0 @@ -94,8 +132,15 @@ class SyncGroupRequest_v0(Request): ) -SyncGroupRequest = [SyncGroupRequest_v0] -SyncGroupResponse = [SyncGroupResponse_v0] +class SyncGroupRequest_v1(Request): + API_KEY = 14 + API_VERSION = 1 + RESPONSE_TYPE = SyncGroupResponse_v1 + SCHEMA = SyncGroupRequest_v0.SCHEMA + + +SyncGroupRequest = [SyncGroupRequest_v0, SyncGroupRequest_v1] +SyncGroupResponse = [SyncGroupResponse_v0, SyncGroupResponse_v1] class MemberAssignment(Struct): @@ -116,6 +161,15 @@ class HeartbeatResponse_v0(Response): ) +class HeartbeatResponse_v1(Response): + API_KEY = 12 + API_VERSION = 1 + SCHEMA = Schema( + ('throttle_time_ms', Int32), + ('error_code', Int16) + ) + + class HeartbeatRequest_v0(Request): API_KEY = 12 API_VERSION = 0 @@ -127,8 +181,15 @@ class HeartbeatRequest_v0(Request): ) -HeartbeatRequest = [HeartbeatRequest_v0] -HeartbeatResponse = [HeartbeatResponse_v0] +class HeartbeatRequest_v1(Request): + API_KEY = 12 + API_VERSION = 1 + RESPONSE_TYPE = HeartbeatResponse_v1 + SCHEMA = HeartbeatRequest_v0 + + +HeartbeatRequest = [HeartbeatRequest_v0, HeartbeatRequest_v1] +HeartbeatResponse = [HeartbeatResponse_v0, HeartbeatResponse_v1] class LeaveGroupResponse_v0(Response): @@ -139,6 +200,15 @@ class LeaveGroupResponse_v0(Response): ) +class LeaveGroupResponse_v1(Response): + API_KEY = 13 + API_VERSION = 1 + SCHEMA = Schema( + ('throttle_time_ms', Int32), + ('error_code', Int16) + ) + + class LeaveGroupRequest_v0(Request): API_KEY = 13 API_VERSION = 0 @@ -149,5 +219,12 @@ class LeaveGroupRequest_v0(Request): ) -LeaveGroupRequest = [LeaveGroupRequest_v0] -LeaveGroupResponse = [LeaveGroupResponse_v0] +class LeaveGroupRequest_v1(Request): + API_KEY = 13 + API_VERSION = 1 + RESPONSE_TYPE = LeaveGroupResponse_v1 + SCHEMA = LeaveGroupRequest_v0.SCHEMA + + +LeaveGroupRequest = [LeaveGroupRequest_v0, LeaveGroupRequest_v1] +LeaveGroupResponse = [LeaveGroupResponse_v0, LeaveGroupResponse_v1] |