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)
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)
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)
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)
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)
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)
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)
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 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))
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))
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)
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)