def _subscribe_to_topic(self): topic_filter = zmq_address.target_to_subscribe_filter(self.target) self.socket.setsockopt(zmq.SUBSCRIBE, topic_filter) LOG.debug("[%(host)s] Subscribing to topic %(filter)s", { "host": self.host, "filter": topic_filter })
def _get_routing_keys(self, request): if request.msg_type in zmq_names.DIRECT_TYPES: return [self.routing_table.get_round_robin_host(request.target)] else: return \ [zmq_address.target_to_subscribe_filter(request.target)] \ if self.conf.oslo_messaging_zmq.use_pub_sub else \ self.routing_table.get_fanout_hosts(request.target)
def _get_routing_keys(self, request): if request.msg_type in zmq_names.DIRECT_TYPES: return [self.routing_table.get_round_robin_host(request.target)] else: return \ [zmq_address.target_to_subscribe_filter(request.target)] \ if self.conf.oslo_messaging_zmq.use_pub_sub else \ self.routing_table.get_fanout_hosts(request.target)
def _get_routing_keys(self, request): try: if request.msg_type in zmq_names.DIRECT_TYPES: return [self.routing_table.get_routable_host(request.target)] else: return \ [zmq_address.target_to_subscribe_filter(request.target)] \ if self.conf.use_pub_sub else \ self.routing_table.get_all_hosts(request.target) except retrying.RetryError: return []
def _subscribe_on_target(self, target): topic_filter = zmq_address.target_to_subscribe_filter(target) if target.topic: self.socket.setsockopt(zmq.SUBSCRIBE, six.b(target.topic)) if target.server: self.socket.setsockopt(zmq.SUBSCRIBE, six.b(target.server)) if target.topic and target.server: self.socket.setsockopt(zmq.SUBSCRIBE, topic_filter) LOG.debug("[%(host)s] Subscribing to topic %(filter)s", {"host": self.socket.handle.identity, "filter": topic_filter})
def _subscribe_on_target(self, target): topic_filter = zmq_address.target_to_subscribe_filter(target) if target.topic: self.socket.setsockopt(zmq.SUBSCRIBE, six.b(target.topic)) if target.server: self.socket.setsockopt(zmq.SUBSCRIBE, six.b(target.server)) if target.topic and target.server: self.socket.setsockopt(zmq.SUBSCRIBE, topic_filter) LOG.debug("[%(host)s] Subscribing to topic %(filter)s", { "host": self.socket.handle.identity, "filter": topic_filter })
def _send_request(self, target): # Needed only in test env to give listener a chance to connect # before request fires time.sleep(1) context = {} message = {'method': 'hello-world'} self.publisher.send_request( [b'', b'', zmq_names.CAST_FANOUT_TYPE, zmq_address.target_to_subscribe_filter(target), b"0000-0000", self.dumps([context, message])])
def _send_request(self, target): # Needed only in test env to give listener a chance to connect # before request fires time.sleep(1) context = {} message = {'method': 'hello-world'} self.publisher.send_request( [zmq_names.CAST_FANOUT_TYPE, zmq_address.target_to_subscribe_filter(target), b"message", b"0000-0000", pickle.dumps(context), pickle.dumps(message)])
def _send_request(self, target): # Needed only in test env to give listener a chance to connect # before request fires time.sleep(1) context = {} message = {'method': 'hello-world'} self.publisher.send_request([ b"reply_id", b'', six.b(zmq_version.MESSAGE_VERSION), six.b(str(zmq_names.CAST_FANOUT_TYPE)), zmq_address.target_to_subscribe_filter(target), b"message_id", self.dumps([context, message]) ])
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_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) 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, target): # Needed only in test env to give listener a chance to connect # before request fires time.sleep(1) context = {} message = {'method': 'hello-world'} self.publisher.send_request( [b"reply_id", b'', six.b(zmq_version.MESSAGE_VERSION), six.b(str(zmq_names.CAST_FANOUT_TYPE)), zmq_address.target_to_subscribe_filter(target), b"message_id", self.dumps([context, message])] )
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, 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) 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.socket.send(b'', zmq.SNDMORE) self.socket.send(six.b(str(request.msg_type)), zmq.SNDMORE) self.socket.send(six.b(routing_key), zmq.SNDMORE) self.socket.send(six.b(request.message_id), zmq.SNDMORE) self.socket.send_pyobj(request.context, zmq.SNDMORE) self.socket.send_pyobj(request.message) LOG.debug("->[proxy:%(addr)s] Sending message_id %(message)s to " "a target %(target)s", {"message": request.message_id, "target": request.target, "addr": list(self.socket.connections)})
def _generate_identity(self): return six.b(self.conf.oslo_messaging_zmq.rpc_zmq_host + '/') + \ zmq_address.target_to_subscribe_filter(self.target) + \ six.b('/' + str(uuid.uuid4()))
def topic_filter(self): return zmq_address.target_to_subscribe_filter(self._target)
def _generate_identity(self): return six.b(self.conf.oslo_messaging_zmq.rpc_zmq_host + '/') + \ zmq_address.target_to_subscribe_filter(self.target) + \ six.b('/' + str(uuid.uuid4()))
def _subscribe_to_topic(self): topic_filter = zmq_address.target_to_subscribe_filter(self.target) self.socket.setsockopt(zmq.SUBSCRIBE, topic_filter) LOG.debug("[%(host)s] Subscribing to topic %(filter)s", {"host": self.host, "filter": topic_filter})
def send_request(self, socket, request): request.routing_key = \ zmq_address.target_to_subscribe_filter(request.target) self.sender.send(socket, request)
def send_request(self, socket, request): request.routing_key = \ zmq_address.target_to_subscribe_filter(request.target) self.sender.send(socket, request)