)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"7584621e22a670553a992083f4394daa8e33b22f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8d53932d_6d150238","updated":"2022-09-13 10:25:23.000000000","message":"test_request_order_missing_label seems to fail consistently","commit_id":"12a569f44c2f86d1cdf5f7ed592b1e1f33b7e3b9"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"36494691d2530ccc41cc0cb0253021cb19e2c71e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ed450606_6e0cb3fb","in_reply_to":"8d53932d_6d150238","updated":"2022-09-13 20:56:08.000000000","message":"Indeed, it was using internal implementation details to approximate behavior.  I\u0027ve revised it to use a different approach.","commit_id":"12a569f44c2f86d1cdf5f7ed592b1e1f33b7e3b9"}],"nodepool/driver/__init__.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"17cc90dc7e0c9b0f691ea918d937fffd4805e13a","unresolved":true,"context_lines":[{"line_number":382,"context_line":"        # We need the launcher_id attr"},{"line_number":383,"context_line":"        self.log \u003d get_annotated_logger(logging.getLogger("},{"line_number":384,"context_line":"            \"nodepool.driver.NodeRequestHandler[%s]\" % self.launcher_id),"},{"line_number":385,"context_line":"            event_id\u003dself.request.event_id, node_request_id\u003dself.request.id)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    @property"},{"line_number":388,"context_line":"    def failed_nodes(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"60185b6a_8006345c","line":385,"updated":"2022-09-16 16:54:46.000000000","message":"Any reason to not set this in __init__()? We know the launcher_id and request info at that point.","commit_id":"7aaf640d2037a15a7836fe774ccc2b0c1e336dee"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"8d2c3135fab93f79bdf9d9df04f75fa2b9f2be8c","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        # We need the launcher_id attr"},{"line_number":383,"context_line":"        self.log \u003d get_annotated_logger(logging.getLogger("},{"line_number":384,"context_line":"            \"nodepool.driver.NodeRequestHandler[%s]\" % self.launcher_id),"},{"line_number":385,"context_line":"            event_id\u003dself.request.event_id, node_request_id\u003dself.request.id)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    @property"},{"line_number":388,"context_line":"    def failed_nodes(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"59f58660_9620b448","line":385,"in_reply_to":"60185b6a_8006345c","updated":"2022-09-17 00:04:59.000000000","message":"Just following the pattern of avoiding init in this class (based on comment) and trying to not have to think too much about what should go here vs there.","commit_id":"7aaf640d2037a15a7836fe774ccc2b0c1e336dee"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"17cc90dc7e0c9b0f691ea918d937fffd4805e13a","unresolved":true,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":"        self.nodeset \u003d []"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"    def _declineRequest(self):"},{"line_number":648,"context_line":"        # Technically, this check to see if we\u0027ve already declined it should"},{"line_number":649,"context_line":"        # not be necessary. But if there is a bug (and there has been), we"},{"line_number":650,"context_line":"        # want to make sure we don\u0027t continuously grow this array."}],"source_content_type":"text/x-python","patch_set":2,"id":"8012711a_0a5f440d","line":647,"updated":"2022-09-16 16:54:46.000000000","message":"This makes naming more consistent. Is there any concern that the old method name is in use by out of tree drivers? I think that is unlikely because the noderequest handling is fairly generic for the underlying drivers and this class farms work out to them rather than the other way around?","commit_id":"7aaf640d2037a15a7836fe774ccc2b0c1e336dee"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"8d2c3135fab93f79bdf9d9df04f75fa2b9f2be8c","unresolved":false,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":"        self.nodeset \u003d []"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"    def _declineRequest(self):"},{"line_number":648,"context_line":"        # Technically, this check to see if we\u0027ve already declined it should"},{"line_number":649,"context_line":"        # not be necessary. But if there is a bug (and there has been), we"},{"line_number":650,"context_line":"        # want to make sure we don\u0027t continuously grow this array."}],"source_content_type":"text/x-python","patch_set":2,"id":"14313785_b979917b","line":647,"in_reply_to":"8012711a_0a5f440d","updated":"2022-09-17 00:04:59.000000000","message":"We have been 100% clear we have no interest in supporting out of tree drivers.","commit_id":"7aaf640d2037a15a7836fe774ccc2b0c1e336dee"}],"nodepool/launcher.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"17cc90dc7e0c9b0f691ea918d937fffd4805e13a","unresolved":true,"context_lines":[{"line_number":210,"context_line":"                # Defer request for it to be handled and fulfilled at a later"},{"line_number":211,"context_line":"                # run."},{"line_number":212,"context_line":"                log.debug(\"Deferring request because it would \""},{"line_number":213,"context_line":"                          \"exceed tenant quota\")"},{"line_number":214,"context_line":"                continue"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"            # Get a request handler to help decide whether we should"}],"source_content_type":"text/x-python","patch_set":2,"id":"ea7cee06_b5210b65","line":213,"updated":"2022-09-16 16:54:46.000000000","message":"Was it intentional to remove extra info from this log line?","commit_id":"7aaf640d2037a15a7836fe774ccc2b0c1e336dee"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"8d2c3135fab93f79bdf9d9df04f75fa2b9f2be8c","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                # Defer request for it to be handled and fulfilled at a later"},{"line_number":211,"context_line":"                # run."},{"line_number":212,"context_line":"                log.debug(\"Deferring request because it would \""},{"line_number":213,"context_line":"                          \"exceed tenant quota\")"},{"line_number":214,"context_line":"                continue"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"            # Get a request handler to help decide whether we should"}],"source_content_type":"text/x-python","patch_set":2,"id":"c878558a_eb8ad827","line":213,"in_reply_to":"ea7cee06_b5210b65","updated":"2022-09-17 00:04:59.000000000","message":"Yeah, it\u0027s duplicated via the annotation.","commit_id":"7aaf640d2037a15a7836fe774ccc2b0c1e336dee"}],"nodepool/tests/unit/test_launcher.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"17cc90dc7e0c9b0f691ea918d937fffd4805e13a","unresolved":true,"context_lines":[{"line_number":451,"context_line":"        req3.node_types.append(\u0027invalid-label\u0027)"},{"line_number":452,"context_line":"        self.zk.storeNodeRequest(req3)"},{"line_number":453,"context_line":"        self.log.debug(\"Waiting for 3rd request %s\", req3.id)"},{"line_number":454,"context_line":"        req3 \u003d self.waitForNodeRequest(req3, (zk.FAILED,))"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"    def test_over_quota(self, config\u003d\u0027node_quota_cloud.yaml\u0027):"},{"line_number":457,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"b2ee8e1b_8674a630","line":454,"updated":"2022-09-16 16:54:46.000000000","message":"Might want to reassert that req2 is still pending here? Just to make sure it didn\u0027t somehow magically get handled allowing req3 to be declined?","commit_id":"7aaf640d2037a15a7836fe774ccc2b0c1e336dee"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"8d2c3135fab93f79bdf9d9df04f75fa2b9f2be8c","unresolved":false,"context_lines":[{"line_number":451,"context_line":"        req3.node_types.append(\u0027invalid-label\u0027)"},{"line_number":452,"context_line":"        self.zk.storeNodeRequest(req3)"},{"line_number":453,"context_line":"        self.log.debug(\"Waiting for 3rd request %s\", req3.id)"},{"line_number":454,"context_line":"        req3 \u003d self.waitForNodeRequest(req3, (zk.FAILED,))"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"    def test_over_quota(self, config\u003d\u0027node_quota_cloud.yaml\u0027):"},{"line_number":457,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"cc58d4f6_6466223d","line":454,"in_reply_to":"b2ee8e1b_8674a630","updated":"2022-09-17 00:04:59.000000000","message":"Probably good future-proofing.  Will add followup.","commit_id":"7aaf640d2037a15a7836fe774ccc2b0c1e336dee"}]}
