)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"3fd9afa9faa166102f730e0466ca9bd97d3fdba5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e5657af9_f8c20cfe","updated":"2023-05-15 08:56:56.000000000","message":"holding, maybe need more tests","commit_id":"f7f8f05988a3e0da5771a29e50a5404647dab34c"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"a1257cad4a4e563708a3b49b679807bdd08fd64d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"efc574ae_08fb8641","updated":"2023-05-15 08:56:07.000000000","message":"recheck gate is fixed","commit_id":"f7f8f05988a3e0da5771a29e50a5404647dab34c"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"3a8a22781e84f31451b4eff894cc4590d0eee8eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3013dbe9_67716693","updated":"2023-03-01 15:28:22.000000000","message":"recheck regenerate results. I like that new approach","commit_id":"f7f8f05988a3e0da5771a29e50a5404647dab34c"}],"octavia/controller/housekeeping/house_keeping.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"00674264d2e38d524c4c3812c2911e6d0d806279","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                    LOG.debug(\"Cert expired amphora\u0027s id is: %s\", amp.id)"},{"line_number":141,"context_line":"                    fut \u003d executor.submit("},{"line_number":142,"context_line":"                        self.cw.amphora_cert_rotation, amp.id)"},{"line_number":143,"context_line":"                    fut.add_done_callback("},{"line_number":144,"context_line":"                        functools.partial(rotate_on_done, amp.id))"},{"line_number":145,"context_line":"            finally:"},{"line_number":146,"context_line":"                executor.shutdown(wait\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_fca3d49c","line":143,"updated":"2017-06-27 00:14:22.000000000","message":"So it\u0027s basically impossible for the execution to be done before this callback is added, right? Or is it ACTUALLY impossible, not just practically?","commit_id":"e9a19f4c20f90274df4a7a9444d48c9ef010395d"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"b55bba92291ae20d101e737da1391c16edecf585","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                    LOG.debug(\"Cert expired amphora\u0027s id is: %s\", amp.id)"},{"line_number":141,"context_line":"                    fut \u003d executor.submit("},{"line_number":142,"context_line":"                        self.cw.amphora_cert_rotation, amp.id)"},{"line_number":143,"context_line":"                    fut.add_done_callback("},{"line_number":144,"context_line":"                        functools.partial(rotate_on_done, amp.id))"},{"line_number":145,"context_line":"            finally:"},{"line_number":146,"context_line":"                executor.shutdown(wait\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_fcdbd4e9","line":143,"in_reply_to":"5f201791_fc56345c","updated":"2017-06-27 00:29:45.000000000","message":"Though highly unlikely.","commit_id":"e9a19f4c20f90274df4a7a9444d48c9ef010395d"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"72db0e3affdc4bac782695240c6a2dfe784acc40","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                    LOG.debug(\"Cert expired amphora\u0027s id is: %s\", amp.id)"},{"line_number":141,"context_line":"                    fut \u003d executor.submit("},{"line_number":142,"context_line":"                        self.cw.amphora_cert_rotation, amp.id)"},{"line_number":143,"context_line":"                    fut.add_done_callback("},{"line_number":144,"context_line":"                        functools.partial(rotate_on_done, amp.id))"},{"line_number":145,"context_line":"            finally:"},{"line_number":146,"context_line":"                executor.shutdown(wait\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_fc56345c","line":143,"in_reply_to":"5f201791_fca3d49c","updated":"2017-06-27 00:27:05.000000000","message":"It\u0027s possible.\n\nhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.add_done_callback\n\n\u0027\u0027\u0027If the future has already completed or been cancelled, fn will be called immediately.\u0027\u0027\u0027","commit_id":"e9a19f4c20f90274df4a7a9444d48c9ef010395d"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"7c271596df38f2c660e025a3c73895dd96087ce0","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                    LOG.debug(\"Cert expired amphora\u0027s id is: %s\", amp.id)"},{"line_number":141,"context_line":"                    fut \u003d executor.submit("},{"line_number":142,"context_line":"                        self.cw.amphora_cert_rotation, amp.id)"},{"line_number":143,"context_line":"                    fut.add_done_callback("},{"line_number":144,"context_line":"                        functools.partial(rotate_on_done, amp.id))"},{"line_number":145,"context_line":"            finally:"},{"line_number":146,"context_line":"                executor.shutdown(wait\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_3c382cec","line":143,"in_reply_to":"5f201791_fcdbd4e9","updated":"2017-06-27 00:42:21.000000000","message":"Yeah though that explanation from the docs is what I figured would be the case and means it\u0027s fine no matter what.","commit_id":"e9a19f4c20f90274df4a7a9444d48c9ef010395d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"62369ed693140ad4647989e37a380b84f3233bc1","unresolved":true,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        # Because python is a pita and we can\u0027t mutate a local variable"},{"line_number":122,"context_line":"        # from inside a nested function (at least not until more recent"},{"line_number":123,"context_line":"        # versions of python that support nonlocal keyword)."},{"line_number":124,"context_line":"        status \u003d {"},{"line_number":125,"context_line":"            \u0027fails\u0027: 0,"},{"line_number":126,"context_line":"            \u0027success\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":7,"id":"f49a018a_331b4a77","line":123,"range":{"start_line":123,"start_character":34,"end_line":123,"end_character":58},"updated":"2023-03-01 15:31:54.000000000","message":"... which currently supported Python versions do now.","commit_id":"f7f8f05988a3e0da5771a29e50a5404647dab34c"}]}
