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

Method AlterClientQuotas

alterclientquotas.go:73–131  ·  view source on GitHub ↗

AlterClientQuotas sends client quotas alteration request to a kafka broker and returns the response.

(ctx context.Context, req *AlterClientQuotasRequest)

Source from the content-addressed store, hash-verified

71// AlterClientQuotas sends client quotas alteration request to a kafka broker and returns
72// the response.
73func (c *Client) AlterClientQuotas(ctx context.Context, req *AlterClientQuotasRequest) (*AlterClientQuotasResponse, error) {
74 entries := make([]alterclientquotas.Entry, len(req.Entries))
75
76 for entryIdx, entry := range req.Entries {
77 entities := make([]alterclientquotas.Entity, len(entry.Entities))
78 for entityIdx, entity := range entry.Entities {
79 entities[entityIdx] = alterclientquotas.Entity{
80 EntityType: entity.EntityType,
81 EntityName: entity.EntityName,
82 }
83 }
84
85 ops := make([]alterclientquotas.Ops, len(entry.Ops))
86 for opsIdx, op := range entry.Ops {
87 ops[opsIdx] = alterclientquotas.Ops{
88 Key: op.Key,
89 Value: op.Value,
90 Remove: op.Remove,
91 }
92 }
93
94 entries[entryIdx] = alterclientquotas.Entry{
95 Entities: entities,
96 Ops: ops,
97 }
98 }
99
100 m, err := c.roundTrip(ctx, req.Addr, &alterclientquotas.Request{
101 Entries: entries,
102 ValidateOnly: req.ValidateOnly,
103 })
104 if err != nil {
105 return nil, fmt.Errorf("kafka.(*Client).AlterClientQuotas: %w", err)
106 }
107
108 res := m.(*alterclientquotas.Response)
109 responseEntries := make([]AlterClientQuotaResponseQuotas, len(res.Results))
110
111 for responseEntryIdx, responseEntry := range res.Results {
112 responseEntities := make([]AlterClientQuotaEntity, len(responseEntry.Entities))
113 for responseEntityIdx, responseEntity := range responseEntry.Entities {
114 responseEntities[responseEntityIdx] = AlterClientQuotaEntity{
115 EntityType: responseEntity.EntityType,
116 EntityName: responseEntity.EntityName,
117 }
118 }
119
120 responseEntries[responseEntryIdx] = AlterClientQuotaResponseQuotas{
121 Error: makeError(responseEntry.ErrorCode, responseEntry.ErrorMessage),
122 Entities: responseEntities,
123 }
124 }
125 ret := &AlterClientQuotasResponse{
126 Throttle: makeDuration(res.ThrottleTimeMs),
127 Entries: responseEntries,
128 }
129
130 return ret, nil

Callers 1

Calls 3

roundTripMethod · 0.95
makeErrorFunction · 0.85
makeDurationFunction · 0.85

Tested by 1