blob: 3893663cfe9768c2929730405dd62e232c05d8bd [file] [log] [blame]
Scott Baker2d897982019-09-24 11:50:08 -07001package sarama
2
3import "time"
4
Scott Baker8487c5d2019-10-18 12:49:46 -07005//AlterConfigsResponse is a reponse type for alter config
Scott Baker2d897982019-09-24 11:50:08 -07006type AlterConfigsResponse struct {
7 ThrottleTime time.Duration
8 Resources []*AlterConfigsResourceResponse
9}
10
Scott Baker8487c5d2019-10-18 12:49:46 -070011//AlterConfigsResourceResponse is a reponse type for alter config resource
Scott Baker2d897982019-09-24 11:50:08 -070012type AlterConfigsResourceResponse struct {
13 ErrorCode int16
14 ErrorMsg string
15 Type ConfigResourceType
16 Name string
17}
18
Scott Baker8487c5d2019-10-18 12:49:46 -070019func (a *AlterConfigsResponse) encode(pe packetEncoder) error {
20 pe.putInt32(int32(a.ThrottleTime / time.Millisecond))
Scott Baker2d897982019-09-24 11:50:08 -070021
Scott Baker8487c5d2019-10-18 12:49:46 -070022 if err := pe.putArrayLength(len(a.Resources)); err != nil {
Scott Baker2d897982019-09-24 11:50:08 -070023 return err
24 }
25
Scott Baker8487c5d2019-10-18 12:49:46 -070026 for i := range a.Resources {
27 pe.putInt16(a.Resources[i].ErrorCode)
28 err := pe.putString(a.Resources[i].ErrorMsg)
Scott Baker2d897982019-09-24 11:50:08 -070029 if err != nil {
30 return nil
31 }
Scott Baker8487c5d2019-10-18 12:49:46 -070032 pe.putInt8(int8(a.Resources[i].Type))
33 err = pe.putString(a.Resources[i].Name)
Scott Baker2d897982019-09-24 11:50:08 -070034 if err != nil {
35 return nil
36 }
37 }
38
39 return nil
40}
41
Scott Baker8487c5d2019-10-18 12:49:46 -070042func (a *AlterConfigsResponse) decode(pd packetDecoder, version int16) error {
Scott Baker2d897982019-09-24 11:50:08 -070043 throttleTime, err := pd.getInt32()
44 if err != nil {
45 return err
46 }
Scott Baker8487c5d2019-10-18 12:49:46 -070047 a.ThrottleTime = time.Duration(throttleTime) * time.Millisecond
Scott Baker2d897982019-09-24 11:50:08 -070048
49 responseCount, err := pd.getArrayLength()
50 if err != nil {
51 return err
52 }
53
Scott Baker8487c5d2019-10-18 12:49:46 -070054 a.Resources = make([]*AlterConfigsResourceResponse, responseCount)
Scott Baker2d897982019-09-24 11:50:08 -070055
Scott Baker8487c5d2019-10-18 12:49:46 -070056 for i := range a.Resources {
57 a.Resources[i] = new(AlterConfigsResourceResponse)
Scott Baker2d897982019-09-24 11:50:08 -070058
59 errCode, err := pd.getInt16()
60 if err != nil {
61 return err
62 }
Scott Baker8487c5d2019-10-18 12:49:46 -070063 a.Resources[i].ErrorCode = errCode
Scott Baker2d897982019-09-24 11:50:08 -070064
65 e, err := pd.getString()
66 if err != nil {
67 return err
68 }
Scott Baker8487c5d2019-10-18 12:49:46 -070069 a.Resources[i].ErrorMsg = e
Scott Baker2d897982019-09-24 11:50:08 -070070
71 t, err := pd.getInt8()
72 if err != nil {
73 return err
74 }
Scott Baker8487c5d2019-10-18 12:49:46 -070075 a.Resources[i].Type = ConfigResourceType(t)
Scott Baker2d897982019-09-24 11:50:08 -070076
77 name, err := pd.getString()
78 if err != nil {
79 return err
80 }
Scott Baker8487c5d2019-10-18 12:49:46 -070081 a.Resources[i].Name = name
Scott Baker2d897982019-09-24 11:50:08 -070082 }
83
84 return nil
85}
86
Scott Baker8487c5d2019-10-18 12:49:46 -070087func (a *AlterConfigsResponse) key() int16 {
Scott Baker2d897982019-09-24 11:50:08 -070088 return 32
89}
90
Scott Baker8487c5d2019-10-18 12:49:46 -070091func (a *AlterConfigsResponse) version() int16 {
Scott Baker2d897982019-09-24 11:50:08 -070092 return 0
93}
94
Scott Baker8487c5d2019-10-18 12:49:46 -070095func (a *AlterConfigsResponse) requiredVersion() KafkaVersion {
Scott Baker2d897982019-09-24 11:50:08 -070096 return V0_11_0_0
97}