cubefs

Форк
0
/
alter_configs_request.go 
126 строк · 2.4 Кб
1
package sarama
2

3
// AlterConfigsRequest is an alter config request type
4
type AlterConfigsRequest struct {
5
	Resources    []*AlterConfigsResource
6
	ValidateOnly bool
7
}
8

9
// AlterConfigsResource is an alter config resource type
10
type AlterConfigsResource struct {
11
	Type          ConfigResourceType
12
	Name          string
13
	ConfigEntries map[string]*string
14
}
15

16
func (a *AlterConfigsRequest) encode(pe packetEncoder) error {
17
	if err := pe.putArrayLength(len(a.Resources)); err != nil {
18
		return err
19
	}
20

21
	for _, r := range a.Resources {
22
		if err := r.encode(pe); err != nil {
23
			return err
24
		}
25
	}
26

27
	pe.putBool(a.ValidateOnly)
28
	return nil
29
}
30

31
func (a *AlterConfigsRequest) decode(pd packetDecoder, version int16) error {
32
	resourceCount, err := pd.getArrayLength()
33
	if err != nil {
34
		return err
35
	}
36

37
	a.Resources = make([]*AlterConfigsResource, resourceCount)
38
	for i := range a.Resources {
39
		r := &AlterConfigsResource{}
40
		err = r.decode(pd, version)
41
		if err != nil {
42
			return err
43
		}
44
		a.Resources[i] = r
45
	}
46

47
	validateOnly, err := pd.getBool()
48
	if err != nil {
49
		return err
50
	}
51

52
	a.ValidateOnly = validateOnly
53

54
	return nil
55
}
56

57
func (a *AlterConfigsResource) encode(pe packetEncoder) error {
58
	pe.putInt8(int8(a.Type))
59

60
	if err := pe.putString(a.Name); err != nil {
61
		return err
62
	}
63

64
	if err := pe.putArrayLength(len(a.ConfigEntries)); err != nil {
65
		return err
66
	}
67
	for configKey, configValue := range a.ConfigEntries {
68
		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

79
func (a *AlterConfigsResource) decode(pd packetDecoder, version int16) error {
80
	t, err := pd.getInt8()
81
	if err != nil {
82
		return err
83
	}
84
	a.Type = ConfigResourceType(t)
85

86
	name, err := pd.getString()
87
	if err != nil {
88
		return err
89
	}
90
	a.Name = name
91

92
	n, err := pd.getArrayLength()
93
	if err != nil {
94
		return err
95
	}
96

97
	if n > 0 {
98
		a.ConfigEntries = make(map[string]*string, n)
99
		for i := 0; i < n; i++ {
100
			configKey, err := pd.getString()
101
			if err != nil {
102
				return err
103
			}
104
			if a.ConfigEntries[configKey], err = pd.getNullableString(); err != nil {
105
				return err
106
			}
107
		}
108
	}
109
	return err
110
}
111

112
func (a *AlterConfigsRequest) key() int16 {
113
	return 33
114
}
115

116
func (a *AlterConfigsRequest) version() int16 {
117
	return 0
118
}
119

120
func (a *AlterConfigsRequest) headerVersion() int16 {
121
	return 1
122
}
123

124
func (a *AlterConfigsRequest) requiredVersion() KafkaVersion {
125
	return V0_11_0_0
126
}
127

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.