Beispiel #1
0
class TestMessageBus(unittest.TestCase):

    def setUp(self):
        self.bus = MessageBus()
        self.bus._thread_constructor = dummy_threading.Thread

    def test_subscribe(self):
        pass

    def test_send_message_calls_subscriber_when_filter_matches(self):

        listener = MockMessageHandler()
        message_filter = MockMessageFilter(True)
        self.bus.subscribe(listener, message_filter)

        message = Message(type="foo", source="bar")
        self.bus.send_message(message)

        self.assertEquals(message, message_filter.message)
        self.assertEquals(message, listener.message)

    def test_send_message_does_not_call_subscriber_when_filter_does_not_match(self):

        listener = MockMessageHandler()
        message_filter = MockMessageFilter(False)
        self.bus.subscribe(listener, message_filter)

        message = Message(type="foo", source="bar")
        self.bus.send_message(message)

        self.assertEquals(message, message_filter.message)
        self.assertIsNone(listener.message)
Beispiel #2
0
 def __init__(self, configFile):
     if not os.path.isfile(configFile):
         print 'Config file: %s does not exist' % configFile
         exit(2)
     # read config file
     self.config = ConfigParser.RawConfigParser()
     self.config.read(configFile)
     self.configMode = self.config.get('Global', 'operation_mode')
     # init message bus, logger and modules
     self.messageBus = MessageBus()
     self.logger = IDSLogger(self.config, self.messageBus)
     self.registerModules()
Beispiel #3
0
import logging

from messagebus import Message
from messagebus import PatternMessageFilter
from messagebus import FunctionMessageHandler
from messagebus import MessageBus


def handle(message):
    logging.info("Handled {}".format(message))

if __name__ == "__main__":

    logging.basicConfig(level=logging.DEBUG)

    bus = MessageBus()

    listener = FunctionMessageHandler(handle)

    bus.subscribe(listener, PatternMessageFilter("foo", "bar"))

    message = Message(type="foo", source="bar", timestamp=1000, data={"a":"b"})
    bus.send_message(message)

    logging.info("Done")
Beispiel #4
0
 def setUp(self):
     self.bus = MessageBus()
     self.bus._thread_constructor = dummy_threading.Thread
Beispiel #5
0
logging.basicConfig(level=logging.DEBUG, format='%(levelname)-5s %(asctime)s %(filename)s:%(lineno)d: %(message)s')

parser = argparse.ArgumentParser(description='Read sensor readings and pass them to the messagebus.')
parser.add_argument('--mqtt-host', action="store", default=DEFAULT_MQTT_HOST, help='MQTT host to connect to')
parser.add_argument('--mqtt-port', action="store", default=DEFAULT_MQTT_PORT, help='MQTT port to connect to')
parser.add_argument('-c', '--config', action="store", default=CONFIG_ROOT, help='Path to configuration')

args = parser.parse_args()
logging.debug(args)

# Initialize the message store
message_store = MemoryMessageStore()

# Load and populate DeviceMetadataService from the config/devices
# directory. In the future, this path should be configurable
devices = DeviceRegistry()
devices.load_from_path(args.config + "/devices")

# Initialize the message bus
message_bus = MessageBus(args.mqtt_host, args.mqtt_port)

# Create context object and call init scripts
context = {}
context["messagebus"] = message_bus
context["device_registry"] = devices
context["message_store"] = message_store

load_init_scripts(args.config + "/init_scripts", context)

message_bus.connect()