)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4202928150c7f99aa6e6b14b308a460460e806eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"2acb686e_69bcd21d","updated":"2026-01-15 21:50:00.000000000","message":"A few comments here.\nAlso note, this change makes those command actions synchronous. I\u0027m not sure that matters too much, but is a change in behavior.","commit_id":"95220850f38aff44a22ba7cae683272d0c478f69"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"c2daad625c76c7f848974b72437327f04a322dd8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"0b421927_faa974cb","updated":"2026-01-21 10:52:14.000000000","message":"recheck failure is not related to the patch","commit_id":"fbd83e5239cec9211e624e461143b754fe2c21b3"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"d01de344a225ea9d3e54aeccb90ebcdbb576eaf8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"709d990c_4f681cb3","updated":"2026-01-21 00:37:01.000000000","message":"recheck failure is not related to the patch","commit_id":"fbd83e5239cec9211e624e461143b754fe2c21b3"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"dbeb8a31d085c804fa53fb5634ce9f0b377c5a7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"789a56a3_070b79a8","updated":"2026-01-22 12:20:42.000000000","message":"recheck failure is not related to the patch","commit_id":"fbd83e5239cec9211e624e461143b754fe2c21b3"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"b510dd0c66d47310a1bacc37e5767e3005d5be35","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"90bfc8e0_3d27e9a0","updated":"2026-01-22 10:44:32.000000000","message":"recheck failure is not related to the patch","commit_id":"fbd83e5239cec9211e624e461143b754fe2c21b3"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"a32e53d841d7ab27751209bd80a1a957d9b3a4f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"cf7083e6_64451bee","updated":"2026-02-16 09:36:24.000000000","message":"Adding W+1 as we are 1 week from feature freeze","commit_id":"b11aae55aa6d838f727752ffe2b994b0a4751afd"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd29e9afcb47ffad6dccd125d8a8a49db1eae35c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"d3d0982d_df51aa0a","updated":"2026-02-06 18:21:54.000000000","message":"LGTM","commit_id":"b11aae55aa6d838f727752ffe2b994b0a4751afd"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"b721a8d5cb4d911f5d2e1b2f37b445f8150c685b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"9b6b61a4_4372788c","updated":"2026-02-16 14:32:24.000000000","message":"recheck parent patch is merged now","commit_id":"b11aae55aa6d838f727752ffe2b994b0a4751afd"}],"designate/backend/impl_nsd4.py":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"a58cd483615a4b4a73b81c68a3837beed6edc7ed","unresolved":true,"context_lines":[{"line_number":56,"context_line":"        context.check_hostname \u003d False"},{"line_number":57,"context_line":"        context.verify_mode \u003d ssl.CERT_NONE"},{"line_number":58,"context_line":"        sock \u003d context.wrap_socket(raw_sock, server_hostname\u003dself.host)"},{"line_number":59,"context_line":"        stream \u003d sock.makefile(mode\u003d\u0027rw\u0027)"},{"line_number":60,"context_line":"        stream.write(f\u0027{self.NSDCT_VERSION} {command}\\n\u0027)"},{"line_number":61,"context_line":"        stream.flush()"},{"line_number":62,"context_line":"        result \u003d stream.read()"}],"source_content_type":"text/x-python","patch_set":1,"id":"deca2d53_f0c2a793","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":41},"updated":"2025-10-20 08:53:49.000000000","message":"Note: this commit was fully generated by Claude Code, I have never implemented something similar. I noticed it changed the sock.makefile to have mode\u003d\u0027rw\u0027 instead of the default reading mode. Not sure if that\u0027s what we want.","commit_id":"bb72f9856bc01a9ce5bee86e038e9106af476852"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"845c04bb24fb12ddc64b2a18ddce4a44dee00c1e","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        context.check_hostname \u003d False"},{"line_number":57,"context_line":"        context.verify_mode \u003d ssl.CERT_NONE"},{"line_number":58,"context_line":"        sock \u003d context.wrap_socket(raw_sock, server_hostname\u003dself.host)"},{"line_number":59,"context_line":"        stream \u003d sock.makefile(mode\u003d\u0027rw\u0027)"},{"line_number":60,"context_line":"        stream.write(f\u0027{self.NSDCT_VERSION} {command}\\n\u0027)"},{"line_number":61,"context_line":"        stream.flush()"},{"line_number":62,"context_line":"        result \u003d stream.read()"}],"source_content_type":"text/x-python","patch_set":1,"id":"c927ae6c_97ff32e0","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":41},"in_reply_to":"8d7e9613_e6645bf8","updated":"2026-01-20 13:36:03.000000000","message":"Done","commit_id":"bb72f9856bc01a9ce5bee86e038e9106af476852"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4202928150c7f99aa6e6b14b308a460460e806eb","unresolved":true,"context_lines":[{"line_number":56,"context_line":"        context.check_hostname \u003d False"},{"line_number":57,"context_line":"        context.verify_mode \u003d ssl.CERT_NONE"},{"line_number":58,"context_line":"        sock \u003d context.wrap_socket(raw_sock, server_hostname\u003dself.host)"},{"line_number":59,"context_line":"        stream \u003d sock.makefile(mode\u003d\u0027rw\u0027)"},{"line_number":60,"context_line":"        stream.write(f\u0027{self.NSDCT_VERSION} {command}\\n\u0027)"},{"line_number":61,"context_line":"        stream.flush()"},{"line_number":62,"context_line":"        result \u003d stream.read()"}],"source_content_type":"text/x-python","patch_set":1,"id":"8d7e9613_e6645bf8","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":41},"in_reply_to":"deca2d53_f0c2a793","updated":"2026-01-15 21:50:00.000000000","message":"\u0027rw\u0027 is probably right here. Not sure why it was working with just the default \u0027r\u0027 before.","commit_id":"bb72f9856bc01a9ce5bee86e038e9106af476852"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4202928150c7f99aa6e6b14b308a460460e806eb","unresolved":true,"context_lines":[{"line_number":50,"context_line":"        self.pattern \u003d self.options.get(\u0027pattern\u0027, \u0027slave\u0027)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def _command(self, command):"},{"line_number":53,"context_line":"        raw_sock \u003d socket.create_connection((self.host, self.port))"},{"line_number":54,"context_line":"        context \u003d ssl.create_default_context()"},{"line_number":55,"context_line":"        context.load_cert_chain(certfile\u003dself.certfile, keyfile\u003dself.keyfile)"},{"line_number":56,"context_line":"        context.check_hostname \u003d False"}],"source_content_type":"text/x-python","patch_set":7,"id":"0141891d_9492b8ee","line":53,"updated":"2026-01-15 21:50:00.000000000","message":"This socket should be closed too.\nOr, better yet, move to using context managers, i.e. \"with\"\nSee: https://docs.python.org/3/library/ssl.html#socket-creation","commit_id":"95220850f38aff44a22ba7cae683272d0c478f69"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"845c04bb24fb12ddc64b2a18ddce4a44dee00c1e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.pattern \u003d self.options.get(\u0027pattern\u0027, \u0027slave\u0027)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def _command(self, command):"},{"line_number":53,"context_line":"        raw_sock \u003d socket.create_connection((self.host, self.port))"},{"line_number":54,"context_line":"        context \u003d ssl.create_default_context()"},{"line_number":55,"context_line":"        context.load_cert_chain(certfile\u003dself.certfile, keyfile\u003dself.keyfile)"},{"line_number":56,"context_line":"        context.check_hostname \u003d False"}],"source_content_type":"text/x-python","patch_set":7,"id":"9d6b8e7f_64b182bc","line":53,"in_reply_to":"0141891d_9492b8ee","updated":"2026-01-20 13:36:03.000000000","message":"Done","commit_id":"95220850f38aff44a22ba7cae683272d0c478f69"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4202928150c7f99aa6e6b14b308a460460e806eb","unresolved":true,"context_lines":[{"line_number":53,"context_line":"        raw_sock \u003d socket.create_connection((self.host, self.port))"},{"line_number":54,"context_line":"        context \u003d ssl.create_default_context()"},{"line_number":55,"context_line":"        context.load_cert_chain(certfile\u003dself.certfile, keyfile\u003dself.keyfile)"},{"line_number":56,"context_line":"        context.check_hostname \u003d False"},{"line_number":57,"context_line":"        context.verify_mode \u003d ssl.CERT_NONE"},{"line_number":58,"context_line":"        sock \u003d context.wrap_socket(raw_sock, server_hostname\u003dself.host)"},{"line_number":59,"context_line":"        stream \u003d sock.makefile(mode\u003d\u0027rw\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"376b4b7d_a727e211","line":56,"updated":"2026-01-15 21:50:00.000000000","message":"This should not be here. It is a security violation.","commit_id":"95220850f38aff44a22ba7cae683272d0c478f69"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"845c04bb24fb12ddc64b2a18ddce4a44dee00c1e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        raw_sock \u003d socket.create_connection((self.host, self.port))"},{"line_number":54,"context_line":"        context \u003d ssl.create_default_context()"},{"line_number":55,"context_line":"        context.load_cert_chain(certfile\u003dself.certfile, keyfile\u003dself.keyfile)"},{"line_number":56,"context_line":"        context.check_hostname \u003d False"},{"line_number":57,"context_line":"        context.verify_mode \u003d ssl.CERT_NONE"},{"line_number":58,"context_line":"        sock \u003d context.wrap_socket(raw_sock, server_hostname\u003dself.host)"},{"line_number":59,"context_line":"        stream \u003d sock.makefile(mode\u003d\u0027rw\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"d049748f_047431d5","line":56,"in_reply_to":"376b4b7d_a727e211","updated":"2026-01-20 13:36:03.000000000","message":"Done","commit_id":"95220850f38aff44a22ba7cae683272d0c478f69"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4202928150c7f99aa6e6b14b308a460460e806eb","unresolved":true,"context_lines":[{"line_number":54,"context_line":"        context \u003d ssl.create_default_context()"},{"line_number":55,"context_line":"        context.load_cert_chain(certfile\u003dself.certfile, keyfile\u003dself.keyfile)"},{"line_number":56,"context_line":"        context.check_hostname \u003d False"},{"line_number":57,"context_line":"        context.verify_mode \u003d ssl.CERT_NONE"},{"line_number":58,"context_line":"        sock \u003d context.wrap_socket(raw_sock, server_hostname\u003dself.host)"},{"line_number":59,"context_line":"        stream \u003d sock.makefile(mode\u003d\u0027rw\u0027)"},{"line_number":60,"context_line":"        stream.write(f\u0027{self.NSDCT_VERSION} {command}\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"af04db2b_87bcfe8a","line":57,"updated":"2026-01-15 21:50:00.000000000","message":"This should not be here either, It is a security violation.","commit_id":"95220850f38aff44a22ba7cae683272d0c478f69"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"824866f5a43c109780d74365970a7a41db37442d","unresolved":true,"context_lines":[{"line_number":54,"context_line":"        context \u003d ssl.create_default_context()"},{"line_number":55,"context_line":"        context.load_cert_chain(certfile\u003dself.certfile, keyfile\u003dself.keyfile)"},{"line_number":56,"context_line":"        context.check_hostname \u003d False"},{"line_number":57,"context_line":"        context.verify_mode \u003d ssl.CERT_NONE"},{"line_number":58,"context_line":"        sock \u003d context.wrap_socket(raw_sock, server_hostname\u003dself.host)"},{"line_number":59,"context_line":"        stream \u003d sock.makefile(mode\u003d\u0027rw\u0027)"},{"line_number":60,"context_line":"        stream.write(f\u0027{self.NSDCT_VERSION} {command}\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"db5b2ca4_31348585","line":57,"in_reply_to":"7654bedb_a1ba15ed","updated":"2026-01-16 14:33:44.000000000","message":"Maybe also expose\n\u003e context.load_verify_locations(cafile\u003dca_certs)","commit_id":"95220850f38aff44a22ba7cae683272d0c478f69"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"aaefd04ca9bfe0876f7f39a9006d6a4245c5dea2","unresolved":true,"context_lines":[{"line_number":54,"context_line":"        context \u003d ssl.create_default_context()"},{"line_number":55,"context_line":"        context.load_cert_chain(certfile\u003dself.certfile, keyfile\u003dself.keyfile)"},{"line_number":56,"context_line":"        context.check_hostname \u003d False"},{"line_number":57,"context_line":"        context.verify_mode \u003d ssl.CERT_NONE"},{"line_number":58,"context_line":"        sock \u003d context.wrap_socket(raw_sock, server_hostname\u003dself.host)"},{"line_number":59,"context_line":"        stream \u003d sock.makefile(mode\u003d\u0027rw\u0027)"},{"line_number":60,"context_line":"        stream.write(f\u0027{self.NSDCT_VERSION} {command}\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7654bedb_a1ba15ed","line":57,"in_reply_to":"af04db2b_87bcfe8a","updated":"2026-01-16 11:01:54.000000000","message":"I was reviewing this earlier as well, and while I fully agree, this unfortunately mirrors the current implementation. I think the correct path here is to expose these two variables to the config with sane defaults and a release note.\n\n\u003e context.check_hostname \u003d False\n\u003e context.verify_mode \u003d ssl.CERT_NONE\n\nhttps://github.com/eventlet/eventlet/blob/62662af7002b531bed608c7dd73d81943ff638c9/eventlet/convenience.py#L183","commit_id":"95220850f38aff44a22ba7cae683272d0c478f69"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"845c04bb24fb12ddc64b2a18ddce4a44dee00c1e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        context \u003d ssl.create_default_context()"},{"line_number":55,"context_line":"        context.load_cert_chain(certfile\u003dself.certfile, keyfile\u003dself.keyfile)"},{"line_number":56,"context_line":"        context.check_hostname \u003d False"},{"line_number":57,"context_line":"        context.verify_mode \u003d ssl.CERT_NONE"},{"line_number":58,"context_line":"        sock \u003d context.wrap_socket(raw_sock, server_hostname\u003dself.host)"},{"line_number":59,"context_line":"        stream \u003d sock.makefile(mode\u003d\u0027rw\u0027)"},{"line_number":60,"context_line":"        stream.write(f\u0027{self.NSDCT_VERSION} {command}\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"aa48010f_788ddd6b","line":57,"in_reply_to":"db5b2ca4_31348585","updated":"2026-01-20 13:36:03.000000000","message":"Done","commit_id":"95220850f38aff44a22ba7cae683272d0c478f69"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd29e9afcb47ffad6dccd125d8a8a49db1eae35c","unresolved":true,"context_lines":[{"line_number":55,"context_line":"        context.load_cert_chain(certfile\u003dself.certfile, keyfile\u003dself.keyfile)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        verify_ssl \u003d ("},{"line_number":58,"context_line":"            self.options.get(\u0027verify_ssl\u0027, \u0027true\u0027).lower() \u003d\u003d \u0027true\u0027"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":"        check_hostname \u003d ("},{"line_number":61,"context_line":"            self.options.get(\u0027check_hostname\u0027, \u0027true\u0027).lower() \u003d\u003d \u0027true\u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"e9248cc9_e3ec4d03","line":58,"updated":"2026-02-06 18:21:54.000000000","message":"nit: There is a common method in oslo for parsing booleans from strings/config files: https://docs.openstack.org/oslo.utils/latest/reference/strutils.html#oslo_utils.strutils.bool_from_string","commit_id":"b11aae55aa6d838f727752ffe2b994b0a4751afd"}]}
