def subscribe_socket(self, socket_type): try: socket = self.sockets_manager.get_socket_to_routers( self._generate_identity()) self.sockets.append(socket) self.host = socket.handle.identity self.poller.register(socket, self.receive_message) return socket except zmq.ZMQError as e: LOG.error(_LE("Failed connecting to ROUTER socket %(e)s") % e) raise rpc_common.RPCException(str(e))
def get_matchmaker_backend(self, url): zmq_transport, p, matchmaker_backend = url.transport.partition('+') assert zmq_transport == 'zmq', "Needs to be zmq for this transport!" if not matchmaker_backend: return self.conf.oslo_messaging_zmq.rpc_zmq_matchmaker elif matchmaker_backend not in zmq_options.MATCHMAKER_BACKENDS: raise rpc_common.RPCException( _LE("Incorrect matchmaker backend name %(backend_name)s!" "Available names are: %(available_names)s") % {"backend_name": matchmaker_backend, "available_names": zmq_options.MATCHMAKER_BACKENDS}) return matchmaker_backend
def _connect_to_host(self, socket, host, target): address = zmq_address.get_tcp_direct_address(host) LOG.info(address) stype = zmq_names.socket_type_str(self.socket_type) try: LOG.info(_LI("Connecting %(stype)s to %(address)s for %(target)s") % {"stype": stype, "address": address, "target": target}) socket.connect(address) except zmq.ZMQError as e: errmsg = _LE("Failed connecting %(stype) to %(address)s: %(e)s")\ % (stype, address, e) LOG.error(_LE("Failed connecting %(stype) to %(address)s: %(e)s") % (stype, address, e)) raise rpc_common.RPCException(errmsg)
def connect_to_address(self, address): if address in self.connections: return stype = zmq_names.socket_type_str(self.socket_type) try: LOG.info(_LI("Connecting %(stype)s id %(id)s to %(address)s"), {"stype": stype, "id": self.handle.identity, "address": address}) self.connect(address) except zmq.ZMQError as e: errmsg = _LE("Failed connecting %(stype)s to %(address)s: %(e)s") \ % {"stype": stype, "address": address, "e": e} LOG.error(_LE("Failed connecting %(stype)s to %(address)s: %(e)s"), {"stype": stype, "address": address, "e": e}) raise rpc_common.RPCException(errmsg)
def subscribe_socket(self, socket_type): try: socket = zmq_socket.ZmqRandomPortSocket( self.conf, self.context, socket_type) self.sockets.append(socket) self.poller.register(socket, self.receive_message) LOG.info(_LI("Run %(stype)s consumer on %(addr)s:%(port)d"), {"stype": zmq_names.socket_type_str(socket_type), "addr": socket.bind_address, "port": socket.port}) 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 connect_to_address(self, address): if address in self.connections: return stype = zmq_names.socket_type_str(self.socket_type) sid = self.handle.identity try: LOG.debug("Connecting %(stype)s socket %(sid)s to %(address)s", {"stype": stype, "sid": sid, "address": address}) self.connect(address) except zmq.ZMQError as e: LOG.error(_LE("Failed connecting %(stype)s-%(sid)s to " "%(address)s: %(e)s"), {"stype": stype, "sid": sid, "address": address, "e": e}) raise rpc_common.RPCException( "Failed connecting %(stype)s-%(sid)s to %(address)s: %(e)s" % {"stype": stype, "sid": sid, "address": address, "e": e} )
def connect_to_address(self, address): stype = zmq_names.socket_type_str(self.socket_type) try: LOG.info(_LI("Connecting %(stype)s to %(address)s"), {"stype": stype, "address": address}) if six.PY3: self.setsockopt_string(zmq.IDENTITY, str(uuid.uuid1())) else: self.handle.identity = str(uuid.uuid1()) self.connect(address) except zmq.ZMQError as e: errmsg = _LE("Failed connecting %(stype) to %(address)s: %(e)s")\ % (stype, address, e) LOG.error(_LE("Failed connecting %(stype) to %(address)s: %(e)s"), (stype, address, e)) raise rpc_common.RPCException(errmsg)
def _connect_to_host(self, target, timeout=0): try: self.zmq_context = zmq.Context() socket = self.zmq_context.socket(zmq.REQ) host = self.matchmaker.get_single_host(target, timeout) connect_address = zmq_address.get_tcp_direct_address(host) LOG.info(_LI("Connecting REQ to %s") % connect_address) socket.connect(connect_address) self.outbound_sockets[str(target)] = socket return socket except zmq.ZMQError as e: errmsg = _LE("Error connecting to socket: %s") % str(e) LOG.error(_LE("Error connecting to socket: %s") % str(e)) raise rpc_common.RPCException(errmsg)
def _connect_to_host(self, target, timeout=0): try: self.zmq_context = zmq.Context() socket = self.zmq_context.socket(zmq.REQ) if six.PY3: socket.setsockopt_string(zmq.IDENTITY, str(uuid.uuid1())) else: socket.identity = str(uuid.uuid1()) connect_address = self._resolve_host_address(target, timeout) LOG.info(_LI("Connecting REQ to %s") % connect_address) socket.connect(connect_address) self.outbound_sockets[str(target)] = socket return socket, connect_address except zmq.ZMQError as e: errmsg = _LE("Error connecting to socket: %s") % str(e) LOG.error(_LE("Error connecting to socket: %s") % str(e)) raise rpc_common.RPCException(errmsg)