def send_request(self, request): if request.msg_type not in zmq_names.NOTIFY_TYPES: raise zmq_publisher_base.UnsupportedSendPattern(request.msg_type) pub_socket, hosts = self._check_hosts_connections(request.target) self._send_request(pub_socket, request)
def send_request(self, request): if request.msg_type == zmq_names.CALL_TYPE: raise zmq_publisher_base.UnsupportedSendPattern(request.msg_type) self.socket.send(b'', zmq.SNDMORE) self.socket.send_pyobj(request)
def send_request(self, request): if request.msg_type != zmq_names.CALL_TYPE: raise zmq_publisher_base.UnsupportedSendPattern(request.msg_type) socket = self._connect_to_host(request.target, request.timeout) self._send_request(socket, request) return self._receive_reply(socket, request)
def send_request(self, request): if request.msg_type == zmq_names.CALL_TYPE: raise zmq_publisher_base.UnsupportedSendPattern(request.msg_type) socket = self.sockets_manager.get_socket(request.target) if request.msg_type in zmq_names.MULTISEND_TYPES: for _ in range(socket.connections_count()): self._send_message_data(socket, request) else: self._send_message_data(socket, request)
def _do_send_request(socket, request): if request.msg_type == zmq_names.CALL_TYPE: raise zmq_publisher_base.UnsupportedSendPattern( request.msg_type) envelope = request.create_envelope() socket.send(b'', zmq.SNDMORE) socket.send_pyobj(envelope, zmq.SNDMORE) socket.send_pyobj(request) LOG.debug("->[proxy:%(addr)s] Sending message_id %(message)s to " "a target %(target)s", {"message": request.message_id, "target": request.target, "addr": list(socket.connections)})
def send_request(self, multipart_message): envelope = multipart_message[zmq_names.MULTIPART_IDX_ENVELOPE] if not envelope.is_mult_send: raise zmq_publisher_base.UnsupportedSendPattern(envelope.msg_type) topic_filter = envelope.topic_filter self.socket.send(topic_filter, zmq.SNDMORE) self.socket.send(multipart_message[zmq_names.MULTIPART_IDX_BODY]) LOG.debug("Publishing message [%(topic)s] %(message_id)s to " "a target %(target)s ", {"message_id": envelope.message_id, "target": envelope.target, "topic": topic_filter})
def send_request(self, request): if request.msg_type == zmq_names.CALL_TYPE: raise zmq_publisher_base.UnsupportedSendPattern(request.msg_type) if self.conf.use_pub_sub: routing_key = self.routing_table.get_routable_host(request.target) \ if request.msg_type in zmq_names.DIRECT_TYPES else \ zmq_address.target_to_subscribe_filter(request.target) self._do_send_request(request, routing_key) else: routing_keys = \ [self.routing_table.get_routable_host(request.target)] \ if request.msg_type in zmq_names.DIRECT_TYPES else \ self.routing_table.get_all_hosts(request.target) for routing_key in routing_keys: self._do_send_request(request, routing_key)
def send_request(self, request): if request.msg_type == zmq_names.CALL_TYPE: raise zmq_publisher_base.UnsupportedSendPattern(request.msg_type) push_socket = self.outbound_sockets.get_socket(request.target) if not push_socket.connections: LOG.warning(_LW("Request %s was dropped because no connection"), request.msg_type) return if request.msg_type in zmq_names.MULTISEND_TYPES: for _ in range(push_socket.connections_count()): self._send_request(push_socket, request) else: self._send_request(push_socket, request)
def send_request(self, multipart_message): envelope = multipart_message[zmq_names.MULTIPART_IDX_ENVELOPE] if envelope.is_mult_send: raise zmq_publisher_base.UnsupportedSendPattern(envelope.msg_type) if not envelope.target_hosts: raise Exception("Target hosts are expected!") dealer_socket = self.sockets_manager.get_socket_to_hosts( envelope.target, envelope.target_hosts) self.poller.register(dealer_socket.handle, self.receive_reply) LOG.debug("Sending message %(message)s to a target %(target)s" % {"message": envelope.message_id, "target": envelope.target}) # Empty delimiter - DEALER socket specific dealer_socket.send(b'', zmq.SNDMORE) dealer_socket.send_pyobj(envelope, zmq.SNDMORE) dealer_socket.send(multipart_message[zmq_names.MULTIPART_IDX_BODY])
def send_request(self, multipart_message): envelope = multipart_message[zmq_names.MULTIPART_IDX_ENVELOPE] msg_type = envelope[zmq_names.FIELD_MSG_TYPE] target = envelope[zmq_names.FIELD_TARGET] message_id = envelope[zmq_names.FIELD_MSG_ID] if msg_type not in zmq_names.MULTISEND_TYPES: raise zmq_publisher_base.UnsupportedSendPattern(msg_type) topic_filter = zmq_address.target_to_subscribe_filter(target) self.socket.send(topic_filter, zmq.SNDMORE) self.socket.send(multipart_message[zmq_names.MULTIPART_IDX_BODY]) LOG.debug("Publishing message [%(topic)s] %(message_id)s to " "a target %(target)s " % { "message_id": message_id, "target": target, "topic": topic_filter })
def send_request(self, request): if request.msg_type == zmq_names.CALL_TYPE: raise zmq_publisher_base.UnsupportedSendPattern(request.msg_type) dealer_socket, hosts = self._check_hosts_connections(request.target) if not dealer_socket.connections: # NOTE(ozamiatin): Here we can provide # a queue for keeping messages to send them later # when some listener appears. However such approach # being more reliable will consume additional memory. LOG.warning( _LW("Request %s was dropped because no connection") % request.msg_type) return self.ack_receiver.track_socket(dealer_socket.handle) if request.msg_type in zmq_names.MULTISEND_TYPES: for _ in range(dealer_socket.connections_count()): self._send_request(dealer_socket, request) else: self._send_request(dealer_socket, request)
def send_request(self, request): if request.msg_type == zmq_names.CALL_TYPE: raise zmq_publisher_base.UnsupportedSendPattern(request.msg_type) super(DealerPublisher, self).send_request(request)
def _check_request_pattern(self, request): if request.msg_type == zmq_names.CALL_TYPE: raise zmq_publisher_base.UnsupportedSendPattern(request.msg_type)
def send_request(self, request): if request.msg_type != zmq_names.CAST_TYPE: raise zmq_publisher_base.UnsupportedSendPattern(request.msg_type) self.sender.send_request(request)
def _check_pattern(request, supported_pattern): if request.msg_type != supported_pattern: raise zmq_publisher_base.UnsupportedSendPattern( zmq_names.message_type_str(request.msg_type))