/// <summary> /// Removes all messages from the queue. /// </summary> /// <param name="queue">The queue from which to delete messages.</param> public void PurgeQueue(ServiceBusQueue queue) { if (queue == null) { throw new ArgumentNullException(nameof(queue)); } Vhost vhost = _managementClient.GetVhostAsync(queue.VHost).Result; RabbitMQQueue rmqQueue = _managementClient.GetQueueAsync(queue.Name, vhost).Result; _managementClient.PurgeAsync(rmqQueue).Wait(); }
public Topology Parse(IManagementClient client, Vhost virtualHost) { var topology = new Topology(); foreach (var exchange in client.GetExchanges()) { if (!IsSystemExchange(exchange.Name)) { var modelExchange = new Model.Exchange { Name = exchange.Name, ExchangeType = ExchangeTypeMap[exchange.Type], Durable = exchange.Durable, }; MapArguments(exchange.Arguments, modelExchange.Arguments); topology.Exchanges.Add(modelExchange); } } foreach (var queue in client.GetQueues()) { if (!IsSystemQueue(queue)) { var modelQueue = new Model.Queue { Name = queue.Name, Durable = queue.Durable }; MapArguments(queue.Arguments, modelQueue.Arguments); foreach (var binding in client.GetBindingsForQueue(queue)) { if (!IsSystemBinding(binding)) { var modelBinding = new Model.Binding { Exchange = binding.Source, RoutingKey = binding.RoutingKey }; MapArguments(binding.Arguments, modelBinding.Arguments); modelQueue.Bindings.Add(modelBinding); } } topology.Queues.Add(modelQueue); } } return topology; }
public void Should_alert_if_there_are_any_error_messages_in_any_error_queues() { ManagementClient.Stub(x => x.GetVHosts()).Return(new[] { vhost }); var queue = new Queue { Messages = 1 }; ManagementClient.Stub(x => x.GetQueue("EasyNetQ_Default_Error_Queue", vhost)).Return(queue); var result = easyNetQErrorQueueCheck.RunCheck(ManagementClient); result.Alert.ShouldBeTrue(); result.Message.ShouldEqual("broker 'http://the.broker.com', VHost(s): 'my_vhost' has messages on the EasyNetQ error queue."); }
public void Should_alert_for_each_error_queue_in_each_vhost() { var vhost2 = new Vhost {Name = "my_other_vhost"}; ManagementClient.Stub(x => x.GetVHosts()).Return(new[] { vhost, vhost2 }); var queue = new Queue { Messages = 1 }; ManagementClient.Stub(x => x.GetQueue("EasyNetQ_Default_Error_Queue", vhost)).Return(queue); ManagementClient.Stub(x => x.GetQueue("EasyNetQ_Default_Error_Queue", vhost2)).Return(queue); var result = easyNetQErrorQueueCheck.RunCheck(ManagementClient); result.Alert.ShouldBeTrue(); result.Message.ShouldEqual("broker 'http://the.broker.com', VHost(s): 'my_vhost, my_other_vhost' has messages on the EasyNetQ error queue."); }
public void Should_not_alert_if_there_are_no_error_messages() { ManagementClient.Stub(x => x.GetVHosts()).Return(new[] { vhost }); var queue = new Queue { Messages = 0 }; ManagementClient.Stub(x => x.GetQueue("EasyNetQ_Default_Error_Queue", vhost)).Return(queue); var result = easyNetQErrorQueueCheck.RunCheck(ManagementClient); result.Alert.ShouldBeFalse(); }