)]}'
{"storlets/agent/common/server.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d77ca1c3926b1a0ff3e899eed59099fd016791e4","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        :param resp: CommandResponse instance"},{"line_number":141,"context_line":"        \"\"\""},{"line_number":142,"context_line":"        try:"},{"line_number":143,"context_line":"            outfile.write(resp.report_message)"},{"line_number":144,"context_line":"        except IOError:"},{"line_number":145,"context_line":"            self.logger.exception(\u0027Unable to return response to client\u0027)"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_8438bb9f","line":143,"range":{"start_line":143,"start_character":26,"end_line":143,"end_character":45},"updated":"2019-11-06 06:48:03.000000000","message":"Off-topic -- I take it these messages tend to be pretty short?","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"4426b3b74ed7297df34004bcbcb2e143aad4f068","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        :param resp: CommandResponse instance"},{"line_number":141,"context_line":"        \"\"\""},{"line_number":142,"context_line":"        try:"},{"line_number":143,"context_line":"            outfile.write(resp.report_message)"},{"line_number":144,"context_line":"        except IOError:"},{"line_number":145,"context_line":"            self.logger.exception(\u0027Unable to return response to client\u0027)"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_76ac4e9f","line":143,"range":{"start_line":143,"start_character":26,"end_line":143,"end_character":45},"in_reply_to":"3fa7e38b_7f72e8b2","updated":"2019-11-06 14:51:29.000000000","message":":+1:","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"1a1a68ea990a02951abedc26fcc5117d7d50342f","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        :param resp: CommandResponse instance"},{"line_number":141,"context_line":"        \"\"\""},{"line_number":142,"context_line":"        try:"},{"line_number":143,"context_line":"            outfile.write(resp.report_message)"},{"line_number":144,"context_line":"        except IOError:"},{"line_number":145,"context_line":"            self.logger.exception(\u0027Unable to return response to client\u0027)"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_7f72e8b2","line":143,"range":{"start_line":143,"start_character":26,"end_line":143,"end_character":45},"in_reply_to":"3fa7e38b_8438bb9f","updated":"2019-11-06 08:52:28.000000000","message":"3 types:\n- \"OK\"\n- \"Internal Error\"\n- \u003cpython error Traceback\u003e\n\nReasonably short enough in my idea.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"}],"storlets/agent/daemon/files.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d77ca1c3926b1a0ff3e899eed59099fd016791e4","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    def __init__(self, md_fd, obj_fd):"},{"line_number":87,"context_line":"        super(StorletOutputFile, self).__init__(obj_fd)"},{"line_number":88,"context_line":"        self._metadata \u003d None"},{"line_number":89,"context_line":"        self.md_file \u003d os.fdopen(md_fd, \u0027wb\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def get_metadata(self):"},{"line_number":92,"context_line":"        if self._metadata is None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_84619bab","line":89,"range":{"start_line":89,"start_character":40,"end_line":89,"end_character":44},"updated":"2019-11-06 06:48:03.000000000","message":"Seems kinda funny that we don\u0027t just use self.mode... but meh, pre-existing...","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d77ca1c3926b1a0ff3e899eed59099fd016791e4","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    def set_metadata(self, md):"},{"line_number":97,"context_line":"        if self.md_file.closed:"},{"line_number":98,"context_line":"            raise IOError(\u0027Sending metadata twice is not allowed\u0027)"},{"line_number":99,"context_line":"        self.md_file.write(json.dumps(md).encode(\u0027utf-8\u0027))"},{"line_number":100,"context_line":"        self._metadata \u003d md"},{"line_number":101,"context_line":"        self.md_file.close()"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_c44d533c","line":99,"range":{"start_line":99,"start_character":50,"end_line":99,"end_character":55},"updated":"2019-11-06 06:48:03.000000000","message":"FWIW, json.dumps() defaults to ensure_ascii\u003dTrue, so you could even be more restrictive. w/e, either way.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"ef8c1249a1ac169969a44d68b95af681d62fb02a","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    def set_metadata(self, md):"},{"line_number":97,"context_line":"        if self.md_file.closed:"},{"line_number":98,"context_line":"            raise IOError(\u0027Sending metadata twice is not allowed\u0027)"},{"line_number":99,"context_line":"        self.md_file.write(json.dumps(md).encode(\u0027utf-8\u0027))"},{"line_number":100,"context_line":"        self._metadata \u003d md"},{"line_number":101,"context_line":"        self.md_file.close()"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_3df6ae92","line":99,"range":{"start_line":99,"start_character":50,"end_line":99,"end_character":55},"in_reply_to":"3fa7e38b_c44d533c","updated":"2019-11-07 07:25:09.000000000","message":"it looks right. but anyway, we need *bytes* here.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"}],"storlets/agent/daemon/server.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d77ca1c3926b1a0ff3e899eed59099fd016791e4","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self.logger.debug(\u0027Returning task_id: %s \u0027 % task_id)"},{"line_number":160,"context_line":"        with os.fdopen(task_id_out_fd, \u0027wb\u0027) as outfile:"},{"line_number":161,"context_line":"            outfile.write(task_id)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        storlet_md \u003d dtg.object_in_storlet_metadata"},{"line_number":164,"context_line":"        params \u003d dtg.params"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_2456a7d0","line":161,"range":{"start_line":161,"start_character":26,"end_line":161,"end_character":33},"updated":"2019-11-06 06:48:03.000000000","message":"I think we might need to encode this.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"1a1a68ea990a02951abedc26fcc5117d7d50342f","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self.logger.debug(\u0027Returning task_id: %s \u0027 % task_id)"},{"line_number":160,"context_line":"        with os.fdopen(task_id_out_fd, \u0027wb\u0027) as outfile:"},{"line_number":161,"context_line":"            outfile.write(task_id)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        storlet_md \u003d dtg.object_in_storlet_metadata"},{"line_number":164,"context_line":"        params \u003d dtg.params"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_dfb19c46","line":161,"range":{"start_line":161,"start_character":26,"end_line":161,"end_character":33},"in_reply_to":"3fa7e38b_2456a7d0","updated":"2019-11-06 08:52:28.000000000","message":"Oh, this one is what I was looking for at https://review.opendev.org/#/c/693130\n\nthe task_id is being bytes here then the params is falling into the json error.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"4426b3b74ed7297df34004bcbcb2e143aad4f068","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self.logger.debug(\u0027Returning task_id: %s \u0027 % task_id)"},{"line_number":160,"context_line":"        with os.fdopen(task_id_out_fd, \u0027wb\u0027) as outfile:"},{"line_number":161,"context_line":"            outfile.write(task_id)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        storlet_md \u003d dtg.object_in_storlet_metadata"},{"line_number":164,"context_line":"        params \u003d dtg.params"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_169f1a52","line":161,"range":{"start_line":161,"start_character":26,"end_line":161,"end_character":33},"updated":"2019-11-06 14:51:29.000000000","message":"Still think this needs to get encoded --\n\n str(...)[:8]\n\nwill still be str on py3, not bytes, no?","commit_id":"4e56499627148db565bb7e2e33993c1fbb99555a"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"953a6076eefc05b22656c003971a4033dabd976e","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self.logger.debug(\u0027Returning task_id: %s \u0027 % task_id)"},{"line_number":160,"context_line":"        with os.fdopen(task_id_out_fd, \u0027wb\u0027) as outfile:"},{"line_number":161,"context_line":"            outfile.write(task_id)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        storlet_md \u003d dtg.object_in_storlet_metadata"},{"line_number":164,"context_line":"        params \u003d dtg.params"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_b35c0df1","line":161,"range":{"start_line":161,"start_character":26,"end_line":161,"end_character":33},"in_reply_to":"3fa7e38b_169f1a52","updated":"2019-11-07 07:30:38.000000000","message":"Done","commit_id":"4e56499627148db565bb7e2e33993c1fbb99555a"}],"tests/functional/java/test_SLO.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d77ca1c3926b1a0ff3e899eed59099fd016791e4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"def create_local_chunks():"},{"line_number":28,"context_line":"    for i in range(1, 10):"},{"line_number":29,"context_line":"        oname \u003d \u0027/tmp/slo_chunk_%d\u0027 % i"},{"line_number":30,"context_line":"        f \u003d open(oname, \u0027wb\u0027)"},{"line_number":31,"context_line":"        f.write(\u0027\u0027.join(random.choice(string.ascii_uppercase + string.digits)"},{"line_number":32,"context_line":"                for _ in range(1048576)))"},{"line_number":33,"context_line":"        f.close()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_046dab98","line":30,"updated":"2019-11-06 06:48:03.000000000","message":"We either want to leave this as it was, or encode the string when we write it.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"1a1a68ea990a02951abedc26fcc5117d7d50342f","unresolved":false,"context_lines":[{"line_number":27,"context_line":"def create_local_chunks():"},{"line_number":28,"context_line":"    for i in range(1, 10):"},{"line_number":29,"context_line":"        oname \u003d \u0027/tmp/slo_chunk_%d\u0027 % i"},{"line_number":30,"context_line":"        f \u003d open(oname, \u0027wb\u0027)"},{"line_number":31,"context_line":"        f.write(\u0027\u0027.join(random.choice(string.ascii_uppercase + string.digits)"},{"line_number":32,"context_line":"                for _ in range(1048576)))"},{"line_number":33,"context_line":"        f.close()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_dfb8bc12","line":30,"in_reply_to":"3fa7e38b_046dab98","updated":"2019-11-06 08:52:28.000000000","message":"What? I think it\u0027s a local binary file, not an object name, right?\n\nAnd I assume the swift object body should be binary, ya?","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d12f35d59ce3cfc4862646d260bcb8d9cd1f2a4b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"def create_local_chunks():"},{"line_number":28,"context_line":"    for i in range(1, 10):"},{"line_number":29,"context_line":"        oname \u003d \u0027/tmp/slo_chunk_%d\u0027 % i"},{"line_number":30,"context_line":"        f \u003d open(oname, \u0027wb\u0027)"},{"line_number":31,"context_line":"        f.write(\u0027\u0027.join(random.choice(string.ascii_uppercase + string.digits)"},{"line_number":32,"context_line":"                for _ in range(1048576)))"},{"line_number":33,"context_line":"        f.close()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_d3d3c95e","line":30,"in_reply_to":"3fa7e38b_16cdda5d","updated":"2019-11-07 07:23:34.000000000","message":"Agree with Tim.\n\nWe are still trying to write str into file here, so we don\u0027t need to open the file in binary mode, while we need to open it with binary mode when passing it to swift client.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"ef8c1249a1ac169969a44d68b95af681d62fb02a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"def create_local_chunks():"},{"line_number":28,"context_line":"    for i in range(1, 10):"},{"line_number":29,"context_line":"        oname \u003d \u0027/tmp/slo_chunk_%d\u0027 % i"},{"line_number":30,"context_line":"        f \u003d open(oname, \u0027wb\u0027)"},{"line_number":31,"context_line":"        f.write(\u0027\u0027.join(random.choice(string.ascii_uppercase + string.digits)"},{"line_number":32,"context_line":"                for _ in range(1048576)))"},{"line_number":33,"context_line":"        f.close()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_dd151a9d","line":30,"in_reply_to":"3fa7e38b_16cdda5d","updated":"2019-11-07 07:25:09.000000000","message":"Oh shit!\nGood catch. I was missing the Line 31 that is str obviously. thx.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"4426b3b74ed7297df34004bcbcb2e143aad4f068","unresolved":false,"context_lines":[{"line_number":27,"context_line":"def create_local_chunks():"},{"line_number":28,"context_line":"    for i in range(1, 10):"},{"line_number":29,"context_line":"        oname \u003d \u0027/tmp/slo_chunk_%d\u0027 % i"},{"line_number":30,"context_line":"        f \u003d open(oname, \u0027wb\u0027)"},{"line_number":31,"context_line":"        f.write(\u0027\u0027.join(random.choice(string.ascii_uppercase + string.digits)"},{"line_number":32,"context_line":"                for _ in range(1048576)))"},{"line_number":33,"context_line":"        f.close()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_16cdda5d","line":30,"in_reply_to":"3fa7e38b_dfb8bc12","updated":"2019-11-06 14:51:29.000000000","message":"Swift obj body should be binary, yeah, but we aren\u0027t touching swiftclient yet, are we? My main concern is the fact that every part of\n\n \u0027\u0027.join(random.choice(string.ascii_uppercase + string.digits)\n         for ...)\n\nis going to be a str, not bytes.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"39c89fb6107901b983a0037f943591596cef989d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    for i in range(1, 10):"},{"line_number":29,"context_line":"        oname \u003d \u0027/tmp/slo_chunk_%d\u0027 % i"},{"line_number":30,"context_line":"        f \u003d open(oname, \u0027wb\u0027)"},{"line_number":31,"context_line":"        f.write(\u0027\u0027.join("},{"line_number":32,"context_line":"            random.choice("},{"line_number":33,"context_line":"                string.ascii_uppercase + string.digits).encode(\"utf-8\")"},{"line_number":34,"context_line":"            for _ in range(1048576)))"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_0b9da5ba","line":31,"range":{"start_line":31,"start_character":16,"end_line":31,"end_character":18},"updated":"2019-11-07 16:46:21.000000000","message":"b\u0027\u0027","commit_id":"fb6fc7474373cbcfbf8dac0dc7073a0a1858f977"}],"tests/functional/java/test_identity_storlet.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d77ca1c3926b1a0ff3e899eed59099fd016791e4","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            GBFile \u003d open(\u0027/tmp/1GB_file\u0027, \u0027wb\u0027)"},{"line_number":132,"context_line":"            for _ in range(128):"},{"line_number":133,"context_line":"                uploaded_content \u003d \u0027\u0027.join(\u00271\u0027 for _ in range(8 * 1024 * 1024))"},{"line_number":134,"context_line":"                GBFile.write(uploaded_content)"},{"line_number":135,"context_line":"            GBFile.close()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"            headers \u003d {\u0027X-Run-Storlet\u0027: self.storlet_name}"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_a469378d","line":134,"range":{"start_line":134,"start_character":29,"end_line":134,"end_character":45},"updated":"2019-11-06 06:48:03.000000000","message":"Needs to get encoded if we\u0027re opening in binary mode.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"1a1a68ea990a02951abedc26fcc5117d7d50342f","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            GBFile \u003d open(\u0027/tmp/1GB_file\u0027, \u0027wb\u0027)"},{"line_number":132,"context_line":"            for _ in range(128):"},{"line_number":133,"context_line":"                uploaded_content \u003d \u0027\u0027.join(\u00271\u0027 for _ in range(8 * 1024 * 1024))"},{"line_number":134,"context_line":"                GBFile.write(uploaded_content)"},{"line_number":135,"context_line":"            GBFile.close()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"            headers \u003d {\u0027X-Run-Storlet\u0027: self.storlet_name}"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_bf69408d","line":134,"range":{"start_line":134,"start_character":29,"end_line":134,"end_character":45},"in_reply_to":"3fa7e38b_a469378d","updated":"2019-11-06 08:52:28.000000000","message":"right. will do.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"}],"tests/functional/python/test_SLO.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d77ca1c3926b1a0ff3e899eed59099fd016791e4","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                if i in range(9):"},{"line_number":98,"context_line":"                    self.assertEqual(chunk, self.chunks[i])"},{"line_number":99,"context_line":"                else:"},{"line_number":100,"context_line":"                    aux_content \u003d \u0027\u0027"},{"line_number":101,"context_line":"                    for j in range(1, 4):"},{"line_number":102,"context_line":"                        oname \u003d \u0027aux_file%d\u0027 % j"},{"line_number":103,"context_line":"                        with open(oname, \u0027rb\u0027) as f:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_84067bcd","line":100,"range":{"start_line":100,"start_character":34,"end_line":100,"end_character":36},"updated":"2019-11-06 06:48:03.000000000","message":"Should be bytes, yeah? Like b\u0027\u0027","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"1a1a68ea990a02951abedc26fcc5117d7d50342f","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                if i in range(9):"},{"line_number":98,"context_line":"                    self.assertEqual(chunk, self.chunks[i])"},{"line_number":99,"context_line":"                else:"},{"line_number":100,"context_line":"                    aux_content \u003d \u0027\u0027"},{"line_number":101,"context_line":"                    for j in range(1, 4):"},{"line_number":102,"context_line":"                        oname \u003d \u0027aux_file%d\u0027 % j"},{"line_number":103,"context_line":"                        with open(oname, \u0027rb\u0027) as f:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_dffbdcbb","line":100,"range":{"start_line":100,"start_character":34,"end_line":100,"end_character":36},"in_reply_to":"3fa7e38b_84067bcd","updated":"2019-11-06 08:52:28.000000000","message":"Right","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"}],"tests/functional/python/test_simple_storlet.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d77ca1c3926b1a0ff3e899eed59099fd016791e4","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        with tempfile.NamedTemporaryFile() as f:"},{"line_number":86,"context_line":"            with open(f.name, \u0027wb\u0027) as wf:"},{"line_number":87,"context_line":"                for _ in range(128):"},{"line_number":88,"context_line":"                    wf.write(\u00271\u0027 * (4 * 1024 * 1024))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"            headers \u003d {\u0027X-Run-Storlet\u0027: self.storlet_name}"},{"line_number":91,"context_line":"            headers.update(self.additional_headers)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_240b07d6","line":88,"range":{"start_line":88,"start_character":29,"end_line":88,"end_character":32},"updated":"2019-11-06 06:48:03.000000000","message":"Should be bytes now that we\u0027ve opened in binary.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"1a1a68ea990a02951abedc26fcc5117d7d50342f","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        with tempfile.NamedTemporaryFile() as f:"},{"line_number":86,"context_line":"            with open(f.name, \u0027wb\u0027) as wf:"},{"line_number":87,"context_line":"                for _ in range(128):"},{"line_number":88,"context_line":"                    wf.write(\u00271\u0027 * (4 * 1024 * 1024))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"            headers \u003d {\u0027X-Run-Storlet\u0027: self.storlet_name}"},{"line_number":91,"context_line":"            headers.update(self.additional_headers)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_9f2fa43d","line":88,"range":{"start_line":88,"start_character":29,"end_line":88,"end_character":32},"in_reply_to":"3fa7e38b_240b07d6","updated":"2019-11-06 08:52:28.000000000","message":"right","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"}],"tests/unit/agent/daemon/test_files.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d77ca1c3926b1a0ff3e899eed59099fd016791e4","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        with open(self.md_fname, \u0027rb\u0027) as f:"},{"line_number":79,"context_line":"            self.assertEqual(self.metadata,"},{"line_number":80,"context_line":"                             json.loads(f.read()))"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_set_metadata_twice(self):"},{"line_number":83,"context_line":"        with self.sfile as sfile:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_04f28be4","line":80,"range":{"start_line":80,"start_character":29,"end_line":80,"end_character":39},"updated":"2019-11-06 06:48:03.000000000","message":"May want to keep \u0027r\u0027 mode since we\u0027re sending this to json.loads()","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"1a1a68ea990a02951abedc26fcc5117d7d50342f","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        with open(self.md_fname, \u0027rb\u0027) as f:"},{"line_number":79,"context_line":"            self.assertEqual(self.metadata,"},{"line_number":80,"context_line":"                             json.loads(f.read()))"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_set_metadata_twice(self):"},{"line_number":83,"context_line":"        with self.sfile as sfile:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_ff1d7810","line":80,"range":{"start_line":80,"start_character":29,"end_line":80,"end_character":39},"in_reply_to":"3fa7e38b_04f28be4","updated":"2019-11-06 08:52:28.000000000","message":"all right. revert the change for now.","commit_id":"0af7a1822876f666b55534d6854aba63c762a6fc"}],"tests/unit/gateway/gateways/docker/test_gateway.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"39c89fb6107901b983a0037f943591596cef989d","unresolved":false,"context_lines":[{"line_number":519,"context_line":""},{"line_number":520,"context_line":"        class MockFileManager(object):"},{"line_number":521,"context_line":"            def get_storlet(self, req):"},{"line_number":522,"context_line":"                return BytesIO(\u0027mock\u0027), None"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"            def get_dependency(self, req):"},{"line_number":525,"context_line":"                return BytesIO(\u0027mock\u0027), None"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_8ba8b5d9","line":522,"range":{"start_line":522,"start_character":31,"end_line":522,"end_character":37},"updated":"2019-11-07 16:46:21.000000000","message":"b\u0027mock\u0027","commit_id":"fb6fc7474373cbcfbf8dac0dc7073a0a1858f977"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"39c89fb6107901b983a0037f943591596cef989d","unresolved":false,"context_lines":[{"line_number":522,"context_line":"                return BytesIO(\u0027mock\u0027), None"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"            def get_dependency(self, req):"},{"line_number":525,"context_line":"                return BytesIO(\u0027mock\u0027), None"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"        st_req.file_manager \u003d MockFileManager()"},{"line_number":528,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_ab7a5174","line":525,"updated":"2019-11-07 16:46:21.000000000","message":"ditto","commit_id":"fb6fc7474373cbcfbf8dac0dc7073a0a1858f977"}]}
