blob: 3893663cfe9768c2929730405dd62e232c05d8bd [file] [log] [blame]
William Kurkianea869482019-04-09 15:16:11 -04001package sarama
2
3import "time"
4
Abhilash S.L3b494632019-07-16 15:51:09 +05305//AlterConfigsResponse is a reponse type for alter config
William Kurkianea869482019-04-09 15:16:11 -04006type AlterConfigsResponse struct {
7 ThrottleTime time.Duration
8 Resources []*AlterConfigsResourceResponse
9}
10
Abhilash S.L3b494632019-07-16 15:51:09 +053011//AlterConfigsResourceResponse is a reponse type for alter config resource
William Kurkianea869482019-04-09 15:16:11 -040012type AlterConfigsResourceResponse struct {
13 ErrorCode int16
14 ErrorMsg string
15 Type ConfigResourceType
16 Name string
17}
18
Abhilash S.L3b494632019-07-16 15:51:09 +053019func (a *AlterConfigsResponse) encode(pe packetEncoder) error {
20 pe.putInt32(int32(a.ThrottleTime / time.Millisecond))
William Kurkianea869482019-04-09 15:16:11 -040021
Abhilash S.L3b494632019-07-16 15:51:09 +053022 if err := pe.putArrayLength(len(a.Resources)); err != nil {
William Kurkianea869482019-04-09 15:16:11 -040023 return err
24 }
25
Abhilash S.L3b494632019-07-16 15:51:09 +053026 for i := range a.Resources {
27 pe.putInt16(a.Resources[i].ErrorCode)
28 err := pe.putString(a.Resources[i].ErrorMsg)
William Kurkianea869482019-04-09 15:16:11 -040029 if err != nil {
30 return nil
31 }
Abhilash S.L3b494632019-07-16 15:51:09 +053032 pe.putInt8(int8(a.Resources[i].Type))
33 err = pe.putString(a.Resources[i].Name)
William Kurkianea869482019-04-09 15:16:11 -040034 if err != nil {
35 return nil
36 }
37 }
38
39 return nil
40}
41
Abhilash S.L3b494632019-07-16 15:51:09 +053042func (a *AlterConfigsResponse) decode(pd packetDecoder, version int16) error {
William Kurkianea869482019-04-09 15:16:11 -040043 throttleTime, err := pd.getInt32()
44 if err != nil {
45 return err
46 }
Abhilash S.L3b494632019-07-16 15:51:09 +053047 a.ThrottleTime = time.Duration(throttleTime) * time.Millisecond
William Kurkianea869482019-04-09 15:16:11 -040048
49 responseCount, err := pd.getArrayLength()
50 if err != nil {
51 return err
52 }
53
Abhilash S.L3b494632019-07-16 15:51:09 +053054 a.Resources = make([]*AlterConfigsResourceResponse, responseCount)
William Kurkianea869482019-04-09 15:16:11 -040055
Abhilash S.L3b494632019-07-16 15:51:09 +053056 for i := range a.Resources {
57 a.Resources[i] = new(AlterConfigsResourceResponse)
William Kurkianea869482019-04-09 15:16:11 -040058
59 errCode, err := pd.getInt16()
60 if err != nil {
61 return err
62 }
Abhilash S.L3b494632019-07-16 15:51:09 +053063 a.Resources[i].ErrorCode = errCode
William Kurkianea869482019-04-09 15:16:11 -040064
65 e, err := pd.getString()
66 if err != nil {
67 return err
68 }
Abhilash S.L3b494632019-07-16 15:51:09 +053069 a.Resources[i].ErrorMsg = e
William Kurkianea869482019-04-09 15:16:11 -040070
71 t, err := pd.getInt8()
72 if err != nil {
73 return err
74 }
Abhilash S.L3b494632019-07-16 15:51:09 +053075 a.Resources[i].Type = ConfigResourceType(t)
William Kurkianea869482019-04-09 15:16:11 -040076
77 name, err := pd.getString()
78 if err != nil {
79 return err
80 }
Abhilash S.L3b494632019-07-16 15:51:09 +053081 a.Resources[i].Name = name
William Kurkianea869482019-04-09 15:16:11 -040082 }
83
84 return nil
85}
86
Abhilash S.L3b494632019-07-16 15:51:09 +053087func (a *AlterConfigsResponse) key() int16 {
William Kurkianea869482019-04-09 15:16:11 -040088 return 32
89}
90
Abhilash S.L3b494632019-07-16 15:51:09 +053091func (a *AlterConfigsResponse) version() int16 {
William Kurkianea869482019-04-09 15:16:11 -040092 return 0
93}
94
Abhilash S.L3b494632019-07-16 15:51:09 +053095func (a *AlterConfigsResponse) requiredVersion() KafkaVersion {
William Kurkianea869482019-04-09 15:16:11 -040096 return V0_11_0_0
97}