)]}'
{"Engine/agent/storlet_daemon/daemon.py":[{"author":{"_account_id":11317,"name":"Eran Rom","email":"eran@itsonlyme.name","username":"eranr"},"change_message_id":"40b4316d4a95459effdff840ed86bbe70c7cd75e","unresolved":false,"context_lines":[{"line_number":359,"context_line":"                    end \u003d st_md.get(\u0027end\u0027)"},{"line_number":360,"context_line":"                    if start is not None and end is not None:"},{"line_number":361,"context_line":"                        in_files.append("},{"line_number":362,"context_line":"                            StorletRangeInputFile(in_fd, int(start), int(end)))"},{"line_number":363,"context_line":"                    else:"},{"line_number":364,"context_line":"                        in_files.append(StorletInputFile(in_fd))"},{"line_number":365,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a89bdaa_dbadef32","line":362,"updated":"2016-09-05 06:09:50.000000000","message":"I like this approach better than the previous one - that is passing our own classes rather Python\u0027s generic file object.\n\nIf we expose seek, read, readlines to the storlet writer we should probably also add these to the sample storlet for testing. Also, we need to document these classes for the storlet writer.","commit_id":"3f43fa96cdd13f45866816c28d81782a2c7ac967"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"90d2fce55c4b8cc833e647c211e4c1d567ffb19e","unresolved":false,"context_lines":[{"line_number":359,"context_line":"                    end \u003d st_md.get(\u0027end\u0027)"},{"line_number":360,"context_line":"                    if start is not None and end is not None:"},{"line_number":361,"context_line":"                        in_files.append("},{"line_number":362,"context_line":"                            StorletRangeInputFile(in_fd, int(start), int(end)))"},{"line_number":363,"context_line":"                    else:"},{"line_number":364,"context_line":"                        in_files.append(StorletInputFile(in_fd))"},{"line_number":365,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a89bdaa_6f525d15","line":362,"in_reply_to":"9a89bdaa_dbadef32","updated":"2016-09-05 07:36:48.000000000","message":"As you pointed out, we need to document what kind of interface storlet developers can use. That should be done in documentation patch.","commit_id":"3f43fa96cdd13f45866816c28d81782a2c7ac967"}],"tests/functional/python/test_simple_storlet.py":[{"author":{"_account_id":11317,"name":"Eran Rom","email":"eran@itsonlyme.name","username":"eranr"},"change_message_id":"40b4316d4a95459effdff840ed86bbe70c7cd75e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.assertEqual(\u0027simple\u0027, headers[\u0027x-object-meta-test\u0027])"},{"line_number":43,"context_line":"        self.assertEqual(self.content, content)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def test_range_get(self):"},{"line_number":46,"context_line":"        resp \u003d dict()"},{"line_number":47,"context_line":"        req_headers \u003d {\u0027X-Run-Storlet\u0027: self.storlet_name,"},{"line_number":48,"context_line":"                       \u0027X-Storlet-Range\u0027: \u0027bytes\u003d1-4\u0027}"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a89bdaa_1b9d9765","line":45,"updated":"2016-09-05 06:09:50.000000000","message":"Might be good to add a range that exceeds the EOF, see that we get only up to EOF (I think that this is how Swift also behaves)","commit_id":"3f43fa96cdd13f45866816c28d81782a2c7ac967"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"90d2fce55c4b8cc833e647c211e4c1d567ffb19e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.assertEqual(\u0027simple\u0027, headers[\u0027x-object-meta-test\u0027])"},{"line_number":43,"context_line":"        self.assertEqual(self.content, content)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def test_range_get(self):"},{"line_number":46,"context_line":"        resp \u003d dict()"},{"line_number":47,"context_line":"        req_headers \u003d {\u0027X-Run-Storlet\u0027: self.storlet_name,"},{"line_number":48,"context_line":"                       \u0027X-Storlet-Range\u0027: \u0027bytes\u003d1-4\u0027}"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a89bdaa_af0e2532","line":45,"in_reply_to":"9a89bdaa_1b9d9765","updated":"2016-09-05 07:36:48.000000000","message":"I\u0027ll add that test case when working about func test refactoring. (maybe we need to create basic tests common for Java and Python)","commit_id":"3f43fa96cdd13f45866816c28d81782a2c7ac967"}]}
