Exemple #1
0
 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))
Exemple #2
0
 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
Exemple #3
0
 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)
Exemple #4
0
 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)
Exemple #5
0
 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)
Exemple #9
0
    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)