blob: 26c275b83d35dbf0f6c7ca2025b40acd4604cd41 [file] [log] [blame]
William Kurkianea869482019-04-09 15:16:11 -04001package sarama
2
Abhilash S.L3b494632019-07-16 15:51:09 +05303//AlterConfigsRequest is an alter config request type
William Kurkianea869482019-04-09 15:16:11 -04004type AlterConfigsRequest struct {
5 Resources []*AlterConfigsResource
6 ValidateOnly bool
7}
8
Abhilash S.L3b494632019-07-16 15:51:09 +05309//AlterConfigsResource is an alter config resource type
William Kurkianea869482019-04-09 15:16:11 -040010type AlterConfigsResource struct {
11 Type ConfigResourceType
12 Name string
13 ConfigEntries map[string]*string
14}
15
Abhilash S.L3b494632019-07-16 15:51:09 +053016func (a *AlterConfigsRequest) encode(pe packetEncoder) error {
17 if err := pe.putArrayLength(len(a.Resources)); err != nil {
William Kurkianea869482019-04-09 15:16:11 -040018 return err
19 }
20
Abhilash S.L3b494632019-07-16 15:51:09 +053021 for _, r := range a.Resources {
William Kurkianea869482019-04-09 15:16:11 -040022 if err := r.encode(pe); err != nil {
23 return err
24 }
25 }
26
Abhilash S.L3b494632019-07-16 15:51:09 +053027 pe.putBool(a.ValidateOnly)
William Kurkianea869482019-04-09 15:16:11 -040028 return nil
29}
30
Abhilash S.L3b494632019-07-16 15:51:09 +053031func (a *AlterConfigsRequest) decode(pd packetDecoder, version int16) error {
William Kurkianea869482019-04-09 15:16:11 -040032 resourceCount, err := pd.getArrayLength()
33 if err != nil {
34 return err
35 }
36
Abhilash S.L3b494632019-07-16 15:51:09 +053037 a.Resources = make([]*AlterConfigsResource, resourceCount)
38 for i := range a.Resources {
William Kurkianea869482019-04-09 15:16:11 -040039 r := &AlterConfigsResource{}
40 err = r.decode(pd, version)
41 if err != nil {
42 return err
43 }
Abhilash S.L3b494632019-07-16 15:51:09 +053044 a.Resources[i] = r
William Kurkianea869482019-04-09 15:16:11 -040045 }
46
47 validateOnly, err := pd.getBool()
48 if err != nil {
49 return err
50 }
51
Abhilash S.L3b494632019-07-16 15:51:09 +053052 a.ValidateOnly = validateOnly
William Kurkianea869482019-04-09 15:16:11 -040053
54 return nil
55}
56
Abhilash S.L3b494632019-07-16 15:51:09 +053057func (a *AlterConfigsResource) encode(pe packetEncoder) error {
58 pe.putInt8(int8(a.Type))
William Kurkianea869482019-04-09 15:16:11 -040059
Abhilash S.L3b494632019-07-16 15:51:09 +053060 if err := pe.putString(a.Name); err != nil {
William Kurkianea869482019-04-09 15:16:11 -040061 return err
62 }
63
Abhilash S.L3b494632019-07-16 15:51:09 +053064 if err := pe.putArrayLength(len(a.ConfigEntries)); err != nil {
William Kurkianea869482019-04-09 15:16:11 -040065 return err
66 }
Abhilash S.L3b494632019-07-16 15:51:09 +053067 for configKey, configValue := range a.ConfigEntries {
William Kurkianea869482019-04-09 15:16:11 -040068 if err := pe.putString(configKey); err != nil {
69 return err
70 }
71 if err := pe.putNullableString(configValue); err != nil {
72 return err
73 }
74 }
75
76 return nil
77}
78
Abhilash S.L3b494632019-07-16 15:51:09 +053079func (a *AlterConfigsResource) decode(pd packetDecoder, version int16) error {
William Kurkianea869482019-04-09 15:16:11 -040080 t, err := pd.getInt8()
81 if err != nil {
82 return err
83 }
Abhilash S.L3b494632019-07-16 15:51:09 +053084 a.Type = ConfigResourceType(t)
William Kurkianea869482019-04-09 15:16:11 -040085
86 name, err := pd.getString()
87 if err != nil {
88 return err
89 }
Abhilash S.L3b494632019-07-16 15:51:09 +053090 a.Name = name
William Kurkianea869482019-04-09 15:16:11 -040091
92 n, err := pd.getArrayLength()
93 if err != nil {
94 return err
95 }
96
97 if n > 0 {
Abhilash S.L3b494632019-07-16 15:51:09 +053098 a.ConfigEntries = make(map[string]*string, n)
William Kurkianea869482019-04-09 15:16:11 -040099 for i := 0; i < n; i++ {
100 configKey, err := pd.getString()
101 if err != nil {
102 return err
103 }
Abhilash S.L3b494632019-07-16 15:51:09 +0530104 if a.ConfigEntries[configKey], err = pd.getNullableString(); err != nil {
William Kurkianea869482019-04-09 15:16:11 -0400105 return err
106 }
107 }
108 }
109 return err
110}
111
Abhilash S.L3b494632019-07-16 15:51:09 +0530112func (a *AlterConfigsRequest) key() int16 {
William Kurkianea869482019-04-09 15:16:11 -0400113 return 33
114}
115
Abhilash S.L3b494632019-07-16 15:51:09 +0530116func (a *AlterConfigsRequest) version() int16 {
William Kurkianea869482019-04-09 15:16:11 -0400117 return 0
118}
119
Abhilash S.L3b494632019-07-16 15:51:09 +0530120func (a *AlterConfigsRequest) requiredVersion() KafkaVersion {
William Kurkianea869482019-04-09 15:16:11 -0400121 return V0_11_0_0
122}