blob: 3893663cfe9768c2929730405dd62e232c05d8bd [file] [log] [blame]
khenaidooac637102019-01-14 15:44:34 -05001package sarama
2
3import "time"
4
Scott Bakerbeb3cfa2019-10-01 14:44:30 -07005//AlterConfigsResponse is a reponse type for alter config
khenaidooac637102019-01-14 15:44:34 -05006type AlterConfigsResponse struct {
7 ThrottleTime time.Duration
8 Resources []*AlterConfigsResourceResponse
9}
10
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070011//AlterConfigsResourceResponse is a reponse type for alter config resource
khenaidooac637102019-01-14 15:44:34 -050012type AlterConfigsResourceResponse struct {
13 ErrorCode int16
14 ErrorMsg string
15 Type ConfigResourceType
16 Name string
17}
18
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070019func (a *AlterConfigsResponse) encode(pe packetEncoder) error {
20 pe.putInt32(int32(a.ThrottleTime / time.Millisecond))
khenaidooac637102019-01-14 15:44:34 -050021
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070022 if err := pe.putArrayLength(len(a.Resources)); err != nil {
khenaidooac637102019-01-14 15:44:34 -050023 return err
24 }
25
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070026 for i := range a.Resources {
27 pe.putInt16(a.Resources[i].ErrorCode)
28 err := pe.putString(a.Resources[i].ErrorMsg)
khenaidooac637102019-01-14 15:44:34 -050029 if err != nil {
30 return nil
31 }
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070032 pe.putInt8(int8(a.Resources[i].Type))
33 err = pe.putString(a.Resources[i].Name)
khenaidooac637102019-01-14 15:44:34 -050034 if err != nil {
35 return nil
36 }
37 }
38
39 return nil
40}
41
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070042func (a *AlterConfigsResponse) decode(pd packetDecoder, version int16) error {
khenaidooac637102019-01-14 15:44:34 -050043 throttleTime, err := pd.getInt32()
44 if err != nil {
45 return err
46 }
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070047 a.ThrottleTime = time.Duration(throttleTime) * time.Millisecond
khenaidooac637102019-01-14 15:44:34 -050048
49 responseCount, err := pd.getArrayLength()
50 if err != nil {
51 return err
52 }
53
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070054 a.Resources = make([]*AlterConfigsResourceResponse, responseCount)
khenaidooac637102019-01-14 15:44:34 -050055
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070056 for i := range a.Resources {
57 a.Resources[i] = new(AlterConfigsResourceResponse)
khenaidooac637102019-01-14 15:44:34 -050058
59 errCode, err := pd.getInt16()
60 if err != nil {
61 return err
62 }
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070063 a.Resources[i].ErrorCode = errCode
khenaidooac637102019-01-14 15:44:34 -050064
65 e, err := pd.getString()
66 if err != nil {
67 return err
68 }
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070069 a.Resources[i].ErrorMsg = e
khenaidooac637102019-01-14 15:44:34 -050070
71 t, err := pd.getInt8()
72 if err != nil {
73 return err
74 }
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070075 a.Resources[i].Type = ConfigResourceType(t)
khenaidooac637102019-01-14 15:44:34 -050076
77 name, err := pd.getString()
78 if err != nil {
79 return err
80 }
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070081 a.Resources[i].Name = name
khenaidooac637102019-01-14 15:44:34 -050082 }
83
84 return nil
85}
86
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070087func (a *AlterConfigsResponse) key() int16 {
khenaidooac637102019-01-14 15:44:34 -050088 return 32
89}
90
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070091func (a *AlterConfigsResponse) version() int16 {
khenaidooac637102019-01-14 15:44:34 -050092 return 0
93}
94
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070095func (a *AlterConfigsResponse) requiredVersion() KafkaVersion {
khenaidooac637102019-01-14 15:44:34 -050096 return V0_11_0_0
97}