)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f5c2e0daeba7dbead708ad1e266fdb38c6696a1f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"815f7cc5_d010b275","updated":"2022-08-18 14:29:38.000000000","message":"recheck\n\nrsync failed on pep8 -\u003e POST_FAILURE","commit_id":"a3b966aa89718be5dc2d5523d1b964b3ccda4811"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"315d6ea87b9917b5d0397ea8237caae45ad4c7ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"58f00a3d_14d97b6a","updated":"2022-08-19 17:04:32.000000000","message":"recheck\n\nos-brick-src-devstack-plugin-ceph-v  timed out","commit_id":"7c06367fba04a4909cf2ca873a84187dec0852dc"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"fa992349a042c2143220845ec6c9e4cf9cb46f06","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"11e001b3_841ed259","updated":"2022-08-19 14:05:44.000000000","message":"recheck\n\npy38 POST_FAILURE","commit_id":"7c06367fba04a4909cf2ca873a84187dec0852dc"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"f4224b7d79cac333239227535a5dc93d72b4ab5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"af0fc87c_63a6d7f7","updated":"2022-08-19 15:43:37.000000000","message":"the recheck should pass as it\u0027s unrelated failure. LGTM.","commit_id":"7c06367fba04a4909cf2ca873a84187dec0852dc"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c14304a173347b411453e8efe32d7155f1df0dd5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"19ac65d4_ac17d4f1","updated":"2022-08-25 12:47:28.000000000","message":"Answered my own question inline.","commit_id":"b8c74b436d92abb171c5f80de129d8233a3c0b18"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a8e78e24ae2f93387cc1de231d9817fda2faade6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"039accf4_33ac4348","updated":"2022-08-25 12:41:22.000000000","message":"Question inline, but I was in a race condition with Sofia.  Anyway, something to think about for a followup.","commit_id":"b8c74b436d92abb171c5f80de129d8233a3c0b18"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"cdb695f455947164c23904c5de08c167a896acb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0c12a23e_76edba64","updated":"2022-08-25 12:38:28.000000000","message":"Thanks for working on this","commit_id":"b8c74b436d92abb171c5f80de129d8233a3c0b18"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ec8b345d26a0453f86c841d64de39359c93566bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f3c54218_d0c76a2b","updated":"2022-08-25 14:26:02.000000000","message":"Merging as already approved","commit_id":"f5d5371cbc2a2c0267030d19c2b579442a110590"}],"os_brick/initiator/linuxrbd.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"f4224b7d79cac333239227535a5dc93d72b4ab5c","unresolved":true,"context_lines":[{"line_number":245,"context_line":"        except AttributeError:"},{"line_number":246,"context_line":"            LOG.warning(\"flush() not supported in this version of librbd\")"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def fileno(self) -\u003e NoReturn:"},{"line_number":249,"context_line":"        \"\"\"RBD does not have support for fileno() so we raise IOError."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        Raising IOError is recommended way to notify caller that interface is"}],"source_content_type":"text/x-python","patch_set":2,"id":"335abac1_186d6b3f","line":248,"range":{"start_line":248,"start_character":24,"end_line":248,"end_character":32},"updated":"2022-08-19 15:43:37.000000000","message":"for anyone curious: https://mypy.readthedocs.io/en/stable/more_types.html#the-noreturn-type","commit_id":"7c06367fba04a4909cf2ca873a84187dec0852dc"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"68449df6827a68fda2a7cb09bfdbc09c4ddd9942","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        except AttributeError:"},{"line_number":246,"context_line":"            LOG.warning(\"flush() not supported in this version of librbd\")"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def fileno(self) -\u003e NoReturn:"},{"line_number":249,"context_line":"        \"\"\"RBD does not have support for fileno() so we raise IOError."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        Raising IOError is recommended way to notify caller that interface is"}],"source_content_type":"text/x-python","patch_set":2,"id":"0bb4f5f6_c9eca8f2","line":248,"range":{"start_line":248,"start_character":24,"end_line":248,"end_character":32},"in_reply_to":"335abac1_186d6b3f","updated":"2022-08-22 13:22:01.000000000","message":"Done","commit_id":"7c06367fba04a4909cf2ca873a84187dec0852dc"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a8e78e24ae2f93387cc1de231d9817fda2faade6","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self.rbd_user \u003d user"},{"line_number":42,"context_line":"        self.rbd_pool \u003d pool"},{"line_number":43,"context_line":"        self.rados: \u0027rados.Rados\u0027"},{"line_number":44,"context_line":"        self.rbd: \u0027rbd.RBD\u0027"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        for attr in [\u0027rbd_user\u0027, \u0027rbd_pool\u0027]:"},{"line_number":47,"context_line":"            val \u003d getattr(self, attr)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f0d500f_a4e89756","line":44,"range":{"start_line":43,"start_character":0,"end_line":44,"end_character":27},"updated":"2022-08-25 12:41:22.000000000","message":"We need to use the strings here because of lines 26-31, i.e., we don\u0027t know if there will be a reference to the actual modules when mypy processes this file, but if these vars are assigned values, we want them to be of the types these strings describe.  But, don\u0027t lines 30-31 plus 52-53 indicate that these could be NoneType, which is what we\u0027re checking for at lines 55-60?  So should these be declared Optional?  (Or am I not thinking about this correctly?)","commit_id":"b8c74b436d92abb171c5f80de129d8233a3c0b18"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c14304a173347b411453e8efe32d7155f1df0dd5","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self.rbd_user \u003d user"},{"line_number":42,"context_line":"        self.rbd_pool \u003d pool"},{"line_number":43,"context_line":"        self.rados: \u0027rados.Rados\u0027"},{"line_number":44,"context_line":"        self.rbd: \u0027rbd.RBD\u0027"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        for attr in [\u0027rbd_user\u0027, \u0027rbd_pool\u0027]:"},{"line_number":47,"context_line":"            val \u003d getattr(self, attr)"}],"source_content_type":"text/x-python","patch_set":3,"id":"13d86f04_04dd1f22","line":44,"range":{"start_line":43,"start_character":0,"end_line":44,"end_character":27},"in_reply_to":"9f0d500f_a4e89756","updated":"2022-08-25 12:47:28.000000000","message":"OK, so if we make these Optional, it will cause problems later because all the code after lines 55-60 assumes that these vars are of the type stated and are not None.  So I guess the way to think about this is that lines 55-60 retroactively ensure that the vars are of the type stated at lines 43-44.","commit_id":"b8c74b436d92abb171c5f80de129d8233a3c0b18"}]}
