)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"57c6b562cdac3d8811fd71d383a51110bd43c134","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"c7629eb4_5216b63b","updated":"2021-10-12 14:27:38.000000000","message":"Thanks! LGTM 😊","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"22d7fea7deae643c692783cd1d89a517ec3e68c2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"d8349616_bab2f213","updated":"2022-02-02 12:39:44.000000000","message":"This is good. I\u0027d like to see a bit of work on the docs. If you can fix these I\u0027m happy to +W since hberaud is happy with the code.","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"e138740b583174d36fbcececde266768d2feab3c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"c9e57854_40a7661c","updated":"2022-01-10 19:38:08.000000000","message":"any update on this ( when its gonna merge )","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"9e53f807e41efe3b49f2cdbf38cfac779ae3422b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"00dee4e5_5041d21a","updated":"2022-01-26 21:23:25.000000000","message":"can i please get another +2 thanks","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"dcd25fa57d9062f223e51bc07394d27ca282f87c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"9f666fa0_16d2c46c","in_reply_to":"c7629eb4_5216b63b","updated":"2021-10-12 17:08:50.000000000","message":"Thanks","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"f10a157551043dc0b9e9f9ca38969a203e53ce30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"650b8f08_ee741f82","in_reply_to":"d8349616_bab2f213","updated":"2022-02-03 18:27:25.000000000","message":"added","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"3a8280df138ecd4bd0928cd895a9916e0b5fc524","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"d1e69064_8d4bbdc8","updated":"2022-02-03 19:18:17.000000000","message":"recheck","commit_id":"192000951f877e6e38a92d563dcd1af0d9263376"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"9aa701cbf8b6e2df6c11b7049f506a4ca30710d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"7303dcb8_943c7e09","updated":"2022-02-04 17:37:59.000000000","message":"@stephenfin","commit_id":"db991db3fbbe993fee90948454c050f7137ba0b4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdbd6488421a006167928fa885d00d8d22d1237b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"958c874a_31678954","updated":"2022-02-04 19:40:35.000000000","message":"Just marking the comments that have been addressed as done to hide them","commit_id":"db991db3fbbe993fee90948454c050f7137ba0b4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0ef843c1e34c4f768279553f9ec6f1010225a8f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"d7652637_40e73800","updated":"2022-02-04 19:47:39.000000000","message":"Much better. Thanks! Just three remaining nits inline to address and we\u0027re done","commit_id":"db991db3fbbe993fee90948454c050f7137ba0b4"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"6cb2f78d837b76837eb47dfa91625105de70053c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"84c90d40_d8ca5baf","updated":"2022-02-03 20:54:04.000000000","message":"recheck","commit_id":"db991db3fbbe993fee90948454c050f7137ba0b4"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"13146506d93b30d3934444e95d6a566e3e25d5fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"007b5bbb_a98dacd8","updated":"2022-02-04 22:59:35.000000000","message":"@stephenfin","commit_id":"0d74e247f25e7c84a8e9bd0da4fa1fec12149cd0"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"9ec38c57652185f37774ec4847e30ea4a462934c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"5f5887af_75f11023","updated":"2022-02-04 20:28:55.000000000","message":"recheck","commit_id":"0d74e247f25e7c84a8e9bd0da4fa1fec12149cd0"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"b53ddbd70fcebc0409e08787c010bfffd9cb5c8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"fad02815_8ffb92c1","updated":"2022-02-04 22:04:59.000000000","message":"recheck","commit_id":"0d74e247f25e7c84a8e9bd0da4fa1fec12149cd0"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"c5c29bdb65a8d0c3dc27216b3dc38766df3a3911","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"090dbc37_5d5e46fa","updated":"2022-02-08 13:20:02.000000000","message":"Seems good now. The patch was validate by another core so I validate and put the workflow.","commit_id":"7e8acbf87070354cd2438f3ab0821d035c2e7d92"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"01181191801e1bd8a654c701523f72a0e5c15aee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"29984da6_8017c0fc","updated":"2022-02-05 09:26:19.000000000","message":"recheck","commit_id":"7e8acbf87070354cd2438f3ab0821d035c2e7d92"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"ed8aba02d40f842aeb317c8f3caff8c828561f8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"c4943b31_d163b747","updated":"2022-02-07 17:36:46.000000000","message":"thanks do we need another approval to get this merged","commit_id":"7e8acbf87070354cd2438f3ab0821d035c2e7d92"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"f83a7db58d15cd1f1ee9b3655aaad9a13755cd0a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"7181118f_49a59b9a","updated":"2022-02-08 17:43:36.000000000","message":"thanks for merging this \ni dont know if the release built automatically \nor triggered manually but i need it to use this \n","commit_id":"7e8acbf87070354cd2438f3ab0821d035c2e7d92"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"43238d3a142714d279fe6ad361754ec32e7fe257","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"bf7201f3_eb3292b4","updated":"2022-02-07 15:37:12.000000000","message":"ty!","commit_id":"7e8acbf87070354cd2438f3ab0821d035c2e7d92"}],"oslo_messaging/_drivers/amqp.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"245193d3175ab697640b3665fff8dd6375028de7","unresolved":true,"context_lines":[{"line_number":32,"context_line":"amqp_opts \u003d ["},{"line_number":33,"context_line":"    cfg.BoolOpt(\u0027amqp_durable_queues\u0027,"},{"line_number":34,"context_line":"                default\u003dFalse,"},{"line_number":35,"context_line":"                help\u003d\u0027Use durable queues in AMQP. this will enabled \u0027"},{"line_number":36,"context_line":"                \u0027by default if rabbit_quorum_queue is enabled\u0027),"},{"line_number":37,"context_line":"    cfg.BoolOpt(\u0027amqp_auto_delete\u0027,"},{"line_number":38,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":11,"id":"df5b8fe9_88438fca","line":35,"updated":"2021-10-07 16:03:37.000000000","message":"maybe \u0027If rabbit_quorum_queue is enabled, queues will be durable and this value will be ignored\u0027.","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed59c32e5cbeb284c64ae19d7bf2298637eca159","unresolved":false,"context_lines":[{"line_number":32,"context_line":"amqp_opts \u003d ["},{"line_number":33,"context_line":"    cfg.BoolOpt(\u0027amqp_durable_queues\u0027,"},{"line_number":34,"context_line":"                default\u003dFalse,"},{"line_number":35,"context_line":"                help\u003d\u0027Use durable queues in AMQP. this will enabled \u0027"},{"line_number":36,"context_line":"                \u0027by default if rabbit_quorum_queue is enabled\u0027),"},{"line_number":37,"context_line":"    cfg.BoolOpt(\u0027amqp_auto_delete\u0027,"},{"line_number":38,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":11,"id":"ad5331c8_047d4f57","line":35,"in_reply_to":"df5b8fe9_88438fca","updated":"2022-02-04 19:41:57.000000000","message":"Done","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0ef843c1e34c4f768279553f9ec6f1010225a8f8","unresolved":true,"context_lines":[{"line_number":32,"context_line":"amqp_opts \u003d ["},{"line_number":33,"context_line":"    cfg.BoolOpt(\u0027amqp_durable_queues\u0027,"},{"line_number":34,"context_line":"                default\u003dFalse,"},{"line_number":35,"context_line":"                help\u003d\u0027Use durable queues in AMQP, if rabbit_quorum_queue \u0027"},{"line_number":36,"context_line":"                \u0027is enabled, queues will be durable and this value will \u0027"},{"line_number":37,"context_line":"                \u0027be ignored.\u0027),"},{"line_number":38,"context_line":"    cfg.BoolOpt(\u0027amqp_auto_delete\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"0194fe37_6c428cc3","line":35,"range":{"start_line":35,"start_character":48,"end_line":35,"end_character":52},"updated":"2022-02-04 19:47:39.000000000","message":"nit: Full stop\n\n  ...in AMQP. If \u0027rabbit_quorum_queue\u0027 is...","commit_id":"db991db3fbbe993fee90948454c050f7137ba0b4"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"1b18708cc9efb25e7c001f4e578f998defae5ca9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"amqp_opts \u003d ["},{"line_number":33,"context_line":"    cfg.BoolOpt(\u0027amqp_durable_queues\u0027,"},{"line_number":34,"context_line":"                default\u003dFalse,"},{"line_number":35,"context_line":"                help\u003d\u0027Use durable queues in AMQP, if rabbit_quorum_queue \u0027"},{"line_number":36,"context_line":"                \u0027is enabled, queues will be durable and this value will \u0027"},{"line_number":37,"context_line":"                \u0027be ignored.\u0027),"},{"line_number":38,"context_line":"    cfg.BoolOpt(\u0027amqp_auto_delete\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"059306fa_6aa57e19","line":35,"range":{"start_line":35,"start_character":48,"end_line":35,"end_character":52},"in_reply_to":"0194fe37_6c428cc3","updated":"2022-02-04 20:29:33.000000000","message":"Done","commit_id":"db991db3fbbe993fee90948454c050f7137ba0b4"}],"oslo_messaging/_drivers/impl_rabbit.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c8a4c3f88166dbb9363beb76f6a3d3843bea1429","unresolved":true,"context_lines":[{"line_number":148,"context_line":"                \u0027those with auto-generated names) are mirrored across all \u0027"},{"line_number":149,"context_line":"                \u0027nodes, run: \u0027"},{"line_number":150,"context_line":"                \"\"\"\\\"rabbitmqctl set_policy HA \u0027^(?!amq\\\\.).*\u0027 \"\"\""},{"line_number":151,"context_line":"                \"\"\"\u0027{\"ha-mode\": \"all\"}\u0027 \\\"\"\"\"),"},{"line_number":152,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":153,"context_line":"                default\u003dFalse,"},{"line_number":154,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"7432add2_c20ea975","line":151,"updated":"2021-10-06 20:02:55.000000000","message":"it might be worth adding here, that quorum_queue takes priority over this. (Not this exact wording but something to the effect...)","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdbd6488421a006167928fa885d00d8d22d1237b","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                \u0027those with auto-generated names) are mirrored across all \u0027"},{"line_number":149,"context_line":"                \u0027nodes, run: \u0027"},{"line_number":150,"context_line":"                \"\"\"\\\"rabbitmqctl set_policy HA \u0027^(?!amq\\\\.).*\u0027 \"\"\""},{"line_number":151,"context_line":"                \"\"\"\u0027{\"ha-mode\": \"all\"}\u0027 \\\"\"\"\"),"},{"line_number":152,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":153,"context_line":"                default\u003dFalse,"},{"line_number":154,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"641c2bdc_c941647e","line":151,"in_reply_to":"7432add2_c20ea975","updated":"2022-02-04 19:40:35.000000000","message":"Done","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c8a4c3f88166dbb9363beb76f6a3d3843bea1429","unresolved":true,"context_lines":[{"line_number":242,"context_line":"    if not rabbit_quorum_queue and rabbit_ha_queues:"},{"line_number":243,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":246,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    if rabbit_queue_ttl \u003e 0:"}],"source_content_type":"text/x-python","patch_set":8,"id":"33ab6ea6_e00db5f3","line":245,"updated":"2021-10-06 20:02:55.000000000","message":"it would be nice to add a comment (eg in above docstring) as to what the \u0027durable\u0027 parameter is meant to be used for. I would have thought that just setting rabbit_quorum_queue \u003d true would suffice here.\n\nWhat does it mean if rabbit_quorum_queue is true and durable is false? No quorum.\n\nWhat does it mean if rabbit_quorum_queue is true and rabbit_ha_queues is true and durable is false? no ha and no quorum... Is that the desired behaviour?","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"b0753a0faeea6c523e475612c22c5ceeacb86174","unresolved":true,"context_lines":[{"line_number":242,"context_line":"    if not rabbit_quorum_queue and rabbit_ha_queues:"},{"line_number":243,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":246,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    if rabbit_queue_ttl \u003e 0:"}],"source_content_type":"text/x-python","patch_set":8,"id":"bbe6ec5a_9902ddbf","line":245,"in_reply_to":"33ab6ea6_e00db5f3","updated":"2021-10-06 20:40:30.000000000","message":"yes which the case for direct queues which should not be replicated and have durable as static false\n       consumer \u003d Consumer(\n            exchange_name\u003d\u0027\u0027,  # using default exchange\n            queue_name\u003dtopic,\n            routing_key\u003d\u0027\u0027,\n            type\u003d\u0027direct\u0027,\n            durable\u003dFalse,\n            exchange_auto_delete\u003dFalse,\n            queue_auto_delete\u003dFalse,\n            callback\u003dcallback,\n            rabbit_ha_queues\u003dself.rabbit_ha_queues,\n            rabbit_queue_ttl\u003dself.rabbit_transient_queues_ttl,\n            enable_cancel_on_failover\u003dself.enable_cancel_on_failover,\n            rabbit_quorum_queue\u003dself.rabbit_quorum_queue)","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdbd6488421a006167928fa885d00d8d22d1237b","unresolved":false,"context_lines":[{"line_number":242,"context_line":"    if not rabbit_quorum_queue and rabbit_ha_queues:"},{"line_number":243,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":246,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    if rabbit_queue_ttl \u003e 0:"}],"source_content_type":"text/x-python","patch_set":8,"id":"d59b561a_9f8f7680","line":245,"in_reply_to":"bbe6ec5a_9902ddbf","updated":"2022-02-04 19:40:35.000000000","message":"Done","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c8a4c3f88166dbb9363beb76f6a3d3843bea1429","unresolved":true,"context_lines":[{"line_number":273,"context_line":"    def __init__(self, exchange_name, queue_name, routing_key, type, durable,"},{"line_number":274,"context_line":"                 exchange_auto_delete, queue_auto_delete, callback,"},{"line_number":275,"context_line":"                 nowait\u003dFalse, rabbit_ha_queues\u003dNone, rabbit_queue_ttl\u003d0,"},{"line_number":276,"context_line":"                 rabbit_quorum_queue\u003dNone, enable_cancel_on_failover\u003dFalse):"},{"line_number":277,"context_line":"        \"\"\"Init the Consumer class with the exchange_name, routing_key,"},{"line_number":278,"context_line":"        type, durable auto_delete"},{"line_number":279,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"e930031e_4a2dce3e","line":276,"updated":"2021-10-06 20:02:55.000000000","message":"wondering if this is a good idea. Sometimes, people write code like Consumer(\u0027xchangename\u0027, \u0027queuename\u0027, route-key, some-type, true, true, false, some-callback, false, None, 0, False).\nSo adding rabbit_quorum_queue in the middle will cause things to fail. I suggest adding it to the end of the list of parameters.","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3be158722963e62b92a54827063a2477b3a91eb9","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    def __init__(self, exchange_name, queue_name, routing_key, type, durable,"},{"line_number":274,"context_line":"                 exchange_auto_delete, queue_auto_delete, callback,"},{"line_number":275,"context_line":"                 nowait\u003dFalse, rabbit_ha_queues\u003dNone, rabbit_queue_ttl\u003d0,"},{"line_number":276,"context_line":"                 rabbit_quorum_queue\u003dNone, enable_cancel_on_failover\u003dFalse):"},{"line_number":277,"context_line":"        \"\"\"Init the Consumer class with the exchange_name, routing_key,"},{"line_number":278,"context_line":"        type, durable auto_delete"},{"line_number":279,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"135bcc57_92bf6cb3","line":276,"in_reply_to":"e930031e_4a2dce3e","updated":"2021-10-07 15:00:29.000000000","message":"Done","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c8a4c3f88166dbb9363beb76f6a3d3843bea1429","unresolved":true,"context_lines":[{"line_number":1372,"context_line":"        exchange \u003d kombu.entity.Exchange("},{"line_number":1373,"context_line":"            name\u003dexchange_name,"},{"line_number":1374,"context_line":"            type\u003d\u0027topic\u0027,"},{"line_number":1375,"context_line":"            durable\u003dself.durable,"},{"line_number":1376,"context_line":"            auto_delete\u003dself.amqp_auto_delete)"},{"line_number":1377,"context_line":""},{"line_number":1378,"context_line":"        self._ensure_publishing(self._publish, exchange, msg,"}],"source_content_type":"text/x-python","patch_set":8,"id":"767570c1_3452bce2","line":1375,"updated":"2021-10-06 20:02:55.000000000","message":"I\u0027m not familiar with this code so this might be a dumb question. Why is amqp_durable_queues not use any more? Looks like amqp_durable_queues is set via a config, so if it isn\u0027t used, should the config be deleted or deprecated or something (and mentioned in the release notes)?","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"b0753a0faeea6c523e475612c22c5ceeacb86174","unresolved":true,"context_lines":[{"line_number":1372,"context_line":"        exchange \u003d kombu.entity.Exchange("},{"line_number":1373,"context_line":"            name\u003dexchange_name,"},{"line_number":1374,"context_line":"            type\u003d\u0027topic\u0027,"},{"line_number":1375,"context_line":"            durable\u003dself.durable,"},{"line_number":1376,"context_line":"            auto_delete\u003dself.amqp_auto_delete)"},{"line_number":1377,"context_line":""},{"line_number":1378,"context_line":"        self._ensure_publishing(self._publish, exchange, msg,"}],"source_content_type":"text/x-python","patch_set":8,"id":"cd537a6b_250f07d6","line":1375,"in_reply_to":"767570c1_3452bce2","updated":"2021-10-06 20:40:30.000000000","message":"quorum_queue are durable by default\nand self.durable is simply (self.amqp_durable_queues or self.rabbit_quorum_queue)","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"22d7fea7deae643c692783cd1d89a517ec3e68c2","unresolved":true,"context_lines":[{"line_number":1372,"context_line":"        exchange \u003d kombu.entity.Exchange("},{"line_number":1373,"context_line":"            name\u003dexchange_name,"},{"line_number":1374,"context_line":"            type\u003d\u0027topic\u0027,"},{"line_number":1375,"context_line":"            durable\u003dself.durable,"},{"line_number":1376,"context_line":"            auto_delete\u003dself.amqp_auto_delete)"},{"line_number":1377,"context_line":""},{"line_number":1378,"context_line":"        self._ensure_publishing(self._publish, exchange, msg,"}],"source_content_type":"text/x-python","patch_set":8,"id":"e76cfa4f_69e62760","line":1375,"in_reply_to":"cd537a6b_250f07d6","updated":"2022-02-02 12:39:44.000000000","message":"It would be great to leave a comment where we set this value (line 516) to explain why we\u0027re doing this so","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"f10a157551043dc0b9e9f9ca38969a203e53ce30","unresolved":false,"context_lines":[{"line_number":1372,"context_line":"        exchange \u003d kombu.entity.Exchange("},{"line_number":1373,"context_line":"            name\u003dexchange_name,"},{"line_number":1374,"context_line":"            type\u003d\u0027topic\u0027,"},{"line_number":1375,"context_line":"            durable\u003dself.durable,"},{"line_number":1376,"context_line":"            auto_delete\u003dself.amqp_auto_delete)"},{"line_number":1377,"context_line":""},{"line_number":1378,"context_line":"        self._ensure_publishing(self._publish, exchange, msg,"}],"source_content_type":"text/x-python","patch_set":8,"id":"efd9bbc5_63d6ed98","line":1375,"in_reply_to":"e76cfa4f_69e62760","updated":"2022-02-03 18:27:25.000000000","message":"Done","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3be158722963e62b92a54827063a2477b3a91eb9","unresolved":true,"context_lines":[{"line_number":150,"context_line":"                \"\"\"\\\"rabbitmqctl set_policy HA \u0027^(?!amq\\\\.).*\u0027 \"\"\""},{"line_number":151,"context_line":"                \"\"\"\u0027{\"ha-mode\": \"all\"}\u0027 \\\"\"\"\""},{"line_number":152,"context_line":"                \u0027this will be enabled by default if rabbit_quorum_queue \u0027"},{"line_number":153,"context_line":"                \u0027is enabled \u0027),"},{"line_number":154,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":155,"context_line":"                default\u003dFalse,"},{"line_number":156,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a4aa940_8634248a","line":153,"updated":"2021-10-07 15:00:29.000000000","message":"I thought this is disabled (even if set to True) if rabbit_quorum_queue is enabled, based on what it says below at L163: \u0027in other words it will disable HA queues\u0027","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdbd6488421a006167928fa885d00d8d22d1237b","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                \"\"\"\\\"rabbitmqctl set_policy HA \u0027^(?!amq\\\\.).*\u0027 \"\"\""},{"line_number":151,"context_line":"                \"\"\"\u0027{\"ha-mode\": \"all\"}\u0027 \\\"\"\"\""},{"line_number":152,"context_line":"                \u0027this will be enabled by default if rabbit_quorum_queue \u0027"},{"line_number":153,"context_line":"                \u0027is enabled \u0027),"},{"line_number":154,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":155,"context_line":"                default\u003dFalse,"},{"line_number":156,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"07b08083_d07275ce","line":153,"in_reply_to":"3f31882b_0cdb7f35","updated":"2022-02-04 19:40:35.000000000","message":"Ack","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"ba1af8481a879ee30dcf0f92ee0aa3c3f95397ce","unresolved":true,"context_lines":[{"line_number":150,"context_line":"                \"\"\"\\\"rabbitmqctl set_policy HA \u0027^(?!amq\\\\.).*\u0027 \"\"\""},{"line_number":151,"context_line":"                \"\"\"\u0027{\"ha-mode\": \"all\"}\u0027 \\\"\"\"\""},{"line_number":152,"context_line":"                \u0027this will be enabled by default if rabbit_quorum_queue \u0027"},{"line_number":153,"context_line":"                \u0027is enabled \u0027),"},{"line_number":154,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":155,"context_line":"                default\u003dFalse,"},{"line_number":156,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f31882b_0cdb7f35","line":153,"in_reply_to":"9a4aa940_8634248a","updated":"2021-10-07 15:38:38.000000000","message":"yeah thats true","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3be158722963e62b92a54827063a2477b3a91eb9","unresolved":true,"context_lines":[{"line_number":240,"context_line":"    in other words HA queues will be ignored."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    durable parameter will be true if the queue is meant to survive RabbitMQ"},{"line_number":243,"context_line":"    restart like quorum queues which always durable"},{"line_number":244,"context_line":"    \"\"\""},{"line_number":245,"context_line":"    args \u003d {}"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"59ecb9f6_c46548c5","line":243,"updated":"2021-10-07 15:00:29.000000000","message":"If I understand, might be useful to s/restart like quorum queues which always durable/restarts. Quorum queues will only be done if durable is true./","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"ba1af8481a879ee30dcf0f92ee0aa3c3f95397ce","unresolved":true,"context_lines":[{"line_number":240,"context_line":"    in other words HA queues will be ignored."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    durable parameter will be true if the queue is meant to survive RabbitMQ"},{"line_number":243,"context_line":"    restart like quorum queues which always durable"},{"line_number":244,"context_line":"    \"\"\""},{"line_number":245,"context_line":"    args \u003d {}"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"d356ad93_6c116c00","line":243,"in_reply_to":"59ecb9f6_c46548c5","updated":"2021-10-07 15:38:38.000000000","message":"i dont understand?","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdbd6488421a006167928fa885d00d8d22d1237b","unresolved":false,"context_lines":[{"line_number":240,"context_line":"    in other words HA queues will be ignored."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    durable parameter will be true if the queue is meant to survive RabbitMQ"},{"line_number":243,"context_line":"    restart like quorum queues which always durable"},{"line_number":244,"context_line":"    \"\"\""},{"line_number":245,"context_line":"    args \u003d {}"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"2c3ef490_ef361576","line":243,"in_reply_to":"d356ad93_6c116c00","updated":"2022-02-04 19:40:35.000000000","message":"Ack","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3be158722963e62b92a54827063a2477b3a91eb9","unresolved":true,"context_lines":[{"line_number":247,"context_line":"    if not rabbit_quorum_queue and rabbit_ha_queues:"},{"line_number":248,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":251,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    if rabbit_queue_ttl \u003e 0:"}],"source_content_type":"text/x-python","patch_set":10,"id":"55545c63_8cccd45d","line":250,"updated":"2021-10-07 15:00:29.000000000","message":"(Continued from comment in patch set 8) It seems like in some places in the code, if rabbit_quorum_queue is set, then durable is also set, regardless of the value of the config \u0027amqp_durable_queues\u0027.\n\nIf the Consumer object is something that can be used outside of this library, at the very least, shouldn\u0027t we document that if rabbit_ha_queues is set, that durable needs to be set to true too?\n\nIt would help me wrt reviewing if I understood what the expected behaviour is wrt this new rabbit_ha_queues. Does/should the code always use durable (\u003dTrue) if rabbit_ha_queues is set? If yes, then it should be coded that way and documented as such. If no, then in the cases where durable is False, maybe we need to log something to inform Operators that rabbit_mq_queue was NOT set even though they wanted it set, because durable was False. OR we set it and log that it won\u0027t actually work cuz durable was False.\n\nNote that the config value for amqp_durable_queues is ignored and durable is set to True in some cases -- the user ought to be informed of this. Maybe in the new config help message, in the commit, and in the release note.","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"ba1af8481a879ee30dcf0f92ee0aa3c3f95397ce","unresolved":true,"context_lines":[{"line_number":247,"context_line":"    if not rabbit_quorum_queue and rabbit_ha_queues:"},{"line_number":248,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":251,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    if rabbit_queue_ttl \u003e 0:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ac133307_e6488738","line":250,"in_reply_to":"55545c63_8cccd45d","updated":"2021-10-07 15:38:38.000000000","message":"i will add that in oslo_messaging/_drivers/amqp.py","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdbd6488421a006167928fa885d00d8d22d1237b","unresolved":false,"context_lines":[{"line_number":247,"context_line":"    if not rabbit_quorum_queue and rabbit_ha_queues:"},{"line_number":248,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":251,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    if rabbit_queue_ttl \u003e 0:"}],"source_content_type":"text/x-python","patch_set":10,"id":"c2fb4e5d_51a71881","line":250,"in_reply_to":"ac133307_e6488738","updated":"2022-02-04 19:40:35.000000000","message":"Ack","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3be158722963e62b92a54827063a2477b3a91eb9","unresolved":true,"context_lines":[{"line_number":1179,"context_line":"            queue_name\u003dtopic,"},{"line_number":1180,"context_line":"            routing_key\u003d\u0027\u0027,"},{"line_number":1181,"context_line":"            type\u003d\u0027direct\u0027,"},{"line_number":1182,"context_line":"            durable\u003dFalse,"},{"line_number":1183,"context_line":"            exchange_auto_delete\u003dFalse,"},{"line_number":1184,"context_line":"            queue_auto_delete\u003dFalse,"},{"line_number":1185,"context_line":"            callback\u003dcallback,"}],"source_content_type":"text/x-python","patch_set":10,"id":"2afade1e_8e012810","line":1182,"updated":"2021-10-07 15:00:29.000000000","message":"Why isn\u0027t this \u003d self.durable? if it is False, then it makes no sense to add L1189.","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdbd6488421a006167928fa885d00d8d22d1237b","unresolved":false,"context_lines":[{"line_number":1179,"context_line":"            queue_name\u003dtopic,"},{"line_number":1180,"context_line":"            routing_key\u003d\u0027\u0027,"},{"line_number":1181,"context_line":"            type\u003d\u0027direct\u0027,"},{"line_number":1182,"context_line":"            durable\u003dFalse,"},{"line_number":1183,"context_line":"            exchange_auto_delete\u003dFalse,"},{"line_number":1184,"context_line":"            queue_auto_delete\u003dFalse,"},{"line_number":1185,"context_line":"            callback\u003dcallback,"}],"source_content_type":"text/x-python","patch_set":10,"id":"b336dca1_d5e1d83d","line":1182,"in_reply_to":"0cd9b5ae_e1931e1b","updated":"2022-02-04 19:40:35.000000000","message":"Done","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"ba1af8481a879ee30dcf0f92ee0aa3c3f95397ce","unresolved":true,"context_lines":[{"line_number":1179,"context_line":"            queue_name\u003dtopic,"},{"line_number":1180,"context_line":"            routing_key\u003d\u0027\u0027,"},{"line_number":1181,"context_line":"            type\u003d\u0027direct\u0027,"},{"line_number":1182,"context_line":"            durable\u003dFalse,"},{"line_number":1183,"context_line":"            exchange_auto_delete\u003dFalse,"},{"line_number":1184,"context_line":"            queue_auto_delete\u003dFalse,"},{"line_number":1185,"context_line":"            callback\u003dcallback,"}],"source_content_type":"text/x-python","patch_set":10,"id":"0cd9b5ae_e1931e1b","line":1182,"in_reply_to":"2afade1e_8e012810","updated":"2021-10-07 15:38:38.000000000","message":"yes thats right","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3be158722963e62b92a54827063a2477b3a91eb9","unresolved":true,"context_lines":[{"line_number":1220,"context_line":"            queue_name\u003dqueue_name,"},{"line_number":1221,"context_line":"            routing_key\u003dtopic,"},{"line_number":1222,"context_line":"            type\u003d\u0027fanout\u0027,"},{"line_number":1223,"context_line":"            durable\u003dFalse,"},{"line_number":1224,"context_line":"            exchange_auto_delete\u003dTrue,"},{"line_number":1225,"context_line":"            queue_auto_delete\u003dFalse,"},{"line_number":1226,"context_line":"            callback\u003dcallback,"}],"source_content_type":"text/x-python","patch_set":10,"id":"4589588d_25e745e5","line":1223,"updated":"2021-10-07 15:00:29.000000000","message":"Why isn\u0027t this \u003d self.durable? if it is False, then it makes no sense to add L1230.","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdbd6488421a006167928fa885d00d8d22d1237b","unresolved":false,"context_lines":[{"line_number":1220,"context_line":"            queue_name\u003dqueue_name,"},{"line_number":1221,"context_line":"            routing_key\u003dtopic,"},{"line_number":1222,"context_line":"            type\u003d\u0027fanout\u0027,"},{"line_number":1223,"context_line":"            durable\u003dFalse,"},{"line_number":1224,"context_line":"            exchange_auto_delete\u003dTrue,"},{"line_number":1225,"context_line":"            queue_auto_delete\u003dFalse,"},{"line_number":1226,"context_line":"            callback\u003dcallback,"}],"source_content_type":"text/x-python","patch_set":10,"id":"e585f9e2_f3b26b8f","line":1223,"in_reply_to":"4589588d_25e745e5","updated":"2022-02-04 19:40:35.000000000","message":"Done","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3be158722963e62b92a54827063a2477b3a91eb9","unresolved":true,"context_lines":[{"line_number":1313,"context_line":"            queue \u003d kombu.entity.Queue("},{"line_number":1314,"context_line":"                channel\u003dself.channel,"},{"line_number":1315,"context_line":"                exchange\u003dexchange,"},{"line_number":1316,"context_line":"                durable\u003dexchange.durable,"},{"line_number":1317,"context_line":"                auto_delete\u003dexchange.auto_delete,"},{"line_number":1318,"context_line":"                name\u003drouting_key,"},{"line_number":1319,"context_line":"                routing_key\u003drouting_key,"}],"source_content_type":"text/x-python","patch_set":10,"id":"19bae9c4_49d6f884","line":1316,"updated":"2021-10-07 15:00:29.000000000","message":"i\u0027m not sure -- what does it mean if this is False and rabbit_quorum_queue is True. Will the behaviour be what the user expected?","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"ba1af8481a879ee30dcf0f92ee0aa3c3f95397ce","unresolved":true,"context_lines":[{"line_number":1313,"context_line":"            queue \u003d kombu.entity.Queue("},{"line_number":1314,"context_line":"                channel\u003dself.channel,"},{"line_number":1315,"context_line":"                exchange\u003dexchange,"},{"line_number":1316,"context_line":"                durable\u003dexchange.durable,"},{"line_number":1317,"context_line":"                auto_delete\u003dexchange.auto_delete,"},{"line_number":1318,"context_line":"                name\u003drouting_key,"},{"line_number":1319,"context_line":"                routing_key\u003drouting_key,"}],"source_content_type":"text/x-python","patch_set":10,"id":"cb1b5fbb_d76347db","line":1316,"in_reply_to":"19bae9c4_49d6f884","updated":"2021-10-07 15:38:38.000000000","message":"it cant be since its value (self.amqp_durable_queues or self.rabbit_quorum_queue)","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"245193d3175ab697640b3665fff8dd6375028de7","unresolved":false,"context_lines":[{"line_number":1313,"context_line":"            queue \u003d kombu.entity.Queue("},{"line_number":1314,"context_line":"                channel\u003dself.channel,"},{"line_number":1315,"context_line":"                exchange\u003dexchange,"},{"line_number":1316,"context_line":"                durable\u003dexchange.durable,"},{"line_number":1317,"context_line":"                auto_delete\u003dexchange.auto_delete,"},{"line_number":1318,"context_line":"                name\u003drouting_key,"},{"line_number":1319,"context_line":"                routing_key\u003drouting_key,"}],"source_content_type":"text/x-python","patch_set":10,"id":"e2a5abca_fb07019a","line":1316,"in_reply_to":"cb1b5fbb_d76347db","updated":"2021-10-07 16:03:37.000000000","message":"ah, thx, I didn\u0027t look to see where/what exchange came from :)","commit_id":"18d97ea958bdde590bd0e3bcba595d8ca9ce9514"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"245193d3175ab697640b3665fff8dd6375028de7","unresolved":true,"context_lines":[{"line_number":149,"context_line":"                \u0027nodes, run: \u0027"},{"line_number":150,"context_line":"                \"\"\"\\\"rabbitmqctl set_policy HA \u0027^(?!amq\\\\.).*\u0027 \"\"\""},{"line_number":151,"context_line":"                \"\"\"\u0027{\"ha-mode\": \"all\"}\u0027 \\\"\"\"\""},{"line_number":152,"context_line":"                \u0027this will be disabled if rabbit_quorum_queue is enabled \u0027),"},{"line_number":153,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":154,"context_line":"                default\u003dFalse,"},{"line_number":155,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"8a226747_35814573","line":152,"updated":"2021-10-07 16:03:37.000000000","message":"nit s/this will be/This will be/ \n\nand I think it is missing a period after \u0027enabled\u0027.","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"48eb1b0d4cd6f2bf86887145a485ce076a87646f","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                \u0027nodes, run: \u0027"},{"line_number":150,"context_line":"                \"\"\"\\\"rabbitmqctl set_policy HA \u0027^(?!amq\\\\.).*\u0027 \"\"\""},{"line_number":151,"context_line":"                \"\"\"\u0027{\"ha-mode\": \"all\"}\u0027 \\\"\"\"\""},{"line_number":152,"context_line":"                \u0027this will be disabled if rabbit_quorum_queue is enabled \u0027),"},{"line_number":153,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":154,"context_line":"                default\u003dFalse,"},{"line_number":155,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"930d7a36_5e5145b1","line":152,"in_reply_to":"8a226747_35814573","updated":"2021-10-08 21:03:11.000000000","message":"Done","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"245193d3175ab697640b3665fff8dd6375028de7","unresolved":true,"context_lines":[{"line_number":159,"context_line":"                \u0027Raft consensus algorithm. It is available as of \u0027"},{"line_number":160,"context_line":"                \u0027RabbitMQ 3.8.0. If set this option will take priority over \u0027"},{"line_number":161,"context_line":"                \u0027the HA queues (``rabbit_ha_queues``) aka mirrored queues, \u0027"},{"line_number":162,"context_line":"                \u0027in other words it will disable HA queues.\u0027),"},{"line_number":163,"context_line":"    cfg.IntOpt(\u0027rabbit_transient_queues_ttl\u0027,"},{"line_number":164,"context_line":"               min\u003d1,"},{"line_number":165,"context_line":"               default\u003d1800,"}],"source_content_type":"text/x-python","patch_set":11,"id":"e7ba2eab_f644dee0","line":162,"updated":"2021-10-07 16:03:37.000000000","message":"I think we should add something here, about \u0027If this is enabled, the queue will be durable and ``amqp_durable_queues`` option is ignored.","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"48eb1b0d4cd6f2bf86887145a485ce076a87646f","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                \u0027Raft consensus algorithm. It is available as of \u0027"},{"line_number":160,"context_line":"                \u0027RabbitMQ 3.8.0. If set this option will take priority over \u0027"},{"line_number":161,"context_line":"                \u0027the HA queues (``rabbit_ha_queues``) aka mirrored queues, \u0027"},{"line_number":162,"context_line":"                \u0027in other words it will disable HA queues.\u0027),"},{"line_number":163,"context_line":"    cfg.IntOpt(\u0027rabbit_transient_queues_ttl\u0027,"},{"line_number":164,"context_line":"               min\u003d1,"},{"line_number":165,"context_line":"               default\u003d1800,"}],"source_content_type":"text/x-python","patch_set":11,"id":"dbf9c761_75587b84","line":162,"in_reply_to":"e7ba2eab_f644dee0","updated":"2021-10-08 21:03:11.000000000","message":"Done","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"245193d3175ab697640b3665fff8dd6375028de7","unresolved":true,"context_lines":[{"line_number":247,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":250,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    if rabbit_queue_ttl \u003e 0:"},{"line_number":253,"context_line":"        args[\u0027x-expires\u0027] \u003d rabbit_queue_ttl * 1000"}],"source_content_type":"text/x-python","patch_set":11,"id":"c9cf7edc_2bb48208","line":250,"updated":"2021-10-07 16:03:37.000000000","message":"Based on my understanding, it looks like the code has been changed so that if rabbit_quorum_queue config option is enabled (True), then durable will be True. If that is the case, we don\u0027t need to pass \u0027durable\u0027 to this method.\n\nI see these options:\n- don\u0027t pass \u0027durable\u0027 and assume the code is correct\n- pass \u0027durable\u0027 and if \u0027durable\u0027 is False, raise exception (I\u0027m assuming we think it is incorrect for durable to be False and rabbit_quorum_queue is True)\n\nAs an aside, I thought I saw in passing when I was trying to understand this, that for rabbit_ha_queues, durable needed to be True as well so I suspect that the existing code is allowing for durable\u003dFalse with rabbit_ha_queues, and it is up to the operator to know this :-(","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"22d7fea7deae643c692783cd1d89a517ec3e68c2","unresolved":true,"context_lines":[{"line_number":247,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":250,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    if rabbit_queue_ttl \u003e 0:"},{"line_number":253,"context_line":"        args[\u0027x-expires\u0027] \u003d rabbit_queue_ttl * 1000"}],"source_content_type":"text/x-python","patch_set":11,"id":"9c3b9b65_23afe31c","line":250,"updated":"2022-02-02 12:39:44.000000000","message":"Rather than ignoring the value, can we raise an exception? This seems like an obvious misconfiguration on the user end, no?","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdbd6488421a006167928fa885d00d8d22d1237b","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":250,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    if rabbit_queue_ttl \u003e 0:"},{"line_number":253,"context_line":"        args[\u0027x-expires\u0027] \u003d rabbit_queue_ttl * 1000"}],"source_content_type":"text/x-python","patch_set":11,"id":"f3e0a057_12575fc4","line":250,"in_reply_to":"01f544f0_051168c7","updated":"2022-02-04 19:40:35.000000000","message":"Ack","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"f10a157551043dc0b9e9f9ca38969a203e53ce30","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":250,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    if rabbit_queue_ttl \u003e 0:"},{"line_number":253,"context_line":"        args[\u0027x-expires\u0027] \u003d rabbit_queue_ttl * 1000"}],"source_content_type":"text/x-python","patch_set":11,"id":"3c27949d_855bc710","line":250,"in_reply_to":"9c3b9b65_23afe31c","updated":"2022-02-03 18:27:25.000000000","message":"Done","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"049f954a3e2f3d90cd4dd2cbb2c539b7be140fa0","unresolved":true,"context_lines":[{"line_number":247,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":250,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    if rabbit_queue_ttl \u003e 0:"},{"line_number":253,"context_line":"        args[\u0027x-expires\u0027] \u003d rabbit_queue_ttl * 1000"}],"source_content_type":"text/x-python","patch_set":11,"id":"01f544f0_051168c7","line":250,"in_reply_to":"c9cf7edc_2bb48208","updated":"2021-10-07 16:18:25.000000000","message":"yes as Direct / fanout queues are not durable","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"245193d3175ab697640b3665fff8dd6375028de7","unresolved":true,"context_lines":[{"line_number":277,"context_line":"    def __init__(self, exchange_name, queue_name, routing_key, type, durable,"},{"line_number":278,"context_line":"                 exchange_auto_delete, queue_auto_delete, callback,"},{"line_number":279,"context_line":"                 nowait\u003dFalse, rabbit_ha_queues\u003dNone, rabbit_queue_ttl\u003d0,"},{"line_number":280,"context_line":"                 enable_cancel_on_failover\u003dFalse, rabbit_quorum_queue\u003dNone):"},{"line_number":281,"context_line":"        \"\"\"Init the Consumer class with the exchange_name, routing_key,"},{"line_number":282,"context_line":"        type, durable auto_delete"},{"line_number":283,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"ab1cfc0c_a9d54f45","line":280,"updated":"2021-10-07 16:03:37.000000000","message":"i notice below, that Consumer() is called with rabbit_quorum_queue\u003dFalse. Perhaps this should be s/None/False/ ?","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"48eb1b0d4cd6f2bf86887145a485ce076a87646f","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    def __init__(self, exchange_name, queue_name, routing_key, type, durable,"},{"line_number":278,"context_line":"                 exchange_auto_delete, queue_auto_delete, callback,"},{"line_number":279,"context_line":"                 nowait\u003dFalse, rabbit_ha_queues\u003dNone, rabbit_queue_ttl\u003d0,"},{"line_number":280,"context_line":"                 enable_cancel_on_failover\u003dFalse, rabbit_quorum_queue\u003dNone):"},{"line_number":281,"context_line":"        \"\"\"Init the Consumer class with the exchange_name, routing_key,"},{"line_number":282,"context_line":"        type, durable auto_delete"},{"line_number":283,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"d7c0b9b6_677f7d75","line":280,"in_reply_to":"ab1cfc0c_a9d54f45","updated":"2021-10-08 21:03:11.000000000","message":"Done","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"48eb1b0d4cd6f2bf86887145a485ce076a87646f","unresolved":true,"context_lines":[{"line_number":248,"context_line":"    if not rabbit_quorum_queue and rabbit_ha_queues:"},{"line_number":249,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":252,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    if rabbit_queue_ttl \u003e 0:"}],"source_content_type":"text/x-python","patch_set":16,"id":"0c2292b9_266e49f5","line":251,"updated":"2021-10-08 21:03:11.000000000","message":"Continuing my comment from patchset 11, I see two choices:\n1. do not pass \u0027durable\u0027 as a parameter to this method and only check here \u0027if rabbit_quorum_queue:\u0027. Similar to rabbit_ha_queues not checking the \u0027durable\u0027 value. The reason for this is the belief that the code has been modified (in this PR) so that durable is True when rabbit_quorum_queue is true.\n\n2. change this code to be something like:\n\nif rabbit_quorum_queue:\n    if durable:\n        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027\n    else:\n        LOG something. either exception or warning, your choice, to indicate that even though rabbit_quorum_queue was specified, it wasn\u0027t done because durable was false. Or to fail/raise exception so that the operator has to take some action.\n\n3. I guess another choice is to do something like:\n\nif rabbit_quorum_queue:\n    args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027\n    if not durable:\n        LOG something or raise exception\n\nI don\u0027t know enough to know what the better way might be to deal with this inconsistency but I do believe that the minimum is to inform the user. I tend to the raise exception though because operators won\u0027t do anything unless they have to, and thinking that they have rabbit_quorum_queue set when it isn\u0027t, could be disastrous in the long run...","commit_id":"3bddd629519af1d10935074ae5d1db294ab3aabf"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"95e2c46afb488c09c65ab125b32e0d1139d87fc6","unresolved":true,"context_lines":[{"line_number":248,"context_line":"    if not rabbit_quorum_queue and rabbit_ha_queues:"},{"line_number":249,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":252,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    if rabbit_queue_ttl \u003e 0:"}],"source_content_type":"text/x-python","patch_set":16,"id":"daf5215f_e3cafe26","line":251,"in_reply_to":"0c2292b9_266e49f5","updated":"2021-10-08 21:09:01.000000000","message":"if durable:\n        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027\nnot every durable queue is quorum\nso this choice is preferred\n    args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027\n    if not durable:\n        LOG something or raise exception\nbut since durable will always be true for when rabbit_quorum_queue the exception will never be reached","commit_id":"3bddd629519af1d10935074ae5d1db294ab3aabf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed59c32e5cbeb284c64ae19d7bf2298637eca159","unresolved":false,"context_lines":[{"line_number":248,"context_line":"    if not rabbit_quorum_queue and rabbit_ha_queues:"},{"line_number":249,"context_line":"        args[\u0027x-ha-policy\u0027] \u003d \u0027all\u0027"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    if rabbit_quorum_queue and durable:"},{"line_number":252,"context_line":"        args[\u0027x-queue-type\u0027] \u003d \u0027quorum\u0027"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    if rabbit_queue_ttl \u003e 0:"}],"source_content_type":"text/x-python","patch_set":16,"id":"309eff5b_7b40ba62","line":251,"in_reply_to":"daf5215f_e3cafe26","updated":"2022-02-04 19:41:57.000000000","message":"Ack","commit_id":"3bddd629519af1d10935074ae5d1db294ab3aabf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"22d7fea7deae643c692783cd1d89a517ec3e68c2","unresolved":true,"context_lines":[{"line_number":152,"context_line":"                \u0027This will be disabled if rabbit_quorum_queue is enabled.\u0027),"},{"line_number":153,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":154,"context_line":"                default\u003dFalse,"},{"line_number":155,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"},{"line_number":156,"context_line":"                \u0027(x-queue-type: quorum). \u0027"},{"line_number":157,"context_line":"                \u0027The quorum queue is a modern queue type for RabbitMQ \u0027"},{"line_number":158,"context_line":"                \u0027implementing a durable, replicated FIFO queue based on the \u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"454db091_791fd5a1","line":155,"range":{"start_line":155,"start_character":22,"end_line":155,"end_character":32},"updated":"2022-02-02 12:39:44.000000000","message":"Try? Can this fail to apply? If so (e.g. if RabbitMQ \u003c 3.8.0), how does it fail? Can we pre-empt this failure by e.g. checking if the RabbitMQ version is new enough or if it has support?","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdbd6488421a006167928fa885d00d8d22d1237b","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                \u0027This will be disabled if rabbit_quorum_queue is enabled.\u0027),"},{"line_number":153,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":154,"context_line":"                default\u003dFalse,"},{"line_number":155,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"},{"line_number":156,"context_line":"                \u0027(x-queue-type: quorum). \u0027"},{"line_number":157,"context_line":"                \u0027The quorum queue is a modern queue type for RabbitMQ \u0027"},{"line_number":158,"context_line":"                \u0027implementing a durable, replicated FIFO queue based on the \u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"4206c134_19ddb3bf","line":155,"range":{"start_line":155,"start_character":22,"end_line":155,"end_character":32},"in_reply_to":"09bb5cd7_1ca475dc","updated":"2022-02-04 19:40:35.000000000","message":"Ack","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"f10a157551043dc0b9e9f9ca38969a203e53ce30","unresolved":true,"context_lines":[{"line_number":152,"context_line":"                \u0027This will be disabled if rabbit_quorum_queue is enabled.\u0027),"},{"line_number":153,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":154,"context_line":"                default\u003dFalse,"},{"line_number":155,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"},{"line_number":156,"context_line":"                \u0027(x-queue-type: quorum). \u0027"},{"line_number":157,"context_line":"                \u0027The quorum queue is a modern queue type for RabbitMQ \u0027"},{"line_number":158,"context_line":"                \u0027implementing a durable, replicated FIFO queue based on the \u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"09bb5cd7_1ca475dc","line":155,"range":{"start_line":155,"start_character":22,"end_line":155,"end_character":32},"in_reply_to":"454db091_791fd5a1","updated":"2022-02-03 18:27:25.000000000","message":"in that case the error will be raised from RabbitMQ side\n`It is available as of \u0027\n                \u0027RabbitMQ 3.8.0. If set this option will take priority over`\nin the configuration help","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"22d7fea7deae643c692783cd1d89a517ec3e68c2","unresolved":true,"context_lines":[{"line_number":1182,"context_line":"            callback\u003dcallback,"},{"line_number":1183,"context_line":"            rabbit_ha_queues\u003dself.rabbit_ha_queues,"},{"line_number":1184,"context_line":"            rabbit_queue_ttl\u003dself.rabbit_transient_queues_ttl,"},{"line_number":1185,"context_line":"            enable_cancel_on_failover\u003dself.enable_cancel_on_failover,"},{"line_number":1186,"context_line":"            rabbit_quorum_queue\u003dFalse)"},{"line_number":1187,"context_line":""},{"line_number":1188,"context_line":"        self.declare_consumer(consumer)"},{"line_number":1189,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"032e4f4c_711abf66","line":1186,"range":{"start_line":1185,"start_character":68,"end_line":1186,"end_character":37},"updated":"2022-02-02 12:39:44.000000000","message":"Can you drop this? As Ruby notes above, it makes no sense in this configuration.","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"f10a157551043dc0b9e9f9ca38969a203e53ce30","unresolved":false,"context_lines":[{"line_number":1182,"context_line":"            callback\u003dcallback,"},{"line_number":1183,"context_line":"            rabbit_ha_queues\u003dself.rabbit_ha_queues,"},{"line_number":1184,"context_line":"            rabbit_queue_ttl\u003dself.rabbit_transient_queues_ttl,"},{"line_number":1185,"context_line":"            enable_cancel_on_failover\u003dself.enable_cancel_on_failover,"},{"line_number":1186,"context_line":"            rabbit_quorum_queue\u003dFalse)"},{"line_number":1187,"context_line":""},{"line_number":1188,"context_line":"        self.declare_consumer(consumer)"},{"line_number":1189,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"75a3ba4a_f9769eec","line":1186,"range":{"start_line":1185,"start_character":68,"end_line":1186,"end_character":37},"in_reply_to":"032e4f4c_711abf66","updated":"2022-02-03 18:27:25.000000000","message":"Done","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"22d7fea7deae643c692783cd1d89a517ec3e68c2","unresolved":true,"context_lines":[{"line_number":1223,"context_line":"            callback\u003dcallback,"},{"line_number":1224,"context_line":"            rabbit_ha_queues\u003dself.rabbit_ha_queues,"},{"line_number":1225,"context_line":"            rabbit_queue_ttl\u003dself.rabbit_transient_queues_ttl,"},{"line_number":1226,"context_line":"            enable_cancel_on_failover\u003dself.enable_cancel_on_failover,"},{"line_number":1227,"context_line":"            rabbit_quorum_queue\u003dFalse)"},{"line_number":1228,"context_line":""},{"line_number":1229,"context_line":"        self.declare_consumer(consumer)"},{"line_number":1230,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"bfd036fe_3497d415","line":1227,"range":{"start_line":1226,"start_character":68,"end_line":1227,"end_character":37},"updated":"2022-02-02 12:39:44.000000000","message":"Ditto. Can you drop this?","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"f10a157551043dc0b9e9f9ca38969a203e53ce30","unresolved":false,"context_lines":[{"line_number":1223,"context_line":"            callback\u003dcallback,"},{"line_number":1224,"context_line":"            rabbit_ha_queues\u003dself.rabbit_ha_queues,"},{"line_number":1225,"context_line":"            rabbit_queue_ttl\u003dself.rabbit_transient_queues_ttl,"},{"line_number":1226,"context_line":"            enable_cancel_on_failover\u003dself.enable_cancel_on_failover,"},{"line_number":1227,"context_line":"            rabbit_quorum_queue\u003dFalse)"},{"line_number":1228,"context_line":""},{"line_number":1229,"context_line":"        self.declare_consumer(consumer)"},{"line_number":1230,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"7fc2e1bc_e2ad6a1c","line":1227,"range":{"start_line":1226,"start_character":68,"end_line":1227,"end_character":37},"in_reply_to":"bfd036fe_3497d415","updated":"2022-02-03 18:27:25.000000000","message":"Done","commit_id":"7e6f4f76635246f36e667a9f6df07bbba9963ce1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0ef843c1e34c4f768279553f9ec6f1010225a8f8","unresolved":true,"context_lines":[{"line_number":151,"context_line":"                \"\"\"\u0027{\"ha-mode\": \"all\"}\u0027 \\\"\"\"\"),"},{"line_number":152,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":153,"context_line":"                default\u003dFalse,"},{"line_number":154,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"},{"line_number":155,"context_line":"                \u0027(x-queue-type: quorum). \u0027"},{"line_number":156,"context_line":"                \u0027The quorum queue is a modern queue type for RabbitMQ \u0027"},{"line_number":157,"context_line":"                \u0027implementing a durable, replicated FIFO queue based on the \u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"c6ea558e_c7a295fc","line":154,"range":{"start_line":154,"start_character":22,"end_line":154,"end_character":32},"updated":"2022-02-04 19:47:39.000000000","message":"s/Try to use/Use/\n\nThis is technically true but it suggests that things will gracefully fail or fallback if it can\u0027t use it. By simply saying \"Use\", the failure mode is more obvious IMO","commit_id":"db991db3fbbe993fee90948454c050f7137ba0b4"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"1b18708cc9efb25e7c001f4e578f998defae5ca9","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                \"\"\"\u0027{\"ha-mode\": \"all\"}\u0027 \\\"\"\"\"),"},{"line_number":152,"context_line":"    cfg.BoolOpt(\u0027rabbit_quorum_queue\u0027,"},{"line_number":153,"context_line":"                default\u003dFalse,"},{"line_number":154,"context_line":"                help\u003d\u0027Try to use quorum queues in RabbitMQ \u0027"},{"line_number":155,"context_line":"                \u0027(x-queue-type: quorum). \u0027"},{"line_number":156,"context_line":"                \u0027The quorum queue is a modern queue type for RabbitMQ \u0027"},{"line_number":157,"context_line":"                \u0027implementing a durable, replicated FIFO queue based on the \u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"077cb7c2_9f9271b2","line":154,"range":{"start_line":154,"start_character":22,"end_line":154,"end_character":32},"in_reply_to":"c6ea558e_c7a295fc","updated":"2022-02-04 20:29:33.000000000","message":"Done","commit_id":"db991db3fbbe993fee90948454c050f7137ba0b4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0ef843c1e34c4f768279553f9ec6f1010225a8f8","unresolved":true,"context_lines":[{"line_number":519,"context_line":"        self.amqp_durable_queues \u003d driver_conf.amqp_durable_queues"},{"line_number":520,"context_line":"        # Quorum queues are durable by default, durable option should"},{"line_number":521,"context_line":"        # be enabled by default with quorum queues"},{"line_number":522,"context_line":"        self.durable \u003d (self.amqp_durable_queues or self.rabbit_quorum_queue)"},{"line_number":523,"context_line":"        self.amqp_auto_delete \u003d driver_conf.amqp_auto_delete"},{"line_number":524,"context_line":"        self.ssl \u003d driver_conf.ssl"},{"line_number":525,"context_line":"        self.kombu_missing_consumer_retry_timeout \u003d \\"}],"source_content_type":"text/x-python","patch_set":21,"id":"6d601f6a_69395db4","line":522,"updated":"2022-02-04 19:47:39.000000000","message":"This would probably make more sense as a property since it\u0027s a calculated value\n\n  @property\n  def durable(self):\n      return self.amqp_durable_queues or self.rabbit_quorum_queue","commit_id":"db991db3fbbe993fee90948454c050f7137ba0b4"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"1b18708cc9efb25e7c001f4e578f998defae5ca9","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        self.amqp_durable_queues \u003d driver_conf.amqp_durable_queues"},{"line_number":520,"context_line":"        # Quorum queues are durable by default, durable option should"},{"line_number":521,"context_line":"        # be enabled by default with quorum queues"},{"line_number":522,"context_line":"        self.durable \u003d (self.amqp_durable_queues or self.rabbit_quorum_queue)"},{"line_number":523,"context_line":"        self.amqp_auto_delete \u003d driver_conf.amqp_auto_delete"},{"line_number":524,"context_line":"        self.ssl \u003d driver_conf.ssl"},{"line_number":525,"context_line":"        self.kombu_missing_consumer_retry_timeout \u003d \\"}],"source_content_type":"text/x-python","patch_set":21,"id":"221406c9_3e2506b7","line":522,"in_reply_to":"6d601f6a_69395db4","updated":"2022-02-04 20:29:33.000000000","message":"Done","commit_id":"db991db3fbbe993fee90948454c050f7137ba0b4"}],"releasenotes/notes/adding_support_for_quorum_queues-3101d055b492289e.yaml":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c8a4c3f88166dbb9363beb76f6a3d3843bea1429","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adding support for quorum queues. Quorum queues are enabled if the"},{"line_number":5,"context_line":"    ``rabbit_quorum_queue`` parameter is sets (``x-queue-type: quorum``)."},{"line_number":6,"context_line":"    Setting x-queue-type to quorum means that replicated FIFO queue based on"},{"line_number":7,"context_line":"    the Raft consensus algorithm will be used. It is available as of"},{"line_number":8,"context_line":"    RabbitMQ 3.8.0. If set this option will take priority over"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"1fab179e_cf8337d3","line":5,"updated":"2021-10-06 20:02:55.000000000","message":"nit s/is sets/is set/","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"1b18708cc9efb25e7c001f4e578f998defae5ca9","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adding support for quorum queues. Quorum queues are enabled if the"},{"line_number":5,"context_line":"    ``rabbit_quorum_queue`` parameter is sets (``x-queue-type: quorum``)."},{"line_number":6,"context_line":"    Setting x-queue-type to quorum means that replicated FIFO queue based on"},{"line_number":7,"context_line":"    the Raft consensus algorithm will be used. It is available as of"},{"line_number":8,"context_line":"    RabbitMQ 3.8.0. If set this option will take priority over"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"725dfa9a_98b60a6b","line":5,"in_reply_to":"12f1c611_b0070090","updated":"2022-02-04 20:29:33.000000000","message":"Done","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0ef843c1e34c4f768279553f9ec6f1010225a8f8","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adding support for quorum queues. Quorum queues are enabled if the"},{"line_number":5,"context_line":"    ``rabbit_quorum_queue`` parameter is sets (``x-queue-type: quorum``)."},{"line_number":6,"context_line":"    Setting x-queue-type to quorum means that replicated FIFO queue based on"},{"line_number":7,"context_line":"    the Raft consensus algorithm will be used. It is available as of"},{"line_number":8,"context_line":"    RabbitMQ 3.8.0. If set this option will take priority over"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"12f1c611_b0070090","line":5,"in_reply_to":"1fab179e_cf8337d3","updated":"2022-02-04 19:47:39.000000000","message":"This is still wrong","commit_id":"d1cb43cf3fcb972dca3e0b19f8f16a4d04302833"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"245193d3175ab697640b3665fff8dd6375028de7","unresolved":true,"context_lines":[{"line_number":7,"context_line":"    the Raft consensus algorithm will be used. It is available as of"},{"line_number":8,"context_line":"    RabbitMQ 3.8.0. If set this option will take priority over"},{"line_number":9,"context_line":"    the HA queues (``rabbit_ha_queues``) aka mirrored queues,"},{"line_number":10,"context_line":"    in other words HA queues will be ignored."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"aba3478d_65da3748","line":10,"updated":"2021-10-07 16:03:37.000000000","message":"i don\u0027t know if it is worth adding something here about the queues being durable and amqp_durable_queues config option being ignored or overridden or whatever the wording is.","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"48eb1b0d4cd6f2bf86887145a485ce076a87646f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    the Raft consensus algorithm will be used. It is available as of"},{"line_number":8,"context_line":"    RabbitMQ 3.8.0. If set this option will take priority over"},{"line_number":9,"context_line":"    the HA queues (``rabbit_ha_queues``) aka mirrored queues,"},{"line_number":10,"context_line":"    in other words HA queues will be ignored."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"db210c9c_7703ea02","line":10,"in_reply_to":"aba3478d_65da3748","updated":"2021-10-08 21:03:11.000000000","message":"Done","commit_id":"9e2ae43834d8d47ca7d4d9eaafe6a64049165b31"}]}
