Skip to content

Commit 0dee700

Browse files
Update processing of group metadata
1 parent fc8f776 commit 0dee700

File tree

1 file changed

+37
-14
lines changed

1 file changed

+37
-14
lines changed

describegroups.go

Lines changed: 37 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,22 @@ func (c *Client) DescribeGroups(
156156
return resp, nil
157157
}
158158

159+
func (t *DescribeGroupsResponseMemberMetadataOwnedPartition) readFrom(r *bufio.Reader, size int) (remain int, err error) {
160+
if remain, err = readString(r, size, &t.Topic); err != nil {
161+
return
162+
}
163+
partitions := []int32{}
164+
165+
if remain, err = readInt32Array(r, remain, &partitions); err != nil {
166+
return
167+
}
168+
for _, partition := range partitions {
169+
t.Partitions = append(t.Partitions, int(partition))
170+
}
171+
172+
return
173+
}
174+
159175
// decodeMemberMetadata converts raw metadata bytes to a
160176
// DescribeGroupsResponseMemberMetadata struct.
161177
//
@@ -187,26 +203,33 @@ func decodeMemberMetadata(rawMetadata []byte) (DescribeGroupsResponseMemberMetad
187203
return mm, err
188204
}
189205

190-
/*
191-
if mm.Version == 1 {
192-
fn := func(r *bufio.Reader, size int) (fnRemain int, fnErr error) {
193-
//item := DescribeGroupsResponseMemberMetadataOwnedPartition{}
194-
//if fnRemain, fnErr = (&item).readFrom(r, size); fnErr != nil {
195-
// return
196-
//}
197-
//mm.OwnedPartitions = append(mm.OwnedPartitions, item)
206+
if mm.Version == 1 && remain > 0 {
207+
fn := func(r *bufio.Reader, size int) (fnRemain int, fnErr error) {
208+
op := DescribeGroupsResponseMemberMetadataOwnedPartition{}
209+
if fnRemain, fnErr = readString(r, size, &op.Topic); fnErr != nil {
198210
return
199211
}
212+
ps := []int32{}
200213

201-
if remain, err = readArrayWith(bufReader, remain, fn); err != nil {
202-
return mm, err
214+
if fnRemain, fnErr = readInt32Array(r, remain, &ps); fnErr != nil {
215+
return
216+
}
217+
for _, p := range ps {
218+
op.Partitions = append(op.Partitions, int(p))
203219
}
220+
221+
mm.OwnedPartitions = append(mm.OwnedPartitions, op)
222+
return
204223
}
205-
*/
206224

207-
//if remain != 0 {
208-
// return mm, fmt.Errorf("Got non-zero number of bytes remaining: %d", remain)
209-
//}
225+
if remain, err = readArrayWith(bufReader, remain, fn); err != nil {
226+
return mm, err
227+
}
228+
}
229+
230+
if remain != 0 {
231+
return mm, fmt.Errorf("Got non-zero number of bytes remaining: %d", remain)
232+
}
210233

211234
return mm, nil
212235
}

0 commit comments

Comments
 (0)