blob: 3893663cfe9768c2929730405dd62e232c05d8bd [file] [log] [blame]
Scott Bakered4efab2020-01-13 19:12:25 -08001package sarama
2
3import "time"
4
5//AlterConfigsResponse is a reponse type for alter config
6type AlterConfigsResponse struct {
7 ThrottleTime time.Duration
8 Resources []*AlterConfigsResourceResponse
9}
10
11//AlterConfigsResourceResponse is a reponse type for alter config resource
12type AlterConfigsResourceResponse struct {
13 ErrorCode int16
14 ErrorMsg string
15 Type ConfigResourceType
16 Name string
17}
18
19func (a *AlterConfigsResponse) encode(pe packetEncoder) error {
20 pe.putInt32(int32(a.ThrottleTime / time.Millisecond))
21
22 if err := pe.putArrayLength(len(a.Resources)); err != nil {
23 return err
24 }
25
26 for i := range a.Resources {
27 pe.putInt16(a.Resources[i].ErrorCode)
28 err := pe.putString(a.Resources[i].ErrorMsg)
29 if err != nil {
30 return nil
31 }
32 pe.putInt8(int8(a.Resources[i].Type))
33 err = pe.putString(a.Resources[i].Name)
34 if err != nil {
35 return nil
36 }
37 }
38
39 return nil
40}
41
42func (a *AlterConfigsResponse) decode(pd packetDecoder, version int16) error {
43 throttleTime, err := pd.getInt32()
44 if err != nil {
45 return err
46 }
47 a.ThrottleTime = time.Duration(throttleTime) * time.Millisecond
48
49 responseCount, err := pd.getArrayLength()
50 if err != nil {
51 return err
52 }
53
54 a.Resources = make([]*AlterConfigsResourceResponse, responseCount)
55
56 for i := range a.Resources {
57 a.Resources[i] = new(AlterConfigsResourceResponse)
58
59 errCode, err := pd.getInt16()
60 if err != nil {
61 return err
62 }
63 a.Resources[i].ErrorCode = errCode
64
65 e, err := pd.getString()
66 if err != nil {
67 return err
68 }
69 a.Resources[i].ErrorMsg = e
70
71 t, err := pd.getInt8()
72 if err != nil {
73 return err
74 }
75 a.Resources[i].Type = ConfigResourceType(t)
76
77 name, err := pd.getString()
78 if err != nil {
79 return err
80 }
81 a.Resources[i].Name = name
82 }
83
84 return nil
85}
86
87func (a *AlterConfigsResponse) key() int16 {
88 return 32
89}
90
91func (a *AlterConfigsResponse) version() int16 {
92 return 0
93}
94
95func (a *AlterConfigsResponse) requiredVersion() KafkaVersion {
96 return V0_11_0_0
97}