MCPcopy
hub / github.com/segmentio/kafka-go / DescribeClientQuotas

Method DescribeClientQuotas

describeclientquotas.go:77–126  ·  view source on GitHub ↗

DescribeClientQuotas sends a describe client quotas request to a kafka broker and returns the response.

(ctx context.Context, req *DescribeClientQuotasRequest)

Source from the content-addressed store, hash-verified

75// DescribeClientQuotas sends a describe client quotas request to a kafka broker and returns
76// the response.
77func (c *Client) DescribeClientQuotas(ctx context.Context, req *DescribeClientQuotasRequest) (*DescribeClientQuotasResponse, error) {
78 components := make([]describeclientquotas.Component, len(req.Components))
79
80 for componentIdx, component := range req.Components {
81 components[componentIdx] = describeclientquotas.Component{
82 EntityType: component.EntityType,
83 MatchType: component.MatchType,
84 Match: component.Match,
85 }
86 }
87
88 m, err := c.roundTrip(ctx, req.Addr, &describeclientquotas.Request{
89 Components: components,
90 Strict: req.Strict,
91 })
92 if err != nil {
93 return nil, fmt.Errorf("kafka.(*Client).DescribeClientQuotas: %w", err)
94 }
95
96 res := m.(*describeclientquotas.Response)
97 responseEntries := make([]DescribeClientQuotasResponseQuotas, len(res.Entries))
98
99 for responseEntryIdx, responseEntry := range res.Entries {
100 responseEntities := make([]DescribeClientQuotasEntity, len(responseEntry.Entities))
101 for responseEntityIdx, responseEntity := range responseEntry.Entities {
102 responseEntities[responseEntityIdx] = DescribeClientQuotasEntity{
103 EntityType: responseEntity.EntityType,
104 EntityName: responseEntity.EntityName,
105 }
106 }
107
108 responseValues := make([]DescribeClientQuotasValue, len(responseEntry.Values))
109 for responseValueIdx, responseValue := range responseEntry.Values {
110 responseValues[responseValueIdx] = DescribeClientQuotasValue{
111 Key: responseValue.Key,
112 Value: responseValue.Value,
113 }
114 }
115 responseEntries[responseEntryIdx] = DescribeClientQuotasResponseQuotas{
116 Entities: responseEntities,
117 Values: responseValues,
118 }
119 }
120 ret := &DescribeClientQuotasResponse{
121 Throttle: time.Duration(res.ThrottleTimeMs),
122 Entries: responseEntries,
123 }
124
125 return ret, nil
126}

Callers 1

Calls 1

roundTripMethod · 0.95

Tested by 1