99
1010-include_lib (" amqp_client/include/amqp_client.hrl" ).
1111-include_lib (" stdlib/include/assert.hrl" ).
12+ -include_lib (" rabbitmq_ct_helpers/include/rabbit_assert.hrl" ).
1213
1314-compile (export_all ).
1415
@@ -26,11 +27,14 @@ groups() ->
2627 delete_not_found ,
2728 delete ,
2829 delete_internal ,
29- delete_internal_owner
30+ delete_internal_owner ,
31+ delete_invalid_uri ,
32+ delete_non_existent_dest_address
3033 ]},
3134 {cluster_size_2 , [], [
32- clear_param_on_different_node
33- ]}
35+ clear_param_on_different_node ,
36+ delete_invalid_uri_another_node
37+ ]}
3438 ].
3539
3640% % -------------------------------------------------------------------
@@ -148,3 +152,67 @@ clear_param_on_different_node(Config) ->
148152 status , []), " Deleted shovel still reported on node A" ),
149153 ? assertEqual ([], rabbit_ct_broker_helpers :rpc (Config , B , rabbit_shovel_status ,
150154 status , []), " Deleted shovel still reported on node B" ).
155+
156+ delete_invalid_uri (Config ) ->
157+ ok = rabbit_ct_broker_helpers :rpc (
158+ Config , 0 , rabbit_runtime_parameters , set ,
159+ [<<" /" >>, <<" shovel" >>, <<" myshovel" >>,
160+ [{<<" src-protocol" >>, <<" amqp091" >>},
161+ {<<" src-uri" >>, <<" amqp://foo" >>},
162+ {<<" src-queue" >>, <<" src" >>},
163+ {<<" dest-protocol" >>, <<" amqp091" >>},
164+ {<<" dest-uri" >>, shovel_test_utils :make_uri (Config , 0 )},
165+ {<<" dest-queue" >>, <<" dest" >>}],
166+ none ]),
167+ ? awaitMatch ([{{<<" /" >>, <<" myshovel" >>}, dynamic , {terminated , _ }, _ , _ }],
168+ rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_shovel_status ,
169+ status , []),
170+ 45_000 ),
171+ [A ] = rabbit_ct_broker_helpers :get_node_configs (Config , nodename ),
172+ Opts = #{node => A , vhost => <<" /" >>, force => false },
173+ ok = ? CMD :run ([<<" myshovel" >>], Opts ),
174+ [] = rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_shovel_status ,
175+ status , []).
176+
177+ delete_non_existent_dest_address (Config ) ->
178+ Uri = shovel_test_utils :make_uri (Config , 0 ),
179+ ok = rabbit_ct_broker_helpers :rpc (
180+ Config , 0 , rabbit_runtime_parameters , set ,
181+ [<<" /" >>, <<" shovel" >>, <<" myshovel" >>,
182+ [{<<" src-protocol" >>, <<" amqp091" >>},
183+ {<<" src-uri" >>, Uri },
184+ {<<" src-queue" >>, <<" src" >>},
185+ {<<" dest-protocol" >>, <<" amqp10" >>},
186+ {<<" dest-uri" >>, Uri },
187+ {<<" dest-address" >>, <<" /queues/q2" >>}],
188+ none ]),
189+ ? awaitMatch ([{{<<" /" >>, <<" myshovel" >>}, dynamic , {terminated , _ }, _ , _ }],
190+ rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_shovel_status ,
191+ status , []),
192+ 45_000 ),
193+ [A ] = rabbit_ct_broker_helpers :get_node_configs (Config , nodename ),
194+ Opts = #{node => A , vhost => <<" /" >>, force => false },
195+ ok = ? CMD :run ([<<" myshovel" >>], Opts ),
196+ [] = rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_shovel_status ,
197+ status , []).
198+
199+ delete_invalid_uri_another_node (Config ) ->
200+ ok = rabbit_ct_broker_helpers :rpc (
201+ Config , 1 , rabbit_runtime_parameters , set ,
202+ [<<" /" >>, <<" shovel" >>, <<" myshovel" >>,
203+ [{<<" src-protocol" >>, <<" amqp091" >>},
204+ {<<" src-uri" >>, <<" amqp://foo" >>},
205+ {<<" src-queue" >>, <<" src" >>},
206+ {<<" dest-protocol" >>, <<" amqp091" >>},
207+ {<<" dest-uri" >>, shovel_test_utils :make_uri (Config , 0 )},
208+ {<<" dest-queue" >>, <<" dest" >>}],
209+ none ]),
210+ ? awaitMatch ([{{<<" /" >>, <<" myshovel" >>}, dynamic , {terminated , _ }, _ , _ }],
211+ rabbit_ct_broker_helpers :rpc (Config , 1 , rabbit_shovel_status ,
212+ status , []),
213+ 45_000 ),
214+ [A , _B ] = rabbit_ct_broker_helpers :get_node_configs (Config , nodename ),
215+ Opts = #{node => A , vhost => <<" /" >>, force => false },
216+ ok = ? CMD :run ([<<" myshovel" >>], Opts ),
217+ [] = rabbit_ct_broker_helpers :rpc (Config , 1 , rabbit_shovel_status ,
218+ status , []).
0 commit comments