)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33934,"name":"Joshua Watt","email":"JPEWhacker@gmail.com","username":"jpew"},"change_message_id":"2b2c7c668685085aa209ac316850a392a59955ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"959cf16a_949c1dfa","updated":"2022-04-25 16:04:16.000000000","message":"recheck","commit_id":"8904fbd3274b5cffe0b444e4155fa45f4936d1ff"},{"author":{"_account_id":33934,"name":"Joshua Watt","email":"JPEWhacker@gmail.com","username":"jpew"},"change_message_id":"c1a197a1ca4da4beeda242f2e03ed8449e506de9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"38729062_a6e02082","updated":"2022-04-27 21:39:56.000000000","message":"recheck","commit_id":"ab56e7792162d12d37a413a8f6ed946e2255c3d0"},{"author":{"_account_id":33934,"name":"Joshua Watt","email":"JPEWhacker@gmail.com","username":"jpew"},"change_message_id":"725bbcf1eb81ce71659e66f336b5773b238760cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"eb7ae44e_09fd29de","updated":"2022-04-26 15:05:05.000000000","message":"recheck","commit_id":"ab56e7792162d12d37a413a8f6ed946e2255c3d0"}],"nodepool/driver/utils.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"2c8c40d06b6751288127bbfd76ad344dc92518a4","unresolved":true,"context_lines":[{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def __init__(self, *args, **kw):"},{"line_number":261,"context_line":"        super().__init__(*args, **kw)"},{"line_number":262,"context_line":"        self._current_nodepool_quota \u003d None"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    @abc.abstractmethod"},{"line_number":265,"context_line":"    def quotaNeededByLabel(self, label, pool):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfcfce5b_458e6625","line":262,"updated":"2022-05-09 22:26:02.000000000","message":"Would it be better to set the value to {} here instead? One potential upside to that is that as python 3.11 gets closer to reality we may see performance improvements if we manage to be more consistent about the \"shape\" of our objects.","commit_id":"cad57ff0c849a032dd6e3cbdab3fa06908e0f670"},{"author":{"_account_id":33934,"name":"Joshua Watt","email":"JPEWhacker@gmail.com","username":"jpew"},"change_message_id":"d76145adff627325b2fcda90ed5ea25ab43861ac","unresolved":false,"context_lines":[{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def __init__(self, *args, **kw):"},{"line_number":261,"context_line":"        super().__init__(*args, **kw)"},{"line_number":262,"context_line":"        self._current_nodepool_quota \u003d None"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    @abc.abstractmethod"},{"line_number":265,"context_line":"    def quotaNeededByLabel(self, label, pool):"}],"source_content_type":"text/x-python","patch_set":5,"id":"4e6decbf_83c853c6","line":262,"in_reply_to":"b6051a64_1071a009","updated":"2022-05-10 14:44:59.000000000","message":"Done","commit_id":"cad57ff0c849a032dd6e3cbdab3fa06908e0f670"},{"author":{"_account_id":33934,"name":"Joshua Watt","email":"JPEWhacker@gmail.com","username":"jpew"},"change_message_id":"1a6c2ae4285ab6462df35f362aa8f44f11432ec7","unresolved":true,"context_lines":[{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def __init__(self, *args, **kw):"},{"line_number":261,"context_line":"        super().__init__(*args, **kw)"},{"line_number":262,"context_line":"        self._current_nodepool_quota \u003d None"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    @abc.abstractmethod"},{"line_number":265,"context_line":"    def quotaNeededByLabel(self, label, pool):"}],"source_content_type":"text/x-python","patch_set":5,"id":"b6051a64_1071a009","line":262,"in_reply_to":"bfcfce5b_458e6625","updated":"2022-05-10 14:44:19.000000000","message":"Ya, I think it makes the most sense to also split apart the quota dict from the timestamp value?","commit_id":"cad57ff0c849a032dd6e3cbdab3fa06908e0f670"}],"nodepool/tests/unit/test_launcher.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"2c8c40d06b6751288127bbfd76ad344dc92518a4","unresolved":true,"context_lines":[{"line_number":2319,"context_line":"        # This should timeout since the request will continue to be re-issued"},{"line_number":2320,"context_line":"        # to the provider as long as the provider returns a quota error"},{"line_number":2321,"context_line":"        with self.assertRaisesRegex(Exception, r\"Timeout waiting\"):"},{"line_number":2322,"context_line":"            req \u003d self.waitForNodeRequest(req)"},{"line_number":2323,"context_line":""},{"line_number":2324,"context_line":"        # Bump up the quota to allow the provider to allocate a node"},{"line_number":2325,"context_line":"        max_instances \u003d 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"ce28e7fe_b9847526","line":2322,"updated":"2022-05-09 22:26:02.000000000","message":"This will wait for an entire minute. Is there anyway we can assert this more quickly? Maybe by checking zk state directly or some other side effect?\n\nThis is why I\u0027ve -1\u0027d the other comment is more for discussion.","commit_id":"cad57ff0c849a032dd6e3cbdab3fa06908e0f670"},{"author":{"_account_id":33934,"name":"Joshua Watt","email":"JPEWhacker@gmail.com","username":"jpew"},"change_message_id":"1a6c2ae4285ab6462df35f362aa8f44f11432ec7","unresolved":true,"context_lines":[{"line_number":2319,"context_line":"        # This should timeout since the request will continue to be re-issued"},{"line_number":2320,"context_line":"        # to the provider as long as the provider returns a quota error"},{"line_number":2321,"context_line":"        with self.assertRaisesRegex(Exception, r\"Timeout waiting\"):"},{"line_number":2322,"context_line":"            req \u003d self.waitForNodeRequest(req)"},{"line_number":2323,"context_line":""},{"line_number":2324,"context_line":"        # Bump up the quota to allow the provider to allocate a node"},{"line_number":2325,"context_line":"        max_instances \u003d 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"f8bb1dd7_c3bf1cfc","line":2322,"in_reply_to":"ce28e7fe_b9847526","updated":"2022-05-10 14:44:19.000000000","message":"Yes. I added a helper API to get any node in a specific state, so we can look for any node in the zk.ABORTED state to know if a quota error has occurred.","commit_id":"cad57ff0c849a032dd6e3cbdab3fa06908e0f670"},{"author":{"_account_id":33934,"name":"Joshua Watt","email":"JPEWhacker@gmail.com","username":"jpew"},"change_message_id":"d76145adff627325b2fcda90ed5ea25ab43861ac","unresolved":false,"context_lines":[{"line_number":2319,"context_line":"        # This should timeout since the request will continue to be re-issued"},{"line_number":2320,"context_line":"        # to the provider as long as the provider returns a quota error"},{"line_number":2321,"context_line":"        with self.assertRaisesRegex(Exception, r\"Timeout waiting\"):"},{"line_number":2322,"context_line":"            req \u003d self.waitForNodeRequest(req)"},{"line_number":2323,"context_line":""},{"line_number":2324,"context_line":"        # Bump up the quota to allow the provider to allocate a node"},{"line_number":2325,"context_line":"        max_instances \u003d 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"3bee08ca_67de9f33","line":2322,"in_reply_to":"f8bb1dd7_c3bf1cfc","updated":"2022-05-10 14:44:59.000000000","message":"Done","commit_id":"cad57ff0c849a032dd6e3cbdab3fa06908e0f670"}]}
