)]}'
{"tests/unit/test_scheduler.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"8c945573cbe6b68f9934d5a46f690d3fe876b4ef","unresolved":false,"context_lines":[{"line_number":1983,"context_line":"        self.assertGreater(req[\u0027request_expiration\u0027], req[\u0027node_expiration\u0027])"},{"line_number":1984,"context_line":""},{"line_number":1985,"context_line":"        time.sleep(self.sched.HOLD_REQUEST_EXPIRATION)"},{"line_number":1986,"context_line":"        A \u003d self.fake_gerrit.addFakeChange(\u0027org/project\u0027, \u0027master\u0027, \u0027A\u0027)"},{"line_number":1987,"context_line":""},{"line_number":1988,"context_line":"        for _ in iterate_timeout(10, \u0027Wait for hold request expiration\u0027):"},{"line_number":1989,"context_line":"            if len(client.autohold_list()) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_5aa3069f","line":1986,"updated":"2019-06-07 19:53:30.000000000","message":"You also need to:\n        self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1))\nThat will add the \u0027patchset-created\u0027 event into the system and get things started.\nAfter that, you can also do:\n        self.waitUntilSettled()\nWhich should return after zuul has reported on the change, so the next counter will start from right after that.\n\nNote that 10 seconds is a pretty short time in the unit tests when they\u0027re busy; you may need to wait for 30 or 60 seconds for this test to be stable.","commit_id":"e0da84d0a202e22f2d335bcef67bdacffb951ca9"}],"zuul/nodepool.py":[{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"33c07a4bbbcb7f55a23ac0497e68d04f56cf7688","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        # Request has been used at least the maximum number of times so set"},{"line_number":155,"context_line":"        # the expiration time so that it can be auto-deleted."},{"line_number":156,"context_line":"        if request.current_count \u003e\u003d request.max_count and not request.expired:"},{"line_number":157,"context_line":"            request.expired \u003d time.time()"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        # Give ourselves a few seconds to try to obtain the lock rather than"},{"line_number":160,"context_line":"        # immediately give up."}],"source_content_type":"text/x-python","patch_set":10,"id":"9fb8cfa7_f664cee7","line":157,"range":{"start_line":157,"start_character":20,"end_line":157,"end_character":27},"updated":"2019-06-17 07:43:55.000000000","message":"(nit) `expired` implies a boolean imo. It\u0027d be clearer to use `expired_time`","commit_id":"8af8ac44c19a489dff80a9af77d68412269a5ccc"}],"zuul/scheduler.py":[{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"9500caf2a6d491873071fb349db6068294fa7d36","unresolved":false,"context_lines":[{"line_number":270,"context_line":"    _stats_interval \u003d 30"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    # Number of seconds past node expiration a hold request will remain"},{"line_number":273,"context_line":"    HOLD_REQUEST_EXPIRATION \u003d 24 * 60 * 60"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def __init__(self, config, testonly\u003dFalse):"},{"line_number":276,"context_line":"        threading.Thread.__init__(self)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5faad753_33b0948a","line":273,"range":{"start_line":273,"start_character":4,"end_line":273,"end_character":27},"updated":"2019-09-13 18:34:19.000000000","message":"perhaps name this constant \"EXPIRED_HOLD_REQUEST_TTL\"?","commit_id":"8126f36029eda08bdba74f848157d0debc4e7a93"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"f56194d3eed7b3efef8522a9d9d9735030a899bf","unresolved":false,"context_lines":[{"line_number":270,"context_line":"    _stats_interval \u003d 30"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    # Number of seconds past node expiration a hold request will remain"},{"line_number":273,"context_line":"    HOLD_REQUEST_EXPIRATION \u003d 24 * 60 * 60"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def __init__(self, config, testonly\u003dFalse):"},{"line_number":276,"context_line":"        threading.Thread.__init__(self)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3fa7e38b_24bc7268","line":273,"range":{"start_line":273,"start_character":4,"end_line":273,"end_character":27},"in_reply_to":"5faad753_33b0948a","updated":"2019-09-16 15:00:39.000000000","message":"Done","commit_id":"8126f36029eda08bdba74f848157d0debc4e7a93"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"9500caf2a6d491873071fb349db6068294fa7d36","unresolved":false,"context_lines":[{"line_number":1296,"context_line":"            return"},{"line_number":1297,"context_line":"        pipeline.manager.onBuildPaused(event.build)"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"    def _holdRequestIsExpired(self, request):"},{"line_number":1300,"context_line":"        \u0027\u0027\u0027"},{"line_number":1301,"context_line":"        Check if a hold request is expired and delete it if it is."},{"line_number":1302,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"5faad753_f353dc37","line":1299,"range":{"start_line":1299,"start_character":8,"end_line":1299,"end_character":29},"updated":"2019-09-13 18:34:19.000000000","message":"nit: perhaps this procedure should be split in two? the name is a bit misleading.\nHow about?:\n\n  if holdRequestIsExpire():\n      deleteHoldRequest()","commit_id":"8126f36029eda08bdba74f848157d0debc4e7a93"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"f56194d3eed7b3efef8522a9d9d9735030a899bf","unresolved":false,"context_lines":[{"line_number":1296,"context_line":"            return"},{"line_number":1297,"context_line":"        pipeline.manager.onBuildPaused(event.build)"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"    def _holdRequestIsExpired(self, request):"},{"line_number":1300,"context_line":"        \u0027\u0027\u0027"},{"line_number":1301,"context_line":"        Check if a hold request is expired and delete it if it is."},{"line_number":1302,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3fa7e38b_84aa0617","line":1299,"range":{"start_line":1299,"start_character":8,"end_line":1299,"end_character":29},"in_reply_to":"5faad753_f353dc37","updated":"2019-09-16 15:00:39.000000000","message":"Renamed the method.","commit_id":"8126f36029eda08bdba74f848157d0debc4e7a93"}]}
