)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"89a083906bd74ac71ddf8b4880c5b4d0b0ad5e1f","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This allows to set different connect options for different backends."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"https: //bugs.launchpad.net/os-brick/+bug/2143587"},{"line_number":15,"context_line":"Change-Id: Ia445af70b13c8d159f234cd87f423ca3c59f6fb5"},{"line_number":16,"context_line":"Signed-off-by: Josselin Mouette \u003cjosselin.mouette@exaion.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"f9060433_34da0a61","line":14,"updated":"2026-08-21 19:08:57.000000000","message":"make sure you have this linked correctly - see other patches for the correct formatting","commit_id":"9a4325448a26eb72d3fbe25935419863aa89cbbf"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"2eec0f063a8775c65285bd406c960e48001079a2","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This allows to set different connect options for different backends."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"https: //bugs.launchpad.net/os-brick/+bug/2143587"},{"line_number":15,"context_line":"Change-Id: Ia445af70b13c8d159f234cd87f423ca3c59f6fb5"},{"line_number":16,"context_line":"Signed-off-by: Josselin Mouette \u003cjosselin.mouette@exaion.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"4ea45d2e_c5f33f12","line":14,"in_reply_to":"f9060433_34da0a61","updated":"2026-08-24 08:21:02.000000000","message":"Done","commit_id":"9a4325448a26eb72d3fbe25935419863aa89cbbf"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"1e463c743fa62123003bbedf3ed1983cbc377db4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8964f8b6_0475352a","updated":"2026-08-11 15:18:22.000000000","message":"This is a user-facing feature so it needs a release note as well.","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"11966c892c67a971f438ebff51d41d72289981ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2f422aaa_f982d611","updated":"2026-08-21 14:39:10.000000000","message":"You must have a release note for this die to operator facing changes.\n\nWhat populates `connect_opts` today? Without something populating it the feature isn\u0027t actually doing anytihng","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"2f507a752d1b4059f8a21ea3988d9a9f9aec407f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"20abfdc2_c074f2a1","in_reply_to":"2d47c2c5_0459ddf9","updated":"2026-08-24 15:54:05.000000000","message":"Done","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"6dda0b03bb9be87478a7edbf25296538e83f07be","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c6904e02_07908575","in_reply_to":"2f422aaa_f982d611","updated":"2026-08-21 14:50:24.000000000","message":"The operator changes are expected in cinder rather than os-brick: https://review.opendev.org/c/openstack/cinder/+/979345","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"be37dc682b6ad318626e577c9de890bd22ce1db5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2d47c2c5_0459ddf9","in_reply_to":"75594d17_22804971","updated":"2026-08-24 13:40:42.000000000","message":"Now I see the depends-on patch - that is the one that needs the release notes as that is the one adding the new config option.","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"2eec0f063a8775c65285bd406c960e48001079a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"75594d17_22804971","in_reply_to":"8f6b0a74_d8dca6b6","updated":"2026-08-24 08:21:02.000000000","message":"Done","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"484a16754bafa17cee406ce8a2de96b932602e81","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8f6b0a74_d8dca6b6","in_reply_to":"c6904e02_07908575","updated":"2026-08-21 19:08:00.000000000","message":"Ah - I see - I didn\u0027t find that patch as the bug reference has not been correctly done in its commit. That being said there are no release notes for the patch. You should maybe do a Dpends-On between these 2 patches.","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"be37dc682b6ad318626e577c9de890bd22ce1db5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b4cdb740_bd2caa27","updated":"2026-08-24 13:40:42.000000000","message":"Nearly there - needs the associated patch amending and the release notes moving to that patch","commit_id":"9f2d2b58b5c8bef467829e6789aca9be0c57ae35"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"2f507a752d1b4059f8a21ea3988d9a9f9aec407f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"05f961ce_b473c583","updated":"2026-08-24 15:54:05.000000000","message":"Moved the release note and make it more detailed. Thank you for your patience.","commit_id":"91ce76570d25752b7d51cdb43903ecf2c3e72c2c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"a95ecf6a13d96c610b47ca7b6c1d033c5a98e0d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fd17e607_ea9930c2","updated":"2026-08-24 16:46:47.000000000","message":"small typo nit is all","commit_id":"91ce76570d25752b7d51cdb43903ecf2c3e72c2c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"4e6644853d29bb9b0285c9a7dd05b1856e264767","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"6c692879_2276862c","updated":"2026-08-24 17:50:44.000000000","message":"LGTM. \nThanks for working through this.","commit_id":"0ad742d5c141f7757c62b840d019aae70a975534"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"737328ed09491a03209e7ed5dc0af6452d7730f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"89028baf_bfe19b7f","updated":"2026-08-24 18:06:37.000000000","message":"recheck","commit_id":"0ad742d5c141f7757c62b840d019aae70a975534"}],"os_brick/initiator/connectors/nvmeof.py":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"1e463c743fa62123003bbedf3ed1983cbc377db4","unresolved":true,"context_lines":[{"line_number":72,"context_line":"REPLICA_COUNT \u003d \u0027replica_count\u0027"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# Based on available options in nvme-cli 2.16"},{"line_number":75,"context_line":"ALLOWED_CONNECT_OPTS \u003d {"},{"line_number":76,"context_line":"    \u0027nr_io_queues\u0027: int,"},{"line_number":77,"context_line":"    \u0027nr_write_queues\u0027: int,"},{"line_number":78,"context_line":"    \u0027nr_poll_queues\u0027: int,"}],"source_content_type":"text/x-python","patch_set":2,"id":"8ed6bfe0_8ac8bcc1","line":75,"updated":"2026-08-11 15:18:22.000000000","message":"might be worth adding `ctrl_tmo_loss` as a tunable, but this would then conflict with the hard-coded `-l -1` in `_connect_target`","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"c75ade39f21a60a32811a3ba0c6f60c6a7d80bfb","unresolved":false,"context_lines":[{"line_number":72,"context_line":"REPLICA_COUNT \u003d \u0027replica_count\u0027"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# Based on available options in nvme-cli 2.16"},{"line_number":75,"context_line":"ALLOWED_CONNECT_OPTS \u003d {"},{"line_number":76,"context_line":"    \u0027nr_io_queues\u0027: int,"},{"line_number":77,"context_line":"    \u0027nr_write_queues\u0027: int,"},{"line_number":78,"context_line":"    \u0027nr_poll_queues\u0027: int,"}],"source_content_type":"text/x-python","patch_set":2,"id":"6db82577_66fd2232","line":75,"in_reply_to":"7a64ff98_31b87c61","updated":"2026-08-21 17:28:54.000000000","message":"Acknowledged","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"46764c1c0a0414a51f08cb89f5f05cc4bfd17f75","unresolved":true,"context_lines":[{"line_number":72,"context_line":"REPLICA_COUNT \u003d \u0027replica_count\u0027"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# Based on available options in nvme-cli 2.16"},{"line_number":75,"context_line":"ALLOWED_CONNECT_OPTS \u003d {"},{"line_number":76,"context_line":"    \u0027nr_io_queues\u0027: int,"},{"line_number":77,"context_line":"    \u0027nr_write_queues\u0027: int,"},{"line_number":78,"context_line":"    \u0027nr_poll_queues\u0027: int,"}],"source_content_type":"text/x-python","patch_set":2,"id":"d9843cfc_74d8b000","line":75,"in_reply_to":"8ed6bfe0_8ac8bcc1","updated":"2026-08-21 13:55:08.000000000","message":"Omitting it is intentional, since it looks like a really bad idea to disable ctrl_tmo_loss. Once the link is lost, you don’t really have a way to restart it without migrating the VM to another host.","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"6dda0b03bb9be87478a7edbf25296538e83f07be","unresolved":true,"context_lines":[{"line_number":72,"context_line":"REPLICA_COUNT \u003d \u0027replica_count\u0027"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# Based on available options in nvme-cli 2.16"},{"line_number":75,"context_line":"ALLOWED_CONNECT_OPTS \u003d {"},{"line_number":76,"context_line":"    \u0027nr_io_queues\u0027: int,"},{"line_number":77,"context_line":"    \u0027nr_write_queues\u0027: int,"},{"line_number":78,"context_line":"    \u0027nr_poll_queues\u0027: int,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a64ff98_31b87c61","line":75,"in_reply_to":"a6a4bf69_573de151","updated":"2026-08-21 14:50:24.000000000","message":"Acknowledged","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"11966c892c67a971f438ebff51d41d72289981ea","unresolved":true,"context_lines":[{"line_number":72,"context_line":"REPLICA_COUNT \u003d \u0027replica_count\u0027"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# Based on available options in nvme-cli 2.16"},{"line_number":75,"context_line":"ALLOWED_CONNECT_OPTS \u003d {"},{"line_number":76,"context_line":"    \u0027nr_io_queues\u0027: int,"},{"line_number":77,"context_line":"    \u0027nr_write_queues\u0027: int,"},{"line_number":78,"context_line":"    \u0027nr_poll_queues\u0027: int,"}],"source_content_type":"text/x-python","patch_set":2,"id":"a6a4bf69_573de151","line":75,"in_reply_to":"d9843cfc_74d8b000","updated":"2026-08-21 14:39:10.000000000","message":"OK - I\u0027ll accept that. Exposing it could allow finite values to be set which might not be good. \nMight be worth a comment next to ALLOWED_CONNECT_OPTS stating it has been delibertely omitted","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"1e463c743fa62123003bbedf3ed1983cbc377db4","unresolved":true,"context_lines":[{"line_number":76,"context_line":"    \u0027nr_io_queues\u0027: int,"},{"line_number":77,"context_line":"    \u0027nr_write_queues\u0027: int,"},{"line_number":78,"context_line":"    \u0027nr_poll_queues\u0027: int,"},{"line_number":79,"context_line":"    \u0027queue_size\u0027: int,"},{"line_number":80,"context_line":"    \u0027keep_alive_tmo\u0027: int,"},{"line_number":81,"context_line":"    \u0027reconnect_delay\u0027: int,"},{"line_number":82,"context_line":"    \u0027tos\u0027: int,"}],"source_content_type":"text/x-python","patch_set":2,"id":"f05a46b8_f616e4c4","line":79,"updated":"2026-08-11 15:18:22.000000000","message":"also this value conflicts with the hard-coded `-Q 128` in `_connect_target`.\nFor both of these build the defaults as a dict and merge theses defined over them.","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"6dda0b03bb9be87478a7edbf25296538e83f07be","unresolved":true,"context_lines":[{"line_number":76,"context_line":"    \u0027nr_io_queues\u0027: int,"},{"line_number":77,"context_line":"    \u0027nr_write_queues\u0027: int,"},{"line_number":78,"context_line":"    \u0027nr_poll_queues\u0027: int,"},{"line_number":79,"context_line":"    \u0027queue_size\u0027: int,"},{"line_number":80,"context_line":"    \u0027keep_alive_tmo\u0027: int,"},{"line_number":81,"context_line":"    \u0027reconnect_delay\u0027: int,"},{"line_number":82,"context_line":"    \u0027tos\u0027: int,"}],"source_content_type":"text/x-python","patch_set":2,"id":"cd1d3f0e_72fadfc6","line":79,"in_reply_to":"88439013_8b467525","updated":"2026-08-21 14:50:24.000000000","message":"Acknowledged","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"c75ade39f21a60a32811a3ba0c6f60c6a7d80bfb","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    \u0027nr_io_queues\u0027: int,"},{"line_number":77,"context_line":"    \u0027nr_write_queues\u0027: int,"},{"line_number":78,"context_line":"    \u0027nr_poll_queues\u0027: int,"},{"line_number":79,"context_line":"    \u0027queue_size\u0027: int,"},{"line_number":80,"context_line":"    \u0027keep_alive_tmo\u0027: int,"},{"line_number":81,"context_line":"    \u0027reconnect_delay\u0027: int,"},{"line_number":82,"context_line":"    \u0027tos\u0027: int,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3c6916b5_1b8fa67b","line":79,"in_reply_to":"cd1d3f0e_72fadfc6","updated":"2026-08-21 17:28:54.000000000","message":"Done","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"11966c892c67a971f438ebff51d41d72289981ea","unresolved":true,"context_lines":[{"line_number":76,"context_line":"    \u0027nr_io_queues\u0027: int,"},{"line_number":77,"context_line":"    \u0027nr_write_queues\u0027: int,"},{"line_number":78,"context_line":"    \u0027nr_poll_queues\u0027: int,"},{"line_number":79,"context_line":"    \u0027queue_size\u0027: int,"},{"line_number":80,"context_line":"    \u0027keep_alive_tmo\u0027: int,"},{"line_number":81,"context_line":"    \u0027reconnect_delay\u0027: int,"},{"line_number":82,"context_line":"    \u0027tos\u0027: int,"}],"source_content_type":"text/x-python","patch_set":2,"id":"88439013_8b467525","line":79,"in_reply_to":"e82886bc_5f83c48f","updated":"2026-08-21 14:39:10.000000000","message":"using th alst option might work today, but there is no gaurantee that this behaviour won\u0027t change in the future as it does feel like something someone will eventually raise an error on - same parameter parsed twice.","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"46764c1c0a0414a51f08cb89f5f05cc4bfd17f75","unresolved":true,"context_lines":[{"line_number":76,"context_line":"    \u0027nr_io_queues\u0027: int,"},{"line_number":77,"context_line":"    \u0027nr_write_queues\u0027: int,"},{"line_number":78,"context_line":"    \u0027nr_poll_queues\u0027: int,"},{"line_number":79,"context_line":"    \u0027queue_size\u0027: int,"},{"line_number":80,"context_line":"    \u0027keep_alive_tmo\u0027: int,"},{"line_number":81,"context_line":"    \u0027reconnect_delay\u0027: int,"},{"line_number":82,"context_line":"    \u0027tos\u0027: int,"}],"source_content_type":"text/x-python","patch_set":2,"id":"e82886bc_5f83c48f","line":79,"in_reply_to":"f05a46b8_f616e4c4","updated":"2026-08-21 13:55:08.000000000","message":"From our tests, this was not an issue since nvme-cli will use the last option. But you are right that setting defaults would be cleaner. I will look into it.","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c43c3b1116db66bf3c75cd78edbc0801646a20ba","unresolved":false,"context_lines":[{"line_number":987,"context_line":"                       \u0027-t\u0027, portal.transport, \u0027-n\u0027, target.nqn, \u0027-l\u0027, \u0027-1\u0027]"},{"line_number":988,"context_line":"                if target.host_nqn:"},{"line_number":989,"context_line":"                    cmd.extend([\u0027-q\u0027, target.host_nqn])"},{"line_number":990,"context_line":"                cmd.extend(extra_connect_opts(target.connect_opts))"},{"line_number":991,"context_line":"                try:"},{"line_number":992,"context_line":"                    self.run_nvme_cli(cmd)"},{"line_number":993,"context_line":"                    connected \u003d True"}],"source_content_type":"text/x-python","patch_set":3,"id":"c13f5f8d_357ce47a","line":990,"updated":"2026-08-21 19:31:10.000000000","message":"mypy: error: Argument 1 to","commit_id":"9a4325448a26eb72d3fbe25935419863aa89cbbf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2296bb45a4d5f2dc98ec4b1b11bca99ba02dd4a0","unresolved":false,"context_lines":[{"line_number":987,"context_line":"                       \u0027-t\u0027, portal.transport, \u0027-n\u0027, target.nqn, \u0027-l\u0027, \u0027-1\u0027]"},{"line_number":988,"context_line":"                if target.host_nqn:"},{"line_number":989,"context_line":"                    cmd.extend([\u0027-q\u0027, target.host_nqn])"},{"line_number":990,"context_line":"                cmd.extend(extra_connect_opts(target.connect_opts))"},{"line_number":991,"context_line":"                try:"},{"line_number":992,"context_line":"                    self.run_nvme_cli(cmd)"},{"line_number":993,"context_line":"                    connected \u003d True"}],"source_content_type":"text/x-python","patch_set":4,"id":"cba11492_deeae725","line":990,"updated":"2026-08-24 10:43:18.000000000","message":"mypy: error: Argument 1 to","commit_id":"9f2d2b58b5c8bef467829e6789aca9be0c57ae35"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"a95ecf6a13d96c610b47ca7b6c1d033c5a98e0d2","unresolved":true,"context_lines":[{"line_number":72,"context_line":"REPLICA_COUNT \u003d \u0027replica_count\u0027"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# Based on available options in nvme-cli 2.16"},{"line_number":75,"context_line":"# Omitting ctrl_tmo_loss since changing it can make the mount impossible to"},{"line_number":76,"context_line":"# rescue from the API"},{"line_number":77,"context_line":"ALLOWED_CONNECT_OPTS \u003d {"},{"line_number":78,"context_line":"    \u0027nr_io_queues\u0027: int,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1c58cace_f5ff1fcb","line":75,"range":{"start_line":75,"start_character":11,"end_line":75,"end_character":25},"updated":"2026-08-24 16:46:47.000000000","message":"nit: the correct name is `ctrl_loss_tmo`","commit_id":"91ce76570d25752b7d51cdb43903ecf2c3e72c2c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"4e6644853d29bb9b0285c9a7dd05b1856e264767","unresolved":false,"context_lines":[{"line_number":72,"context_line":"REPLICA_COUNT \u003d \u0027replica_count\u0027"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# Based on available options in nvme-cli 2.16"},{"line_number":75,"context_line":"# Omitting ctrl_tmo_loss since changing it can make the mount impossible to"},{"line_number":76,"context_line":"# rescue from the API"},{"line_number":77,"context_line":"ALLOWED_CONNECT_OPTS \u003d {"},{"line_number":78,"context_line":"    \u0027nr_io_queues\u0027: int,"}],"source_content_type":"text/x-python","patch_set":5,"id":"fcf47d5d_f6041408","line":75,"range":{"start_line":75,"start_character":11,"end_line":75,"end_character":25},"in_reply_to":"1c58cace_f5ff1fcb","updated":"2026-08-24 17:50:44.000000000","message":"Done","commit_id":"91ce76570d25752b7d51cdb43903ecf2c3e72c2c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"15aa070906bf2e49521b61a97b68bf2a4a3fb87e","unresolved":false,"context_lines":[{"line_number":987,"context_line":"                       \u0027-t\u0027, portal.transport, \u0027-n\u0027, target.nqn, \u0027-l\u0027, \u0027-1\u0027]"},{"line_number":988,"context_line":"                if target.host_nqn:"},{"line_number":989,"context_line":"                    cmd.extend([\u0027-q\u0027, target.host_nqn])"},{"line_number":990,"context_line":"                cmd.extend(extra_connect_opts(target.connect_opts))"},{"line_number":991,"context_line":"                try:"},{"line_number":992,"context_line":"                    self.run_nvme_cli(cmd)"},{"line_number":993,"context_line":"                    connected \u003d True"}],"source_content_type":"text/x-python","patch_set":6,"id":"1875f766_aa473335","line":990,"updated":"2026-08-24 20:11:36.000000000","message":"mypy: error: Argument 1 to","commit_id":"0ad742d5c141f7757c62b840d019aae70a975534"}],"os_brick/tests/initiator/connectors/test_nvmeof.py":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"1e463c743fa62123003bbedf3ed1983cbc377db4","unresolved":true,"context_lines":[{"line_number":1392,"context_line":"                retries * [mock.call([\u0027connect\u0027, \u0027-a\u0027, \u0027portal2\u0027, \u0027-s\u0027,"},{"line_number":1393,"context_line":"                                      \u0027port2\u0027, \u0027-t\u0027, \u0027tcp\u0027, \u0027-n\u0027, \u0027nqn_value\u0027,"},{"line_number":1394,"context_line":"                                      \u0027-Q\u0027, \u0027128\u0027, \u0027-l\u0027, \u0027-1\u0027] +"},{"line_number":1395,"context_line":"                                     CONNECT_OPTS_EXEC)])"},{"line_number":1396,"context_line":"        else:"},{"line_number":1397,"context_line":"            mock_cli.assert_not_called()"},{"line_number":1398,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"55d4e63c_b926fd25","line":1395,"updated":"2026-08-11 15:18:22.000000000","message":"you are adding `-queue_length \u003cvalue\u003e` here, which conflicts with `-Q 128` so asserts are looking for two conflicting options.\nAlso `extra_connect_opotions` has no direct tests - unknown keys, ints that won\u0027t parse as these are all str, etc.\nA `@ddt.data` table would help here.","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"11966c892c67a971f438ebff51d41d72289981ea","unresolved":true,"context_lines":[{"line_number":1392,"context_line":"                retries * [mock.call([\u0027connect\u0027, \u0027-a\u0027, \u0027portal2\u0027, \u0027-s\u0027,"},{"line_number":1393,"context_line":"                                      \u0027port2\u0027, \u0027-t\u0027, \u0027tcp\u0027, \u0027-n\u0027, \u0027nqn_value\u0027,"},{"line_number":1394,"context_line":"                                      \u0027-Q\u0027, \u0027128\u0027, \u0027-l\u0027, \u0027-1\u0027] +"},{"line_number":1395,"context_line":"                                     CONNECT_OPTS_EXEC)])"},{"line_number":1396,"context_line":"        else:"},{"line_number":1397,"context_line":"            mock_cli.assert_not_called()"},{"line_number":1398,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"28ce5dd2_5c79ef8a","line":1395,"in_reply_to":"0cb57c58_93eccd8d","updated":"2026-08-21 14:39:10.000000000","message":"I\u0027m really asking for you to use `@ddt.data` over `extra_connect_opts` becuase the current test sets hide 3 real crashes:\n```\nconnect_opts\u003dNone\n{\u0027queue_size\u0027: None}\n{\u0027disable_sqflow\u0027: None}\n```","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"6dda0b03bb9be87478a7edbf25296538e83f07be","unresolved":true,"context_lines":[{"line_number":1392,"context_line":"                retries * [mock.call([\u0027connect\u0027, \u0027-a\u0027, \u0027portal2\u0027, \u0027-s\u0027,"},{"line_number":1393,"context_line":"                                      \u0027port2\u0027, \u0027-t\u0027, \u0027tcp\u0027, \u0027-n\u0027, \u0027nqn_value\u0027,"},{"line_number":1394,"context_line":"                                      \u0027-Q\u0027, \u0027128\u0027, \u0027-l\u0027, \u0027-1\u0027] +"},{"line_number":1395,"context_line":"                                     CONNECT_OPTS_EXEC)])"},{"line_number":1396,"context_line":"        else:"},{"line_number":1397,"context_line":"            mock_cli.assert_not_called()"},{"line_number":1398,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"70a53fd7_6205c384","line":1395,"in_reply_to":"28ce5dd2_5c79ef8a","updated":"2026-08-21 14:50:24.000000000","message":"Acknowledged","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"46764c1c0a0414a51f08cb89f5f05cc4bfd17f75","unresolved":true,"context_lines":[{"line_number":1392,"context_line":"                retries * [mock.call([\u0027connect\u0027, \u0027-a\u0027, \u0027portal2\u0027, \u0027-s\u0027,"},{"line_number":1393,"context_line":"                                      \u0027port2\u0027, \u0027-t\u0027, \u0027tcp\u0027, \u0027-n\u0027, \u0027nqn_value\u0027,"},{"line_number":1394,"context_line":"                                      \u0027-Q\u0027, \u0027128\u0027, \u0027-l\u0027, \u0027-1\u0027] +"},{"line_number":1395,"context_line":"                                     CONNECT_OPTS_EXEC)])"},{"line_number":1396,"context_line":"        else:"},{"line_number":1397,"context_line":"            mock_cli.assert_not_called()"},{"line_number":1398,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"0cb57c58_93eccd8d","line":1395,"in_reply_to":"55d4e63c_b926fd25","updated":"2026-08-21 13:55:08.000000000","message":"I’m not familiar at all with openstack’s test suite framework, but I’ll get help from a LLM for this one.","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"},{"author":{"_account_id":36680,"name":"Josselin Mouette","display_name":"Josselin Mouette","email":"josselin.mouette@exaion.com","username":"jmouette"},"change_message_id":"c75ade39f21a60a32811a3ba0c6f60c6a7d80bfb","unresolved":false,"context_lines":[{"line_number":1392,"context_line":"                retries * [mock.call([\u0027connect\u0027, \u0027-a\u0027, \u0027portal2\u0027, \u0027-s\u0027,"},{"line_number":1393,"context_line":"                                      \u0027port2\u0027, \u0027-t\u0027, \u0027tcp\u0027, \u0027-n\u0027, \u0027nqn_value\u0027,"},{"line_number":1394,"context_line":"                                      \u0027-Q\u0027, \u0027128\u0027, \u0027-l\u0027, \u0027-1\u0027] +"},{"line_number":1395,"context_line":"                                     CONNECT_OPTS_EXEC)])"},{"line_number":1396,"context_line":"        else:"},{"line_number":1397,"context_line":"            mock_cli.assert_not_called()"},{"line_number":1398,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"acf00178_c598f917","line":1395,"in_reply_to":"70a53fd7_6205c384","updated":"2026-08-21 17:28:54.000000000","message":"Done","commit_id":"0d42a23ef22082431b75166ab092506f74e002f4"}]}
