)]}'
{"nodepool/driver/statemachine.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"0fd27db12d2c573b8030423f4b8fcec41f051079","unresolved":true,"context_lines":[{"line_number":255,"context_line":"                             self.nodescan_request.start_time)"},{"line_number":256,"context_line":"                    self.log.debug(\"Scanned keys in %s\", dt)"},{"line_number":257,"context_line":"                except Exception as e:"},{"line_number":258,"context_line":"                    if isinstance(e, exceptions.ConnectionTimeoutException):"},{"line_number":259,"context_line":"                        self.log.warning(\"Error scanning keys: %s\", str(e))"},{"line_number":260,"context_line":"                    else:"},{"line_number":261,"context_line":"                        self.log.exception(\"Exception scanning keys:\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"9c409031_813bf196","line":258,"updated":"2024-04-24 18:19:33.000000000","message":"I hate to nitpick this but wouldn\u0027t this be clearer as:\n\n```\n  try:\n    ...\n  except exceptions.ConnectionTimeoutException as e:\n    self.log.warning(...)\n  except:\n    self.log.exception(...)\n```\n    \nThe use of `isinstance` here when `except` is basically type matching for us seems like a confusing way to do it.","commit_id":"8d74042c30ed9bd3964e08cb87141b7502ffbfe0"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"f576c29beb8ac29155cd73ed35dd45ce75545f45","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                             self.nodescan_request.start_time)"},{"line_number":256,"context_line":"                    self.log.debug(\"Scanned keys in %s\", dt)"},{"line_number":257,"context_line":"                except Exception as e:"},{"line_number":258,"context_line":"                    if isinstance(e, exceptions.ConnectionTimeoutException):"},{"line_number":259,"context_line":"                        self.log.warning(\"Error scanning keys: %s\", str(e))"},{"line_number":260,"context_line":"                    else:"},{"line_number":261,"context_line":"                        self.log.exception(\"Exception scanning keys:\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"9d593f79_aa224d09","line":258,"in_reply_to":"101af437_eb0dc121","updated":"2024-04-24 20:43:03.000000000","message":"Acknowledged","commit_id":"8d74042c30ed9bd3964e08cb87141b7502ffbfe0"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"3eeb87eb677d3973055fc54723a3c44be4fa513c","unresolved":true,"context_lines":[{"line_number":255,"context_line":"                             self.nodescan_request.start_time)"},{"line_number":256,"context_line":"                    self.log.debug(\"Scanned keys in %s\", dt)"},{"line_number":257,"context_line":"                except Exception as e:"},{"line_number":258,"context_line":"                    if isinstance(e, exceptions.ConnectionTimeoutException):"},{"line_number":259,"context_line":"                        self.log.warning(\"Error scanning keys: %s\", str(e))"},{"line_number":260,"context_line":"                    else:"},{"line_number":261,"context_line":"                        self.log.exception(\"Exception scanning keys:\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"101af437_eb0dc121","line":258,"in_reply_to":"9c409031_813bf196","updated":"2024-04-24 19:38:33.000000000","message":"I did it this way to match the pattern below, where it\u0027s required.  It\u0027s easier copy-pasta that way, and easier to validate.  We could change it, but I don\u0027t think it\u0027s important.","commit_id":"8d74042c30ed9bd3964e08cb87141b7502ffbfe0"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"0fd27db12d2c573b8030423f4b8fcec41f051079","unresolved":true,"context_lines":[{"line_number":326,"context_line":"            self.nodescan_request \u003d None"},{"line_number":327,"context_line":"        except Exception as e:"},{"line_number":328,"context_line":"            if isinstance(e, (exceptions.TimeoutException,"},{"line_number":329,"context_line":"                              exceptions.LaunchKeyscanException)):"},{"line_number":330,"context_line":"                self.log.warning("},{"line_number":331,"context_line":"                    \"Launch attempt %d/%d for node %s, failed: %s\","},{"line_number":332,"context_line":"                    self.attempts, self.retries, node.id, str(e))"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffd6517e_c1abded5","line":329,"updated":"2024-04-24 18:19:33.000000000","message":"See above. Though I note we\u0027re already using this pattern here.","commit_id":"8d74042c30ed9bd3964e08cb87141b7502ffbfe0"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"f576c29beb8ac29155cd73ed35dd45ce75545f45","unresolved":false,"context_lines":[{"line_number":326,"context_line":"            self.nodescan_request \u003d None"},{"line_number":327,"context_line":"        except Exception as e:"},{"line_number":328,"context_line":"            if isinstance(e, (exceptions.TimeoutException,"},{"line_number":329,"context_line":"                              exceptions.LaunchKeyscanException)):"},{"line_number":330,"context_line":"                self.log.warning("},{"line_number":331,"context_line":"                    \"Launch attempt %d/%d for node %s, failed: %s\","},{"line_number":332,"context_line":"                    self.attempts, self.retries, node.id, str(e))"}],"source_content_type":"text/x-python","patch_set":1,"id":"ac7f1a1b_1dbe5b20","line":329,"in_reply_to":"ffd6517e_c1abded5","updated":"2024-04-24 20:43:03.000000000","message":"Done","commit_id":"8d74042c30ed9bd3964e08cb87141b7502ffbfe0"}]}
