@@ -40,6 +40,7 @@ description() ->
40
40
41
41
switches () ->
42
42
[{partitions , integer },
43
+ {binding_keys , string },
43
44
{routing_keys , string },
44
45
{max_length_bytes , string },
45
46
{max_age , string },
@@ -52,9 +53,15 @@ help_section() ->
52
53
53
54
validate ([], _Opts ) ->
54
55
{validation_failure , not_enough_args };
56
+ validate ([_Name ], #{routing_keys := _ , binding_keys := _ }) ->
57
+ {validation_failure ,
58
+ " Specify --binding-keys only." };
59
+ validate ([_Name ], #{partitions := _ , binding_keys := _ }) ->
60
+ {validation_failure ,
61
+ " Specify --partitions or --binding-keys, not both." };
55
62
validate ([_Name ], #{partitions := _ , routing_keys := _ }) ->
56
63
{validation_failure ,
57
- " Specify --partitions or routing -keys, not both." };
64
+ " Specify --partitions or --binding -keys, not both." };
58
65
validate ([_Name ], #{partitions := Partitions }) when Partitions < 1 ->
59
66
{validation_failure , " The partition number must be greater than 0" };
60
67
validate ([_Name ], Opts ) ->
@@ -128,14 +135,17 @@ validate_stream_arguments(#{initial_cluster_size := Value} = Opts) ->
128
135
validate_stream_arguments (_ ) ->
129
136
ok .
130
137
131
- merge_defaults (_Args , #{routing_keys := _V } = Opts ) ->
138
+ merge_defaults (_Args , #{binding_keys := _V } = Opts ) ->
132
139
{_Args , maps :merge (#{vhost => <<" /" >>}, Opts )};
140
+ merge_defaults (_Args , #{routing_keys := RKs } = Opts ) ->
141
+ {_Args , maps :merge (#{vhost => <<" /" >>, binding_keys => RKs },
142
+ maps :remove (routing_keys , Opts ))};
133
143
merge_defaults (_Args , Opts ) ->
134
144
{_Args , maps :merge (#{partitions => 3 , vhost => <<" /" >>}, Opts )}.
135
145
136
146
usage () ->
137
147
<<" add_super_stream <name> [--vhost <vhost>] [--partition"
138
- " s <partitions>] [--routing -keys <routing -keys>]" >>.
148
+ " s <partitions>] [--binding -keys <binding -keys>]" >>.
139
149
140
150
usage_additional () ->
141
151
[[<<" <name>" >>,
@@ -144,8 +154,8 @@ usage_additional() ->
144
154
<<" The virtual host the super stream is added to." >>],
145
155
[<<" --partitions <partitions>" >>,
146
156
<<" The number of partitions, default is 3. Mutually exclusive with --routing-keys." >>],
147
- [<<" --routing -keys <routing -keys>" >>,
148
- <<" Comma-separated list of routing keys. Mutually exclusive with --partitions." >>],
157
+ [<<" --binding -keys <binding -keys>" >>,
158
+ <<" Comma-separated list of binding keys. Mutually exclusive with --partitions." >>],
149
159
[<<" --max-length-bytes <max-length-bytes>" >>,
150
160
<<" The maximum size of partition streams, example values: 20gb, 500mb." >>],
151
161
[<<" --max-age <max-age>" >>,
@@ -184,26 +194,26 @@ run([SuperStream],
184
194
#{node := NodeName ,
185
195
vhost := VHost ,
186
196
timeout := Timeout ,
187
- routing_keys := RoutingKeysStr } =
197
+ binding_keys := BindingKeysStr } =
188
198
Opts ) ->
189
- RoutingKeys =
199
+ BindingKeys =
190
200
[rabbit_data_coercion :to_binary (
191
201
string :strip (K ))
192
202
|| K
193
203
<- string :tokens (
194
- rabbit_data_coercion :to_list (RoutingKeysStr ), " ," )],
204
+ rabbit_data_coercion :to_list (BindingKeysStr ), " ," )],
195
205
Streams =
196
206
[list_to_binary (binary_to_list (SuperStream )
197
207
++ " -"
198
208
++ binary_to_list (K ))
199
- || K <- RoutingKeys ],
209
+ || K <- BindingKeys ],
200
210
create_super_stream (NodeName ,
201
211
Timeout ,
202
212
VHost ,
203
213
SuperStream ,
204
214
Streams ,
205
215
stream_arguments (Opts ),
206
- RoutingKeys ).
216
+ BindingKeys ).
207
217
208
218
stream_arguments (Opts ) ->
209
219
stream_arguments (#{}, Opts ).
0 commit comments