| package sarama |
| |
| type PartitionReplicaReassignmentsStatus struct { |
| Replicas []int32 |
| AddingReplicas []int32 |
| RemovingReplicas []int32 |
| } |
| |
| func (b *PartitionReplicaReassignmentsStatus) encode(pe packetEncoder) error { |
| if err := pe.putCompactInt32Array(b.Replicas); err != nil { |
| return err |
| } |
| if err := pe.putCompactInt32Array(b.AddingReplicas); err != nil { |
| return err |
| } |
| if err := pe.putCompactInt32Array(b.RemovingReplicas); err != nil { |
| return err |
| } |
| |
| pe.putEmptyTaggedFieldArray() |
| |
| return nil |
| } |
| |
| func (b *PartitionReplicaReassignmentsStatus) decode(pd packetDecoder) (err error) { |
| if b.Replicas, err = pd.getCompactInt32Array(); err != nil { |
| return err |
| } |
| |
| if b.AddingReplicas, err = pd.getCompactInt32Array(); err != nil { |
| return err |
| } |
| |
| if b.RemovingReplicas, err = pd.getCompactInt32Array(); err != nil { |
| return err |
| } |
| |
| if _, err := pd.getEmptyTaggedFieldArray(); err != nil { |
| return err |
| } |
| |
| return err |
| } |
| |
| type ListPartitionReassignmentsResponse struct { |
| Version int16 |
| ThrottleTimeMs int32 |
| ErrorCode KError |
| ErrorMessage *string |
| TopicStatus map[string]map[int32]*PartitionReplicaReassignmentsStatus |
| } |
| |
| func (r *ListPartitionReassignmentsResponse) AddBlock(topic string, partition int32, replicas, addingReplicas, removingReplicas []int32) { |
| if r.TopicStatus == nil { |
| r.TopicStatus = make(map[string]map[int32]*PartitionReplicaReassignmentsStatus) |
| } |
| partitions := r.TopicStatus[topic] |
| if partitions == nil { |
| partitions = make(map[int32]*PartitionReplicaReassignmentsStatus) |
| r.TopicStatus[topic] = partitions |
| } |
| |
| partitions[partition] = &PartitionReplicaReassignmentsStatus{Replicas: replicas, AddingReplicas: addingReplicas, RemovingReplicas: removingReplicas} |
| } |
| |
| func (r *ListPartitionReassignmentsResponse) encode(pe packetEncoder) error { |
| pe.putInt32(r.ThrottleTimeMs) |
| pe.putInt16(int16(r.ErrorCode)) |
| if err := pe.putNullableCompactString(r.ErrorMessage); err != nil { |
| return err |
| } |
| |
| pe.putCompactArrayLength(len(r.TopicStatus)) |
| for topic, partitions := range r.TopicStatus { |
| if err := pe.putCompactString(topic); err != nil { |
| return err |
| } |
| pe.putCompactArrayLength(len(partitions)) |
| for partition, block := range partitions { |
| pe.putInt32(partition) |
| |
| if err := block.encode(pe); err != nil { |
| return err |
| } |
| } |
| pe.putEmptyTaggedFieldArray() |
| } |
| |
| pe.putEmptyTaggedFieldArray() |
| |
| return nil |
| } |
| |
| func (r *ListPartitionReassignmentsResponse) decode(pd packetDecoder, version int16) (err error) { |
| r.Version = version |
| |
| if r.ThrottleTimeMs, err = pd.getInt32(); err != nil { |
| return err |
| } |
| |
| kerr, err := pd.getInt16() |
| if err != nil { |
| return err |
| } |
| |
| r.ErrorCode = KError(kerr) |
| |
| if r.ErrorMessage, err = pd.getCompactNullableString(); err != nil { |
| return err |
| } |
| |
| numTopics, err := pd.getCompactArrayLength() |
| if err != nil { |
| return err |
| } |
| |
| r.TopicStatus = make(map[string]map[int32]*PartitionReplicaReassignmentsStatus, numTopics) |
| for i := 0; i < numTopics; i++ { |
| topic, err := pd.getCompactString() |
| if err != nil { |
| return err |
| } |
| |
| ongoingPartitionReassignments, err := pd.getCompactArrayLength() |
| if err != nil { |
| return err |
| } |
| |
| r.TopicStatus[topic] = make(map[int32]*PartitionReplicaReassignmentsStatus, ongoingPartitionReassignments) |
| |
| for j := 0; j < ongoingPartitionReassignments; j++ { |
| partition, err := pd.getInt32() |
| if err != nil { |
| return err |
| } |
| |
| block := &PartitionReplicaReassignmentsStatus{} |
| if err := block.decode(pd); err != nil { |
| return err |
| } |
| r.TopicStatus[topic][partition] = block |
| } |
| |
| if _, err := pd.getEmptyTaggedFieldArray(); err != nil { |
| return err |
| } |
| } |
| if _, err := pd.getEmptyTaggedFieldArray(); err != nil { |
| return err |
| } |
| |
| return nil |
| } |
| |
| func (r *ListPartitionReassignmentsResponse) key() int16 { |
| return 46 |
| } |
| |
| func (r *ListPartitionReassignmentsResponse) version() int16 { |
| return r.Version |
| } |
| |
| func (r *ListPartitionReassignmentsResponse) headerVersion() int16 { |
| return 1 |
| } |
| |
| func (r *ListPartitionReassignmentsResponse) requiredVersion() KafkaVersion { |
| return V2_4_0_0 |
| } |