)]}'
{"tests/unit/test_disk_accountant.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"8c50efe1a870b041a323c172abd2d127713f276d","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        jobs_dir \u003d os.path.join(root_dir, \u0027jobs\u0027)"},{"line_number":61,"context_line":"        os.mkdir(jobs_dir)"},{"line_number":62,"context_line":"        cache_dir \u003d os.path.join(root_dir, \u0027cache\u0027)"},{"line_number":63,"context_line":"        os.mkdir(cache_dir)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        executor_server \u003d FakeExecutor()"},{"line_number":66,"context_line":"        da \u003d DiskAccountant(jobs_dir, 1, executor_server.stopJobByJobDir,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff346bd7_668d5a7a","line":63,"updated":"2017-07-25 17:33:07.000000000","message":"Could throw some more files in cache_dir to exercise the thing I point out might be a problem in ExecutorServer.","commit_id":"a7f4455fbc13cd2b3570bee558b1e64691188466"}],"zuul/executor/server.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"8c50efe1a870b041a323c172abd2d127713f276d","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        :param callable func: Function to call with overlimit dirs"},{"line_number":76,"context_line":"        :param str cache_dir: absolute path name of dir to be passed as the"},{"line_number":77,"context_line":"                              first argument to du. This will ensure du does"},{"line_number":78,"context_line":"                              not count any hardlinks to files in this "},{"line_number":79,"context_line":"                              directory against a single job."},{"line_number":80,"context_line":"        :param callable usage_func: Optional function to call with usage"},{"line_number":81,"context_line":"                                    for every dir _NOT_ over limit"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff346bd7_46ea560f","line":78,"updated":"2017-07-25 17:33:07.000000000","message":"Is pep8 going to ding you for this?  I dunno.","commit_id":"a7f4455fbc13cd2b3570bee558b1e64691188466"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"8c50efe1a870b041a323c172abd2d127713f276d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            for line in du.stdout:"},{"line_number":102,"context_line":"                (size, dirname) \u003d line.rstrip().split()"},{"line_number":103,"context_line":"                dirname \u003d dirname.decode(\u0027utf8\u0027)"},{"line_number":104,"context_line":"                if dirname \u003d\u003d self.jobs_base or dirname \u003d\u003d self.cache_dir:"},{"line_number":105,"context_line":"                    continue"},{"line_number":106,"context_line":"                size \u003d int(size)"},{"line_number":107,"context_line":"                if size \u003e self.limit:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff346bd7_26ed1225","line":104,"updated":"2017-07-25 17:33:07.000000000","message":"Does this need to be dirname.startswith(self.cache_dir) ?  Since the cache dir will have a bunch of repo names under it.","commit_id":"a7f4455fbc13cd2b3570bee558b1e64691188466"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"b96ac47dcea49c2a80b70147c387e1079c13df74","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    Whenever the accountant notices a dir over limit, it will call the"},{"line_number":62,"context_line":"    given func with an argument of the job directory. That function"},{"line_number":63,"context_line":"    should be used to remediate the problem, generally by killing the"},{"line_number":64,"context_line":"    job producing the disk bloat). The function will be called every"},{"line_number":65,"context_line":"    time the problem is noticed, so it should be handled synchronously"},{"line_number":66,"context_line":"    to avoid stacking up calls."},{"line_number":67,"context_line":"    \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"df3967d1_45dcea45","line":64,"range":{"start_line":64,"start_character":32,"end_line":64,"end_character":33},"updated":"2017-07-28 19:14:40.000000000","message":"nit: unmatched parentheses","commit_id":"dc8a090c4cc5d68c60588c2778b60f6f918b9c1a"}]}
