AlterClientQuotas sends client quotas alteration request to a kafka broker and returns the response.
(ctx context.Context, req *AlterClientQuotasRequest)
| 71 | // AlterClientQuotas sends client quotas alteration request to a kafka broker and returns |
| 72 | // the response. |
| 73 | func (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 |