Exemplo n.º 1
0
    def __init__(self, conf, context, matchmaker):
        self.conf = conf
        self.context = context
        super(UniversalQueueProxy, self).__init__()
        self.matchmaker = matchmaker
        self.poller = zmq_async.get_poller(zmq_concurrency='native')

        self.fe_router_socket = zmq_socket.ZmqRandomPortSocket(
            conf, context, zmq.ROUTER)
        self.be_router_socket = zmq_socket.ZmqRandomPortSocket(
            conf, context, zmq.ROUTER)

        self.poller.register(self.fe_router_socket.handle,
                             self._receive_in_request)
        self.poller.register(self.be_router_socket.handle,
                             self._receive_in_request)

        self.fe_router_address = zmq_address.combine_address(
            self.conf.rpc_zmq_host, self.fe_router_socket.port)
        self.be_router_address = zmq_address.combine_address(
            self.conf.rpc_zmq_host, self.fe_router_socket.port)

        self.pub_publisher = zmq_pub_publisher.PubPublisherProxy(
            conf, matchmaker)

        self.matchmaker.register_publisher(
            (self.pub_publisher.host, self.fe_router_address))
        LOG.info(_LI("[PUB:%(pub)s, ROUTER:%(router)s] Run PUB publisher"),
                 {"pub": self.pub_publisher.host,
                  "router": self.fe_router_address})
        self.matchmaker.register_router(self.be_router_address)
        LOG.info(_LI("[Backend ROUTER:%(router)s] Run ROUTER"),
                 {"router": self.be_router_address})
    def __init__(self, conf, context, matchmaker):
        self.conf = conf
        self.context = context
        super(UniversalQueueProxy, self).__init__()
        self.matchmaker = matchmaker
        self.poller = zmq_async.get_poller()

        self.fe_router_socket = zmq_socket.ZmqRandomPortSocket(
            conf, context, zmq.ROUTER)
        self.be_router_socket = zmq_socket.ZmqRandomPortSocket(
            conf, context, zmq.ROUTER)

        self.poller.register(self.fe_router_socket.handle,
                             self._receive_in_request)
        self.poller.register(self.be_router_socket.handle,
                             self._receive_in_request)

        self.fe_router_address = zmq_address.combine_address(
            self.conf.rpc_zmq_host, self.fe_router_socket.port)
        self.be_router_address = zmq_address.combine_address(
            self.conf.rpc_zmq_host, self.be_router_socket.port)

        self.pub_publisher = zmq_pub_publisher.PubPublisherProxy(
            conf, matchmaker)

        self._router_updater = RouterUpdater(
            conf, matchmaker, self.pub_publisher.host, self.fe_router_address,
            self.be_router_address)
 def __init__(self, conf, poller, server):
     super(RouterConsumer, self).__init__(conf, poller, server, zmq.ROUTER)
     self.matchmaker = server.matchmaker
     self.targets = []
     self.host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                             self.port)
     LOG.info("[%s] Run ROUTER consumer" % self.host)
 def __init__(self, conf, poller, server):
     super(PullConsumer, self).__init__(conf, poller, server, zmq.PULL)
     self.matchmaker = server.matchmaker
     self.host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                             self.port)
     self.targets = zmq_consumer_base.TargetsManager(
         conf, self.matchmaker, self.host, zmq.PULL)
     LOG.info(_LI("[%s] Run PULL consumer"), self.host)
Exemplo n.º 5
0
    def __init__(self, conf, context, socket_type, host, port,
                 high_watermark=0):
        super(ZmqFixedPortSocket, self).__init__(
            conf, context, socket_type, immediate=False,
            high_watermark=high_watermark)
        self.connect_address = zmq_address.combine_address(host, port)
        self.bind_address = zmq_address.get_tcp_direct_address(
            zmq_address.combine_address(conf.rpc_zmq_bind_address, port))
        self.host = host
        self.port = port

        try:
            self.handle.bind(self.bind_address)
        except zmq.ZMQError as e:
            LOG.exception(e)
            LOG.error(_LE("Chosen port %d is being busy.") % self.port)
            raise ZmqPortBusy(port_number=port)
 def __init__(self, conf, poller, server):
     super(RouterConsumer, self).__init__(conf, poller, server, zmq.ROUTER)
     self.matchmaker = server.matchmaker
     self.host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                             self.port)
     self.targets = zmq_consumer_base.TargetsManager(
         conf, self.matchmaker, self.host, zmq.ROUTER)
     LOG.info(_LI("[%s] Run ROUTER consumer"), self.host)
