)]}'
{"zuul/nodepool.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"759255e9321e14e23092fd8091f799e9a9d5a059","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                except Exception:"},{"line_number":280,"context_line":"                    log.exception(\"Exception storing node %s \""},{"line_number":281,"context_line":"                                  \"while unlocking:\", node)"},{"line_number":282,"context_line":"        self.__unlockNodes(nodeset.getNodes(), zuul_event_id\u003dzuul_event_id)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        # When returning a nodeset we need to update the gauges if we have a"},{"line_number":285,"context_line":"        # build. Further we calculate resource*duration and increment their"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_5afb6d45","line":282,"range":{"start_line":282,"start_character":14,"end_line":282,"end_character":15},"updated":"2020-08-26 15:33:16.000000000","message":"Why do we convert all of these private functions to double underscore functions?","commit_id":"44f34fd6f07216f26571b738e0d743c24b5da923"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"da639186845b7ef80eeb27e19c9f3f40009e0ffc","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                except Exception:"},{"line_number":280,"context_line":"                    log.exception(\"Exception storing node %s \""},{"line_number":281,"context_line":"                                  \"while unlocking:\", node)"},{"line_number":282,"context_line":"        self.__unlockNodes(nodeset.getNodes(), zuul_event_id\u003dzuul_event_id)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        # When returning a nodeset we need to update the gauges if we have a"},{"line_number":285,"context_line":"        # build. Further we calculate resource*duration and increment their"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_85f48a5c","line":282,"range":{"start_line":282,"start_character":14,"end_line":282,"end_character":15},"in_reply_to":"9f560f44_5afb6d45","updated":"2020-08-26 16:04:09.000000000","message":"One undescore \u003d protected\nTwo undescores \u003d private\n\nE.g. https://www.tutorialsteacher.com/python/private-and-protected-access-modifiers-in-python","commit_id":"44f34fd6f07216f26571b738e0d743c24b5da923"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"ab22c918bf6b1d8515f1e645ee563104ac6265bc","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                except Exception:"},{"line_number":280,"context_line":"                    log.exception(\"Exception storing node %s \""},{"line_number":281,"context_line":"                                  \"while unlocking:\", node)"},{"line_number":282,"context_line":"        self.__unlockNodes(nodeset.getNodes(), zuul_event_id\u003dzuul_event_id)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        # When returning a nodeset we need to update the gauges if we have a"},{"line_number":285,"context_line":"        # build. Further we calculate resource*duration and increment their"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_e543c66a","line":282,"range":{"start_line":282,"start_character":14,"end_line":282,"end_character":15},"in_reply_to":"9f560f44_85f48a5c","updated":"2020-08-26 16:07:04.000000000","message":"Ya the name mangling is something I tend to avoid unless there is an explicit need for it. I guess if we want to be really explicit about not making things easily accessible this is fine.","commit_id":"44f34fd6f07216f26571b738e0d743c24b5da923"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"759255e9321e14e23092fd8091f799e9a9d5a059","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        self.__unlockNodes(nodeset.getNodes(), zuul_event_id)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def __unlockNodes(self, nodes, zuul_event_id\u003dNone):"},{"line_number":304,"context_line":"        log \u003d get_annotated_logger(self.log, zuul_event_id)"},{"line_number":305,"context_line":"        for node in nodes:"},{"line_number":306,"context_line":"            try:"},{"line_number":307,"context_line":"                self.sched.zk.unlockNode(node)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_fa51a163","line":304,"updated":"2020-08-26 15:33:16.000000000","message":"Consider moving this into the exception handler as we don\u0027t log outside of the exception handler.","commit_id":"44f34fd6f07216f26571b738e0d743c24b5da923"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"da639186845b7ef80eeb27e19c9f3f40009e0ffc","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        self.__unlockNodes(nodeset.getNodes(), zuul_event_id)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def __unlockNodes(self, nodes, zuul_event_id\u003dNone):"},{"line_number":304,"context_line":"        log \u003d get_annotated_logger(self.log, zuul_event_id)"},{"line_number":305,"context_line":"        for node in nodes:"},{"line_number":306,"context_line":"            try:"},{"line_number":307,"context_line":"                self.sched.zk.unlockNode(node)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_c59fa2ff","line":304,"in_reply_to":"9f560f44_fa51a163","updated":"2020-08-26 16:04:09.000000000","message":"Done","commit_id":"44f34fd6f07216f26571b738e0d743c24b5da923"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"759255e9321e14e23092fd8091f799e9a9d5a059","unresolved":false,"context_lines":[{"line_number":322,"context_line":"                if node.allocated_to !\u003d request_id:"},{"line_number":323,"context_line":"                    raise Exception(\"Node %s allocated to %s, not %s\" %"},{"line_number":324,"context_line":"                                    (node.id, node.allocated_to, request_id))"},{"line_number":325,"context_line":"                self.log.debug(\"Locking node %s\" % (node,))"},{"line_number":326,"context_line":"                self.sched.zk.lockNode(node, timeout\u003d30)"},{"line_number":327,"context_line":"                locked_nodes.append(node)"},{"line_number":328,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_9a634542","line":325,"range":{"start_line":325,"start_character":16,"end_line":325,"end_character":21},"updated":"2020-08-26 15:33:16.000000000","message":"Should drop the self. so that we log with the annotated logger.","commit_id":"44f34fd6f07216f26571b738e0d743c24b5da923"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"da639186845b7ef80eeb27e19c9f3f40009e0ffc","unresolved":false,"context_lines":[{"line_number":322,"context_line":"                if node.allocated_to !\u003d request_id:"},{"line_number":323,"context_line":"                    raise Exception(\"Node %s allocated to %s, not %s\" %"},{"line_number":324,"context_line":"                                    (node.id, node.allocated_to, request_id))"},{"line_number":325,"context_line":"                self.log.debug(\"Locking node %s\" % (node,))"},{"line_number":326,"context_line":"                self.sched.zk.lockNode(node, timeout\u003d30)"},{"line_number":327,"context_line":"                locked_nodes.append(node)"},{"line_number":328,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_258adebd","line":325,"range":{"start_line":325,"start_character":16,"end_line":325,"end_character":21},"in_reply_to":"9f560f44_9a634542","updated":"2020-08-26 16:04:09.000000000","message":"Done","commit_id":"44f34fd6f07216f26571b738e0d743c24b5da923"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"74871c3c586be56472f4805ba7c77e279fb56122","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                except Exception:"},{"line_number":280,"context_line":"                    log.exception(\"Exception storing node %s \""},{"line_number":281,"context_line":"                                  \"while unlocking:\", node)"},{"line_number":282,"context_line":"        self.__unlockNodes(nodeset.getNodes(), zuul_event_id\u003dzuul_event_id)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        # When returning a nodeset we need to update the gauges if we have a"},{"line_number":285,"context_line":"        # build. Further we calculate resource*duration and increment their"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_2d0000ab","line":282,"updated":"2020-08-26 20:11:43.000000000","message":"Let\u0027s stop adding extra underscores.  Double-underscore makes it really hard to override names in subclasses, so should only be used in extraordinary circumstances.","commit_id":"90624bf312645ab80ce6d6ff2b0f66aeb5246a7b"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"44713100c5da9b5cb9a704dfdb00116e1f1f514c","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                except Exception:"},{"line_number":280,"context_line":"                    log.exception(\"Exception storing node %s \""},{"line_number":281,"context_line":"                                  \"while unlocking:\", node)"},{"line_number":282,"context_line":"        self.__unlockNodes(nodeset.getNodes(), zuul_event_id\u003dzuul_event_id)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        # When returning a nodeset we need to update the gauges if we have a"},{"line_number":285,"context_line":"        # build. Further we calculate resource*duration and increment their"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_602f9a3e","line":282,"in_reply_to":"9f560f44_2d0000ab","updated":"2020-08-27 06:50:13.000000000","message":"There is no subclass of Nodepool as far as I can see. I was trying to make explicit that this is an internal method. Since a \"protected\" can (and often is) called as a public method, making it harder to navigate the code when everything is public. But maybe I am missing something here.","commit_id":"90624bf312645ab80ce6d6ff2b0f66aeb5246a7b"}]}
