12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package sarama
- // DescribeLogDirsRequest is a describe request to get partitions' log size
- type DescribeLogDirsRequest struct {
- // Version 0 and 1 are equal
- // The version number is bumped to indicate that on quota violation brokers send out responses before throttling.
- Version int16
- // If this is an empty array, all topics will be queried
- DescribeTopics []DescribeLogDirsRequestTopic
- }
- // DescribeLogDirsRequestTopic is a describe request about the log dir of one or more partitions within a Topic
- type DescribeLogDirsRequestTopic struct {
- Topic string
- PartitionIDs []int32
- }
- func (r *DescribeLogDirsRequest) encode(pe packetEncoder) error {
- length := len(r.DescribeTopics)
- if length == 0 {
- // In order to query all topics we must send null
- length = -1
- }
- if err := pe.putArrayLength(length); err != nil {
- return err
- }
- for _, d := range r.DescribeTopics {
- if err := pe.putString(d.Topic); err != nil {
- return err
- }
- if err := pe.putInt32Array(d.PartitionIDs); err != nil {
- return err
- }
- }
- return nil
- }
- func (r *DescribeLogDirsRequest) decode(pd packetDecoder, version int16) error {
- n, err := pd.getArrayLength()
- if err != nil {
- return err
- }
- if n == -1 {
- n = 0
- }
- topics := make([]DescribeLogDirsRequestTopic, n)
- for i := 0; i < n; i++ {
- topics[i] = DescribeLogDirsRequestTopic{}
- topic, err := pd.getString()
- if err != nil {
- return err
- }
- topics[i].Topic = topic
- pIDs, err := pd.getInt32Array()
- if err != nil {
- return err
- }
- topics[i].PartitionIDs = pIDs
- }
- r.DescribeTopics = topics
- return nil
- }
- func (r *DescribeLogDirsRequest) key() int16 {
- return 35
- }
- func (r *DescribeLogDirsRequest) version() int16 {
- return r.Version
- }
- func (r *DescribeLogDirsRequest) headerVersion() int16 {
- return 1
- }
- func (r *DescribeLogDirsRequest) isValidVersion() bool {
- return r.Version >= 0 && r.Version <= 1
- }
- func (r *DescribeLogDirsRequest) requiredVersion() KafkaVersion {
- if r.Version > 0 {
- return V2_0_0_0
- }
- return V1_0_0_0
- }
|