Exemplo n.º 7
0
    def __init__(self, conf, context, socket_type, host, port,
                 high_watermark=0, identity=None):
        super(ZmqFixedPortSocket, self).__init__(
            conf, context, socket_type, immediate=False,
            high_watermark=high_watermark, identity=identity)
        self.connect_address = zmq_address.combine_address(host, port)
        self.bind_address = zmq_address.get_tcp_direct_address(
            zmq_address.combine_address(
                conf.oslo_messaging_zmq.rpc_zmq_bind_address, port))
        self.host = host
        self.port = port

        try:
            self.handle.bind(self.bind_address)
        except zmq.ZMQError as e:
            LOG.exception(e)
            LOG.error(_LE("Chosen port %d is being busy.") % self.port)
            raise ZmqPortBusy(port_number=port)
Exemplo n.º 8
0
    def __init__(self, conf, matchmaker):
        super(PubPublisherProxy, self).__init__()
        self.conf = conf
        self.zmq_context = zmq.Context()
        self.matchmaker = matchmaker

        self.socket = zmq_socket.ZmqRandomPortSocket(self.conf, self.zmq_context, zmq.PUB)

        self.host = zmq_address.combine_address(self.conf.rpc_zmq_host, self.socket.port)
Exemplo n.º 9
0
    def __init__(self, conf, matchmaker):
        super(PubPublisherProxy, self).__init__()
        self.conf = conf
        self.zmq_context = zmq.Context()
        self.matchmaker = matchmaker

        self.socket = zmq_socket.ZmqRandomPortSocket(
            self.conf, self.zmq_context, zmq.PUB)

        self.host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                                self.socket.port)
Exemplo n.º 10
0
    def listen(self, target):

        consumer = self.rpc_consumer
        consumer.listen(target)

        LOG.info("Listen to target %s on %s:%d" %
                 (target, consumer.address, consumer.port))

        host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                           consumer.port)
        self.matchmaker.register(target=target, hostname=host)
Exemplo n.º 11
0
    def listen(self, target):

        consumer = self.rpc_consumer
        consumer.listen(target)

        LOG.info("Listen to target %s on %s:%d" %
                 (target, consumer.address, consumer.port))

        host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                           consumer.port)
        self.matchmaker.register(target=target,
                                 hostname=host)
Exemplo n.º 12
0
    def __init__(self, conf, context, matchmaker):
        super(UniversalQueueProxy, self).__init__(conf, context)
        self.matchmaker = matchmaker
        self.poller = zmq_async.get_poller(zmq_concurrency='native')

        self.router_socket = zmq_socket.ZmqRandomPortSocket(
            conf, context, zmq.ROUTER)

        self.poller.register(self.router_socket.handle,
                             self._receive_in_request)

        self.router_address = zmq_address.combine_address(
            self.conf.rpc_zmq_host, self.router_socket.port)
Exemplo n.º 13
0
    def listen_notification(self, targets_and_priorities):

        consumer = self.notify_consumer

        LOG.info("Listen for notifications on %s:%d"
                 % (consumer.address, consumer.port))

        for target, priority in targets_and_priorities:
            host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                               consumer.port)
            t = copy.deepcopy(target)
            t.topic = target.topic + '.' + priority
            self.matchmaker.register(target=t, hostname=host)
            consumer.listen(t)
Exemplo n.º 14
0
    def listen_notification(self, targets_and_priorities):

        consumer = self.notify_consumer

        LOG.info("Listen for notifications on %s:%d" %
                 (consumer.address, consumer.port))

        for target, priority in targets_and_priorities:
            host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                               consumer.port)
            t = copy.deepcopy(target)
            t.topic = target.topic + '.' + priority
            self.matchmaker.register(target=t, hostname=host)
            consumer.listen(t)
    def __init__(self, conf, matchmaker, context):
        self.conf = conf
        self.matchmaker = matchmaker
        self.context = context
        self._ready = None

        #  NOTE(ozamiatin): May be used for heartbeats when we
        #  implement them
        self.sync_socket = zmq_socket.ZmqRandomPortSocket(
            self.conf, self.context, zmq.PULL)
        self.poller = zmq_async.get_poller()
        self.poller.register(self.sync_socket)

        self.sync_host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                                     self.sync_socket.port)
    def __init__(self, conf, matchmaker, context):
        self.conf = conf
        self.matchmaker = matchmaker
        self.context = context
        self._ready = None

        #  NOTE(ozamiatin): May be used for heartbeats when we
        #  implement them
        self.sync_socket = zmq_socket.ZmqRandomPortSocket(
            self.conf, self.context, zmq.PULL)
        self.poller = zmq_async.get_poller()
        self.poller.register(self.sync_socket)

        self.sync_host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                                     self.sync_socket.port)
