)]}'
{"Engine/SBus/SBusPythonFacade/SBusDatagram.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0fd4ae331d45b32ee37c0e31927019e56febc2a7","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        return str_result"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def get_files_metadata_as_json(self):"},{"line_number":118,"context_line":"        all_metadata \u003d {}"},{"line_number":119,"context_line":"        all_metadata[\u0027user\u0027] \u003d {}"},{"line_number":120,"context_line":"        all_metadata[\u0027system\u0027] \u003d {}"},{"line_number":121,"context_line":"        str_result \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_54125163","line":118,"range":{"start_line":118,"start_character":7,"end_line":118,"end_character":25},"updated":"2016-05-25 04:24:24.000000000","message":"Does it make sense to introduce a new class to manage metadata easily?","commit_id":"9f1dd6c39e2728e6e08be022559dd643e19de800"}],"Engine/swift/storlet_middleware/storlet_handler.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"5d1eff6ed82c11f8c424c0452b82ab9a4153e0f8","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            new_headers.pop(\u0027Transfer-Encoding\u0027)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        # multipart/byteranges should be replaced by 200"},{"line_number":231,"context_line":"        # TODO: support content type setting by storlet"},{"line_number":232,"context_line":"        # and change the default below accordingly"},{"line_number":233,"context_line":"        content_type \u003d resp.headers[\u0027Content-Type\u0027]"},{"line_number":234,"context_line":"        if content_type and content_type.startswith(\u0027multipart/byteranges\u0027):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_8ebcfbdc","line":231,"range":{"start_line":231,"start_character":10,"end_line":231,"end_character":14},"updated":"2016-06-15 07:16:16.000000000","message":"nits) TODO needs the syntax like \"TODO(name):\" for pep8 check.","commit_id":"85f5f6247b5c3e871e12533ff36613fee838a4e4"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"5d1eff6ed82c11f8c424c0452b82ab9a4153e0f8","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        content_type \u003d resp.headers[\u0027Content-Type\u0027]"},{"line_number":234,"context_line":"        if content_type and content_type.startswith(\u0027multipart/byteranges\u0027):"},{"line_number":235,"context_line":"            new_headers[\u0027Storlet-Input-Range\u0027] \u003d\\"},{"line_number":236,"context_line":"                self.request.headers[\u0027X-Storlet-Range\u0027]"},{"line_number":237,"context_line":"            new_headers[\u0027Content-Type\u0027] \u003d \u0027application/binary\u0027"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        return Response(headers\u003dnew_headers, app_iter\u003dapp_iter,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_ae8c572f","line":236,"updated":"2016-06-15 07:16:16.000000000","message":"This looks odd because *response* \"Content-Range\" and *request* \"Range\" should be different syntax. Looking at the older code, Storlet-Input-Range should be like *response* Content-Range but the new code sets *request* range to the variable. Looking at L163 above, the X-Storlet-Range seems something compatible with *request* range. Am i missing something?","commit_id":"85f5f6247b5c3e871e12533ff36613fee838a4e4"}],"install/storlets/roles/deploy_default_tenant/tasks/main.yml":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0fd4ae331d45b32ee37c0e31927019e56febc2a7","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# Limitations under the License."},{"line_number":14,"context_line":"#---------------------------------------------------------------------------"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"#openstack --os-token ADMIN --os-url http://127.0.0.1:35357/v2.0/ --os-identity-api-version\u003d2"},{"line_number":17,"context_line":"- name: Get the defaut tenant id from Keystone"},{"line_number":18,"context_line":"  shell: openstack --os-url\u003d{{ keystone_admin_url }} --os-token\u003d{{ keystone_admin_token }} project list | grep {{ storlets_default_tenant_name }} | awk \u0027{print $2}\u0027"},{"line_number":19,"context_line":"  register: tenant_id"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bab6814e_f4f0a568","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":93},"updated":"2016-05-25 04:24:24.000000000","message":"please remove this line at last","commit_id":"9f1dd6c39e2728e6e08be022559dd643e19de800"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0fd4ae331d45b32ee37c0e31927019e56febc2a7","unresolved":false,"context_lines":[{"line_number":51,"context_line":"  shell: docker ps | grep \"tenant_{{ tenant_id.stdout_lines[0] }}\" | wc -l"},{"line_number":52,"context_line":"  register: tenant_container_running"},{"line_number":53,"context_line":"  "},{"line_number":54,"context_line":"- name: Test if the default tenant container exusts"},{"line_number":55,"context_line":"  shell: docker ps -a | grep \"tenant_{{ tenant_id.stdout_lines[0] }}\" | wc -l"},{"line_number":56,"context_line":"  register: tenant_container_exists"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bab6814e_54e8917c","line":54,"range":{"start_line":54,"start_character":45,"end_line":54,"end_character":51},"updated":"2016-05-25 04:24:24.000000000","message":"exists","commit_id":"9f1dd6c39e2728e6e08be022559dd643e19de800"}],"tests/functional/test_identity_storlet.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0fd4ae331d45b32ee37c0e31927019e56febc2a7","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                             random_md)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def put_large_file(self, size_in_mb):"},{"line_number":116,"context_line":"        GBFile \u003d open(\u0027/tmp/largeFile\u0027, \u0027w\u0027)"},{"line_number":117,"context_line":"        for _ in range(size_in_mb):"},{"line_number":118,"context_line":"            uploaded_content \u003d \u0027\u0027.join(\u00271\u0027 for _ in range(1024 * 1024))"},{"line_number":119,"context_line":"            GBFile.write(uploaded_content)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_d4aac118","line":116,"range":{"start_line":116,"start_character":7,"end_line":116,"end_character":44},"updated":"2016-05-25 04:24:24.000000000","message":"I think we had better use contextmanager (with), to make sure that this file get deleted at the last.","commit_id":"9f1dd6c39e2728e6e08be022559dd643e19de800"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0fd4ae331d45b32ee37c0e31927019e56febc2a7","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        self.assertTrue(status in [200, 201])"},{"line_number":132,"context_line":"        os.remove(\u0027/tmp/largeFile\u0027)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def _test_put_512MB(self):"},{"line_number":135,"context_line":"        self.put_large_file(512)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_put(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_34b98d7a","line":134,"range":{"start_line":134,"start_character":7,"end_line":134,"end_character":23},"updated":"2016-05-25 04:24:24.000000000","message":"Why don\u0027t we execute this test?","commit_id":"9f1dd6c39e2728e6e08be022559dd643e19de800"}]}
