)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1065c9c7a957d44172e84d6eccc6182e1952fffa","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4ac34701_626d833f","updated":"2026-10-07 03:39:33.000000000","message":"A few suggestions about testing. The logic update looks good.\n\n\nAlso one question. I saw you also proposed adding ttl for these queues in a separate change and that may ease the problem. However I assume you still need this to delete these queues in more timely manner. Is that correct understanding ?","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"4f6bceb347aa33a7f7b3d82805c77d9739b765e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a026473b_4dbaabcf","in_reply_to":"4ac34701_626d833f","updated":"2026-10-09 02:49:33.000000000","message":"Yes. The TTL proposal expires unused per-server queues after the configured delay, but deliberately leaves the shared topic queue unchanged. This API lets a caller delete a permanently retired resource-specific topic and its server queue immediately after deleting that resource. The two mechanisms are complementary.","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6b71f5116a54a6e7553a4c124f1a99110abbc316","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bc4ed576_8b5ec128","in_reply_to":"a026473b_4dbaabcf","updated":"2026-10-09 03:08:16.000000000","message":"Understood.Thanks","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"bac67fc4a9765523242ae8f5bb9177e192280039","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"756cb375_3417b095","updated":"2026-10-09 01:21:41.000000000","message":"Could you please use native gerrit feature to reply to each comment ? I\u0027ve seen a lot of changes where a legacy api has been used by some AI tools which makes it quite hard to review which comments are addressed. The same comment applies to the other you proposed.","commit_id":"4ae545fa946581516090533172b0e6945c753c36"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"118686b87342d7a54e85e2c50aff5dde797863a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a6602253_966597bf","updated":"2026-10-09 03:27:41.000000000","message":"I updated the release note but found a problem with the current naming. Sorry that I noticed it late. Could you again check my comments inline ?","commit_id":"4ae545fa946581516090533172b0e6945c753c36"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6b71f5116a54a6e7553a4c124f1a99110abbc316","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"edd2c0be_580cdba5","updated":"2026-10-09 03:08:16.000000000","message":"The updated version looks good to me. Let me try updating the release note to distinguish generic part and driver description. I\u0027ll update the change by my end soon.","commit_id":"4ae545fa946581516090533172b0e6945c753c36"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6b71f5116a54a6e7553a4c124f1a99110abbc316","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"033fa4aa_5b065218","in_reply_to":"4b423e4b_679e7294","updated":"2026-10-09 03:08:16.000000000","message":"Thanks. That saves our life really.","commit_id":"4ae545fa946581516090533172b0e6945c753c36"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"ff92f544f8db8641024506070a2ead4211586632","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4b423e4b_679e7294","in_reply_to":"756cb375_3417b095","updated":"2026-10-09 02:49:34.000000000","message":"Understood, and sorry for the summary-only replies. I have now replied in the original comment threads on both changes, identifying the changes made in patch set 2. I will keep subsequent responses threaded as well.","commit_id":"4ae545fa946581516090533172b0e6945c753c36"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"7b0ca3046ea7b22f2590f270a7d13ca8452942e6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"54380b12_b0dade05","updated":"2026-10-10 20:58:26.000000000","message":"Hey, thank you for this patch.\nI\u0027d like to understand something, if you use rabbitmq, why not relying on policies to perform the deletion in an automated way on rabbitmq server side?","commit_id":"3db137c3d051e13d5b4918ad571c1be9a8ef4fd4"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"8e750a1aa32dbe940ffcb040505af8713afc2090","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1ac97cd5_42b14e6e","updated":"2026-10-09 17:56:50.000000000","message":"to highlight my previous comment.","commit_id":"3db137c3d051e13d5b4918ad571c1be9a8ef4fd4"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"5ce303481e0cd4482027ba710e7199456a1867e1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b4538c4c_04b44eb5","in_reply_to":"54380b12_b0dade05","updated":"2026-10-20 07:40:22.000000000","message":"Thanks. A policy works when the operator can tell from a queue\u0027s name and its idle time that it is no longer needed, and for most RPC topics that is enough. Here only the application knows it: Trove\u0027s guestagent.\u003cinstance id\u003e queues sit idle for as long as an instance is shut off or its agent is down, and casts queued for it then must survive; the queues become garbage at the moment the instance is deleted, which the broker cannot see. An expires policy long enough to be safe for a stopped instance keeps the queues of a deleted one for just as long, and every deployment has to write one matching each application\u0027s naming. RabbitMQ also applies only one policy per queue, so an expiry policy for these topics has to repeat whatever the operator\u0027s existing policy for them sets. With this API the service that deletes the resource removes its queues right then, with no broker-side configuration. The TTL in https://review.opendev.org/c/openstack/oslo.messaging/+/1008824 is the time-based, opt-in case; the two are meant to complement each other.","commit_id":"3db137c3d051e13d5b4918ad571c1be9a8ef4fd4"}],"oslo_messaging/_drivers/amqpdriver.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"118686b87342d7a54e85e2c50aff5dde797863a6","unresolved":true,"context_lines":[{"line_number":958,"context_line":"            listener, batch_size, batch_timeout"},{"line_number":959,"context_line":"        )"},{"line_number":960,"context_line":""},{"line_number":961,"context_line":"    def delete_rpc_server_queues(self, target, retry\u003dNone):"},{"line_number":962,"context_line":"        # The queues listen() declares: the topic\u0027s, and the server\u0027s. Fanout"},{"line_number":963,"context_line":"        # queues are left to expire (rabbit_transient_queues_ttl)."},{"line_number":964,"context_line":"        queues \u003d [target.topic]"}],"source_content_type":"text/x-python","patch_set":2,"id":"4e42a75f_792bb7c5","line":961,"range":{"start_line":961,"start_character":8,"end_line":961,"end_character":32},"updated":"2026-10-09 03:27:41.000000000","message":"Maybe `cleanup_listen` can be better as a generic name ?","commit_id":"4ae545fa946581516090533172b0e6945c753c36"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"70502ea7536d158905b5bb10f6534b99d23ca88f","unresolved":false,"context_lines":[{"line_number":958,"context_line":"            listener, batch_size, batch_timeout"},{"line_number":959,"context_line":"        )"},{"line_number":960,"context_line":""},{"line_number":961,"context_line":"    def delete_rpc_server_queues(self, target, retry\u003dNone):"},{"line_number":962,"context_line":"        # The queues listen() declares: the topic\u0027s, and the server\u0027s. Fanout"},{"line_number":963,"context_line":"        # queues are left to expire (rabbit_transient_queues_ttl)."},{"line_number":964,"context_line":"        queues \u003d [target.topic]"}],"source_content_type":"text/x-python","patch_set":2,"id":"614e4469_cf482f88","line":961,"in_reply_to":"4e42a75f_792bb7c5","updated":"2026-10-20 07:40:20.000000000","message":"Done in patch set 5: the driver method is cleanup_listen, in BaseDriver (a no-op by default) and in AMQPDriverBase.","commit_id":"4ae545fa946581516090533172b0e6945c753c36"}],"oslo_messaging/rpc/__init__.py":[{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"8bfbd4d763499c16695dda01c4cd3e5ae2ae9a2e","unresolved":true,"context_lines":[{"line_number":30,"context_line":"    \u0027get_rpc_transport\u0027,"},{"line_number":31,"context_line":"    \u0027get_rpc_server\u0027,"},{"line_number":32,"context_line":"    \u0027get_rpc_client\u0027,"},{"line_number":33,"context_line":"    \u0027delete_rpc_server_queues\u0027,"},{"line_number":34,"context_line":"    \u0027expose\u0027,"},{"line_number":35,"context_line":"]"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"77cf5578_3c0fd489","line":33,"updated":"2026-10-10 21:01:32.000000000","message":"We agree that calling this function is done from the agent that use it?\nI believe on your side, you will then propose a patch on trove side to call this?","commit_id":"3db137c3d051e13d5b4918ad571c1be9a8ef4fd4"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"5ce303481e0cd4482027ba710e7199456a1867e1","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    \u0027get_rpc_transport\u0027,"},{"line_number":31,"context_line":"    \u0027get_rpc_server\u0027,"},{"line_number":32,"context_line":"    \u0027get_rpc_client\u0027,"},{"line_number":33,"context_line":"    \u0027delete_rpc_server_queues\u0027,"},{"line_number":34,"context_line":"    \u0027expose\u0027,"},{"line_number":35,"context_line":"]"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"f0ee4e56_2ff67dd4","line":33,"in_reply_to":"6e21b2f5_6f3f13a8","updated":"2026-10-20 07:40:22.000000000","message":"Yes, https://review.opendev.org/c/openstack/trove/+/1008850 is the user. To be precise about where it runs: not in the guest agent, which is gone by then, but in the Trove control plane (GuestAPI.delete_queue, called while the instance is deleted), once the agent\u0027s server can no longer consume. I will update 1008850 for the new name once this settles.","commit_id":"3db137c3d051e13d5b4918ad571c1be9a8ef4fd4"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"04b62fc3567b4e1bc8d4440dd3980721e9ce7a3b","unresolved":true,"context_lines":[{"line_number":30,"context_line":"    \u0027get_rpc_transport\u0027,"},{"line_number":31,"context_line":"    \u0027get_rpc_server\u0027,"},{"line_number":32,"context_line":"    \u0027get_rpc_client\u0027,"},{"line_number":33,"context_line":"    \u0027delete_rpc_server_queues\u0027,"},{"line_number":34,"context_line":"    \u0027expose\u0027,"},{"line_number":35,"context_line":"]"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"6e21b2f5_6f3f13a8","line":33,"in_reply_to":"77cf5578_3c0fd489","updated":"2026-10-11 18:53:41.000000000","message":"I assume that https://review.opendev.org/c/openstack/trove/+/1008850 is the trove change to use this feature and the delete is called by agent (which provides rpc server to handle db-related tasks within service instances, IIUC)","commit_id":"3db137c3d051e13d5b4918ad571c1be9a8ef4fd4"}],"oslo_messaging/rpc/server.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"118686b87342d7a54e85e2c50aff5dde797863a6","unresolved":true,"context_lines":[{"line_number":277,"context_line":"    return server_cls(transport, target, dispatcher, executor)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"def delete_rpc_server_queues(transport, target, retry\u003dNone):"},{"line_number":281,"context_line":"    \"\"\"Delete what the RPC servers of a target consume from."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    Remove from the messaging backend the queue the servers of"}],"source_content_type":"text/x-python","patch_set":2,"id":"9cdba66b_f30a1533","line":280,"range":{"start_line":280,"start_character":4,"end_line":280,"end_character":28},"updated":"2026-10-09 03:27:41.000000000","message":"Re-reviewing the other APIs while I was updating the release note I noticed that this is too specific to internal implementation of the RabbitMQ driver.\nThe APIs at this level should be more generic (though we have only the RabbitMQ driver now)\n\nDoes it make sense to name this something like `cleanup_rpc_server` instead ?","commit_id":"4ae545fa946581516090533172b0e6945c753c36"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"70502ea7536d158905b5bb10f6534b99d23ca88f","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    return server_cls(transport, target, dispatcher, executor)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"def delete_rpc_server_queues(transport, target, retry\u003dNone):"},{"line_number":281,"context_line":"    \"\"\"Delete what the RPC servers of a target consume from."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    Remove from the messaging backend the queue the servers of"}],"source_content_type":"text/x-python","patch_set":2,"id":"34eb8d5d_7e3c7bc1","line":280,"in_reply_to":"9cdba66b_f30a1533","updated":"2026-10-20 07:40:20.000000000","message":"Done in patch set 5: the public API is oslo_messaging.rpc.server.cleanup_rpc_server(transport, target, retry\u003dNone), with Transport._cleanup_rpc_server between them. The change and the release note are renamed to match.","commit_id":"4ae545fa946581516090533172b0e6945c753c36"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"118686b87342d7a54e85e2c50aff5dde797863a6","unresolved":true,"context_lines":[{"line_number":279,"context_line":""},{"line_number":280,"context_line":"def delete_rpc_server_queues(transport, target, retry\u003dNone):"},{"line_number":281,"context_line":"    \"\"\"Delete what the RPC servers of a target consume from."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    Remove from the messaging backend the queue the servers of"},{"line_number":284,"context_line":"    ``target.topic`` share and, if ``target.server`` is set, the one of that"},{"line_number":285,"context_line":"    server, with any messages left in them. Their fanout queues expire on"},{"line_number":286,"context_line":"    their own once unused."},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    Use it for a topic that will not be used again, such as one named after a"},{"line_number":289,"context_line":"    resource that has been deleted: a backend like RabbitMQ keeps these"},{"line_number":290,"context_line":"    queues after their consumers are gone, so without it they stay forever."},{"line_number":291,"context_line":"    Stop the servers first; a server still running declares its queues again"},{"line_number":292,"context_line":"    when it reconnects. Do not use it on a topic other servers still share."},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    A driver that keeps no such state does nothing."},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    :param transport: the messaging transport"},{"line_number":297,"context_line":"    :type transport: Transport"}],"source_content_type":"text/x-python","patch_set":2,"id":"d556985a_3c20f2a4","line":294,"range":{"start_line":282,"start_character":1,"end_line":294,"end_character":51},"updated":"2026-10-09 03:27:41.000000000","message":"These description describes too much about the implementations specific to RabbitMQ . Maybe we can reduce it to something like `Remove the resources created for the RPC server from backend` and describe details in only rabbitmq/amqp driver code.","commit_id":"4ae545fa946581516090533172b0e6945c753c36"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"70502ea7536d158905b5bb10f6534b99d23ca88f","unresolved":false,"context_lines":[{"line_number":291,"context_line":"    Stop the servers first; a server still running declares its queues again"},{"line_number":292,"context_line":"    when it reconnects. Do not use it on a topic other servers still share."},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    A driver that keeps no such state does nothing."},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    :param transport: the messaging transport"},{"line_number":297,"context_line":"    :type transport: Transport"}],"source_content_type":"text/x-python","patch_set":2,"id":"cb87139f_cedd406b","line":294,"in_reply_to":"d556985a_3c20f2a4","updated":"2026-10-20 07:40:20.000000000","message":"Done in patch set 5: the docstrings of cleanup_rpc_server and BaseDriver.cleanup_listen now only say that the backend\u0027s resources for the servers of the target are removed. Which queues RabbitMQ deletes, and why the fanout stream is included, is a comment in AMQPDriverBase.cleanup_listen. The release note is split the same way: a generic feature entry and one for the RabbitMQ driver.","commit_id":"4ae545fa946581516090533172b0e6945c753c36"}],"oslo_messaging/tests/drivers/test_impl_rabbit.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1065c9c7a957d44172e84d6eccc6182e1952fffa","unresolved":true,"context_lines":[{"line_number":719,"context_line":""},{"line_number":720,"context_line":"    def test_delete_topic_queue_only(self):"},{"line_number":721,"context_line":"        self._listen(\u0027server\u0027)"},{"line_number":722,"context_line":""},{"line_number":723,"context_line":"        oslo_messaging.delete_rpc_server_queues("},{"line_number":724,"context_line":"            self.transport, oslo_messaging.Target(topic\u003dself.topic)"},{"line_number":725,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"1bc149c2_b927b99d","line":722,"updated":"2026-10-07 03:39:33.000000000","message":"Should we assert queues here, too ?","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"4f6bceb347aa33a7f7b3d82805c77d9739b765e4","unresolved":false,"context_lines":[{"line_number":719,"context_line":""},{"line_number":720,"context_line":"    def test_delete_topic_queue_only(self):"},{"line_number":721,"context_line":"        self._listen(\u0027server\u0027)"},{"line_number":722,"context_line":""},{"line_number":723,"context_line":"        oslo_messaging.delete_rpc_server_queues("},{"line_number":724,"context_line":"            self.transport, oslo_messaging.Target(topic\u003dself.topic)"},{"line_number":725,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"b8aabcd5_545eb16c","line":722,"in_reply_to":"1bc149c2_b927b99d","updated":"2026-10-09 02:49:33.000000000","message":"Done in patch set 2: test_delete_topic_queue_only now asserts that both the topic and server queue exist before deletion, and then asserts that only the server queue remains.","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1065c9c7a957d44172e84d6eccc6182e1952fffa","unresolved":true,"context_lines":[{"line_number":726,"context_line":""},{"line_number":727,"context_line":"        self.assertEqual({f\u0027{self.topic}.server\u0027}, self._queues())"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"    def test_delete_missing_queues(self):"},{"line_number":730,"context_line":"        # Deleting what is not there, again or never declared, is fine."},{"line_number":731,"context_line":"        target \u003d oslo_messaging.Target(topic\u003dself.topic, server\u003d\u0027server\u0027)"},{"line_number":732,"context_line":"        oslo_messaging.delete_rpc_server_queues(self.transport, target)"}],"source_content_type":"text/x-python","patch_set":1,"id":"85f31252_197a02bf","line":729,"range":{"start_line":729,"start_character":8,"end_line":729,"end_character":34},"updated":"2026-10-07 03:39:33.000000000","message":"It\u0027s not clear what \"missing\" implies, compared to not_found in L736. I\u0027d use a more specific name like test_delete_repated.\n\nAlso it may make sense to add a test case to delete a queue which has never been declared, as mentioned in the comment.","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"4f6bceb347aa33a7f7b3d82805c77d9739b765e4","unresolved":false,"context_lines":[{"line_number":726,"context_line":""},{"line_number":727,"context_line":"        self.assertEqual({f\u0027{self.topic}.server\u0027}, self._queues())"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"    def test_delete_missing_queues(self):"},{"line_number":730,"context_line":"        # Deleting what is not there, again or never declared, is fine."},{"line_number":731,"context_line":"        target \u003d oslo_messaging.Target(topic\u003dself.topic, server\u003d\u0027server\u0027)"},{"line_number":732,"context_line":"        oslo_messaging.delete_rpc_server_queues(self.transport, target)"}],"source_content_type":"text/x-python","patch_set":1,"id":"b5ed2b2f_6c64f636","line":729,"in_reply_to":"85f31252_197a02bf","updated":"2026-10-09 02:49:33.000000000","message":"Done in patch set 2: renamed this case to test_delete_repeated_queues and added a separate test_delete_never_declared_queues case. The explicit broker NotFound test remains separate.","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1065c9c7a957d44172e84d6eccc6182e1952fffa","unresolved":true,"context_lines":[{"line_number":728,"context_line":""},{"line_number":729,"context_line":"    def test_delete_missing_queues(self):"},{"line_number":730,"context_line":"        # Deleting what is not there, again or never declared, is fine."},{"line_number":731,"context_line":"        target \u003d oslo_messaging.Target(topic\u003dself.topic, server\u003d\u0027server\u0027)"},{"line_number":732,"context_line":"        oslo_messaging.delete_rpc_server_queues(self.transport, target)"},{"line_number":733,"context_line":"        oslo_messaging.delete_rpc_server_queues(self.transport, target)"},{"line_number":734,"context_line":"        self.assertEqual(set(), self._queues())"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":"    def test_delete_queue_not_found(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"775086e7_8035b7a4","line":733,"range":{"start_line":731,"start_character":73,"end_line":733,"end_character":71},"updated":"2026-10-07 03:39:33.000000000","message":"Can we assert queues step-by-step ?","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"4f6bceb347aa33a7f7b3d82805c77d9739b765e4","unresolved":false,"context_lines":[{"line_number":730,"context_line":"        # Deleting what is not there, again or never declared, is fine."},{"line_number":731,"context_line":"        target \u003d oslo_messaging.Target(topic\u003dself.topic, server\u003d\u0027server\u0027)"},{"line_number":732,"context_line":"        oslo_messaging.delete_rpc_server_queues(self.transport, target)"},{"line_number":733,"context_line":"        oslo_messaging.delete_rpc_server_queues(self.transport, target)"},{"line_number":734,"context_line":"        self.assertEqual(set(), self._queues())"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":"    def test_delete_queue_not_found(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"83731cfd_5c3ed006","line":733,"in_reply_to":"775086e7_8035b7a4","updated":"2026-10-09 02:49:33.000000000","message":"Done in patch set 2: the repeated-deletion test asserts the queues before the first deletion and the empty set after each deletion. The topic/server test also checks the intermediate queue state and preserves the other server\u0027s queue.","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"}],"releasenotes/notes/delete-rpc-server-queues-2bcaebf296cd7450.yaml":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1065c9c7a957d44172e84d6eccc6182e1952fffa","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new ``oslo_messaging.delete_rpc_server_queues(transport, target)``"},{"line_number":5,"context_line":"    function deletes from the messaging backend the queue the RPC servers of"},{"line_number":6,"context_line":"    ``target.topic`` share and, if ``target.server`` is set, the one of that"},{"line_number":7,"context_line":"    server, with any messages left in them. It is meant for a topic that"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"047b6311_2143aab6","line":4,"range":{"start_line":4,"start_character":27,"end_line":4,"end_character":51},"updated":"2026-10-07 03:39:33.000000000","message":"While we\u0027ve been exposing core implementations at multiple layers for convenience I prefer we describe the real path where the functions resides.","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"4f6bceb347aa33a7f7b3d82805c77d9739b765e4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new ``oslo_messaging.delete_rpc_server_queues(transport, target)``"},{"line_number":5,"context_line":"    function deletes from the messaging backend the queue the RPC servers of"},{"line_number":6,"context_line":"    ``target.topic`` share and, if ``target.server`` is set, the one of that"},{"line_number":7,"context_line":"    server, with any messages left in them. It is meant for a topic that"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"40ba26ce_42081c24","line":4,"in_reply_to":"047b6311_2143aab6","updated":"2026-10-09 02:49:33.000000000","message":"Updated in patch set 2 to oslo_messaging.rpc.delete_rpc_server_queues(transport, target), where the function is defined.","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1065c9c7a957d44172e84d6eccc6182e1952fffa","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6d516466_0feb189d","line":13,"range":{"start_line":11,"start_character":54,"end_line":13,"end_character":1},"updated":"2026-10-07 03:39:33.000000000","message":"I\u0027d prefer describing the driver supporting this feature more specifically.","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"4f6bceb347aa33a7f7b3d82805c77d9739b765e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9f864939_395775aa","line":13,"in_reply_to":"6d516466_0feb189d","updated":"2026-10-09 02:49:33.000000000","message":"Updated in patch set 2: the release note now explicitly identifies the RabbitMQ driver as implementing this operation.","commit_id":"0802e35b4cde363afcb49fc73b34ae9bb2b230bc"}]}
