public void Should_notice_queue_level() { var brokerModel = new Broker { Id = 101, Url = "http://mybroker/", Active = true, ContactOK = true }; var brokerStatus = new Messages.BrokerStatus { BrokerId = 101, Url = "http://mybroker/", IsResponding = true }; brokerModel.VHosts.Add(new VHost { Id = 666, Name = "/" }); brokerModel.VHosts [0].Queues.Add(new Queue { Id = 898, Name = "My.Queue" }); brokerStatus.VHosts.Add(new QueueSpy.Messages.VHost { Name = "/" }); brokerStatus.VHosts [0].Queues.Add(new QueueSpy.Messages.Queue { Name = "My.Queue" }); analyser.VisitUnchanged(brokerModel, brokerStatus, context); context.Bus.AssertWasCalled(x => x.Send(Arg <string> .Is.Anything, Arg <Messages.QueueLevel> .Is.Anything)); }
public void Should_notice_delted_queue() { var brokerModel = new Broker { Id = 101, Url = "http://mybroker/", Active = true, ContactOK = true }; var brokerStatus = new Messages.BrokerStatus { BrokerId = 101, Url = "http://mybroker/", IsResponding = true }; brokerModel.VHosts.Add(new VHost { Id = 666, Name = "/" }); brokerStatus.VHosts.Add(new QueueSpy.Messages.VHost { Name = "/" }); brokerModel.VHosts [0].Queues.Add(new Queue { Id = 898, Name = "My.Queue" }); analyser.VisitUnchanged(brokerModel, brokerStatus, context); Assert.AreEqual(EventType.QueueDeleted, brokerEventMessages [0]); }
public void Should_notice_lost_connection() { var brokerModel = new Broker { Id = 101, Url = "http://mybroker/", Active = true, ContactOK = true }; var brokerStatus = new Messages.BrokerStatus { BrokerId = 101, Url = "http://mybroker/", IsResponding = true }; brokerModel.VHosts.Add(new VHost { Id = 666, Name = "/" }); brokerStatus.VHosts.Add(new QueueSpy.Messages.VHost { Name = "/" }); brokerModel.VHosts [0].Connections.Add(new Connection { Id = 1024, Name = "my_connection" }); analyser.VisitUnchanged(brokerModel, brokerStatus, context); Assert.AreEqual(EventType.ConnectionLost, brokerEventMessages [0]); }
public void OnTimer(object state) { var brokers = dbReader.Get <Broker> ("Active = TRUE"); foreach (var broker in brokers) { logger.Log("Querying broker: {0}", broker.Url); var status = new Messages.BrokerStatus { BrokerId = broker.Id, UserId = broker.UserId, Url = broker.Url, SampledAtUtc = DateTime.UtcNow }; try { var part = BuildBrokerUrl(broker.Url); var client = new ManagementClient(part.HostPart, broker.Username, broker.Password, part.Port, true); try { var overview = client.GetOverview(); status.IsResponding = true; status.RabbitMQVersion = overview.ManagementVersion; var connections = client.GetConnections(); var channels = client.GetChannels(); foreach (var connection in connections) { var connectionMessage = new Messages.Connection { Name = connection.Name }; foreach (var property in connection.ClientProperties.PropertiesDictionary) { connectionMessage.ClientProperties.Add(new Messages.ClientProperty { Key = property.Key, Value = property.Value.ToString() }); } AddConsumersToConnection(client, channels, connectionMessage); status.GetOrCreateVHost(connection.Vhost).Connections.Add(connectionMessage); } AddQueuesToBroker(client, status); } catch (Exception e) { logger.Log("Exception in Harvester: {0}", e); status.IsResponding = false; status.ErrorMessage = string.Format("{0}: {1}", e.GetType().Name, e.Message); } } catch (UrlParseException ex) { logger.Log("UrlParseException in Harvester: {0}", ex); status.IsResponding = false; status.ErrorMessage = string.Format("{0}", ex.Message); } bus.Publish(status); } }
public void Should_notice_broker_contact_lost() { var brokerModel = new Broker { Id = 101, Url = "http://mybroker/", Active = true, ContactOK = true }; var brokerStatus = new Messages.BrokerStatus { BrokerId = 101, Url = "http://mybroker/", IsResponding = false }; analyser.VisitUnchanged(brokerModel, brokerStatus, context); Assert.AreEqual(EventType.BrokerContactLost, brokerEventMessages [0]); }
public void Should_notice_new_VHost() { var brokerModel = new Broker { Id = 101, Url = "http://mybroker/", Active = true, ContactOK = true }; var brokerStatus = new Messages.BrokerStatus { BrokerId = 101, Url = "http://mybroker/", IsResponding = true }; brokerStatus.VHosts.Add(new Messages.VHost { Name = "/" }); analyser.VisitUnchanged(brokerModel, brokerStatus, context); Assert.AreEqual(EventType.VHostCreated, brokerEventMessages [0]); }