Exemplo n.º 17
0
 def subscribe_socket(self, socket_type):
     try:
         socket = zmq_socket.ZmqRandomPortSocket(self.conf, self.context, socket_type)
         self.sockets.append(socket)
         LOG.debug(
             "Run %(stype)s consumer on %(addr)s:%(port)d",
             {"stype": zmq_names.socket_type_str(socket_type), "addr": socket.bind_address, "port": socket.port},
         )
         self.host = zmq_address.combine_address(self.conf.rpc_zmq_host, socket.port)
         self.poller.register(socket, self.receive_message)
         return socket
     except zmq.ZMQError as e:
         errmsg = _LE("Failed binding to port %(port)d: %(e)s") % (self.port, e)
         LOG.error(_LE("Failed binding to port %(port)d: %(e)s"), (self.port, e))
         raise rpc_common.RPCException(errmsg)
    def __init__(self, conf, matchmaker):
        super(PubPublisherProxy, self).__init__(conf)
        self.matchmaker = matchmaker

        self.socket = zmq_socket.ZmqRandomPortSocket(
            self.conf, self.zmq_context, zmq.PUB)

        self.host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                                self.socket.port)

        self.sync_channel = SyncChannel(conf, matchmaker, self.zmq_context)

        LOG.info(_LI("[PUB:%(pub)s, PULL:%(pull)s] Run PUB publisher") %
                 {"pub": self.host,
                  "pull": self.sync_channel.sync_host})

        self.matchmaker.register_publisher(
            (self.host, self.sync_channel.sync_host))
Exemplo n.º 19
0
 def __init__(self, conf, context, socket_type, host=None,
              high_watermark=0):
     super(ZmqRandomPortSocket, self).__init__(
         conf, context, socket_type, immediate=False,
         high_watermark=high_watermark)
     self.bind_address = zmq_address.get_tcp_random_address(self.conf)
     if host is None:
         host = conf.rpc_zmq_host
     try:
         self.port = self.handle.bind_to_random_port(
             self.bind_address,
             min_port=conf.rpc_zmq_min_port,
             max_port=conf.rpc_zmq_max_port,
             max_tries=conf.rpc_zmq_bind_port_retries)
         self.connect_address = zmq_address.combine_address(host, self.port)
     except zmq.ZMQBindError:
         LOG.error(_LE("Random ports range exceeded!"))
         raise ZmqPortBusy(port_number=0)
    def __init__(self, conf, matchmaker):
        super(PubPublisherProxy, self).__init__(conf)
        self.matchmaker = matchmaker

        self.socket = zmq_socket.ZmqRandomPortSocket(self.conf,
                                                     self.zmq_context, zmq.PUB)

        self.host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                                self.socket.port)

        self.sync_channel = SyncChannel(conf, matchmaker, self.zmq_context)

        LOG.info(_LI("[PUB:%(pub)s, PULL:%(pull)s] Run PUB publisher"), {
            "pub": self.host,
            "pull": self.sync_channel.sync_host
        })

        self.matchmaker.register_publisher(
            (self.host, self.sync_channel.sync_host))
Exemplo n.º 21
0
 def subscribe_socket(self, socket_type):
     try:
         socket = zmq_socket.ZmqRandomPortSocket(self.conf, self.context,
                                                 socket_type)
         self.sockets.append(socket)
         LOG.debug(
             "Run %(stype)s consumer on %(addr)s:%(port)d", {
                 "stype": zmq_names.socket_type_str(socket_type),
                 "addr": socket.bind_address,
                 "port": socket.port
             })
         self.host = zmq_address.combine_address(
             self.conf.oslo_messaging_zmq.rpc_zmq_host, socket.port)
         self.poller.register(socket, self.receive_request)
         return socket
     except zmq.ZMQError as e:
         errmsg = _LE("Failed binding to port %(port)d: %(e)s")\
             % (self.port, e)
         LOG.error(_LE("Failed binding to port %(port)d: %(e)s"),
                   (self.port, e))
         raise rpc_common.RPCException(errmsg)
Exemplo n.º 22
0
 def __init__(self, conf, poller, server):
     super(RouterConsumer, self).__init__(conf, poller, server, zmq.ROUTER)
     self.matchmaker = server.matchmaker
     self.targets = []
     self.host = zmq_address.combine_address(self.conf.rpc_zmq_host,
                                             self.port)