)]}'
{"karbor/exception.py":[{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"ac9a9c8b29b04fb4f8fc93828f5ac81dc2f0cdb3","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"class AccessCheckpointNotAllowed(NotAuthorized):"},{"line_number":246,"context_line":"    message \u003d _(\"Access checkpoint %(checkpoint_id)s not allowed\")"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"class DeleteCheckpointNotAllowed(NotAuthorized):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_7319ea86","line":246,"range":{"start_line":246,"start_character":53,"end_line":246,"end_character":56},"updated":"2017-10-19 02:30:48.000000000","message":"S/not/is not/?","commit_id":"543f80ff559b71200ad5d3e113aee51095629856"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"5fcb1878cdda4f8632270ab670f4e1fa193c1f61","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"class AccessCheckpointNotAllowed(NotAuthorized):"},{"line_number":246,"context_line":"    message \u003d _(\"Access checkpoint %(checkpoint_id)s not allowed\")"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"class DeleteCheckpointNotAllowed(NotAuthorized):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_e2a72d4f","line":246,"range":{"start_line":246,"start_character":53,"end_line":246,"end_character":56},"in_reply_to":"3f4b6375_7319ea86","updated":"2017-10-19 05:56:38.000000000","message":"Done","commit_id":"543f80ff559b71200ad5d3e113aee51095629856"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"ac9a9c8b29b04fb4f8fc93828f5ac81dc2f0cdb3","unresolved":false,"context_lines":[{"line_number":247,"context_line":""},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"class DeleteCheckpointNotAllowed(NotAuthorized):"},{"line_number":250,"context_line":"    message \u003d _(\"Delete checkpoint %(checkpoint_id)s not allowed\")"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"class ClassNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_f30cba43","line":250,"range":{"start_line":250,"start_character":53,"end_line":250,"end_character":56},"updated":"2017-10-19 02:30:48.000000000","message":"S/not/is not/?","commit_id":"543f80ff559b71200ad5d3e113aee51095629856"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"5fcb1878cdda4f8632270ab670f4e1fa193c1f61","unresolved":false,"context_lines":[{"line_number":247,"context_line":""},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"class DeleteCheckpointNotAllowed(NotAuthorized):"},{"line_number":250,"context_line":"    message \u003d _(\"Delete checkpoint %(checkpoint_id)s not allowed\")"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"class ClassNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_c262f116","line":250,"range":{"start_line":250,"start_character":53,"end_line":250,"end_character":56},"in_reply_to":"3f4b6375_f30cba43","updated":"2017-10-19 05:56:38.000000000","message":"Done","commit_id":"543f80ff559b71200ad5d3e113aee51095629856"}],"karbor/services/protection/checkpoint.py":[{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"ac9a9c8b29b04fb4f8fc93828f5ac81dc2f0cdb3","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                                                          sort_dir\u003dsort_dir):"},{"line_number":333,"context_line":"                date \u003d datetime.strptime(key.split(\"/\")[-3], \"%Y-%m-%d\")"},{"line_number":334,"context_line":"                checkpoint_project_id \u003d key.split(\"/\")[-2]"},{"line_number":335,"context_line":"                if start_date \u003c\u003d date \u003c\u003d end_date \\"},{"line_number":336,"context_line":"                        and checkpoint_project_id \u003d\u003d project_id:"},{"line_number":337,"context_line":"                    ids.append(key[key.find(\"@\") + 1:])"},{"line_number":338,"context_line":"                if limit is not None and len(ids) \u003d\u003d limit:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_3e98d968","line":335,"range":{"start_line":335,"start_character":50,"end_line":335,"end_character":51},"updated":"2017-10-19 02:30:48.000000000","message":"Could you please delete this symbol \u0027\\\u0027?","commit_id":"543f80ff559b71200ad5d3e113aee51095629856"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"5fcb1878cdda4f8632270ab670f4e1fa193c1f61","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                                                          sort_dir\u003dsort_dir):"},{"line_number":333,"context_line":"                date \u003d datetime.strptime(key.split(\"/\")[-3], \"%Y-%m-%d\")"},{"line_number":334,"context_line":"                checkpoint_project_id \u003d key.split(\"/\")[-2]"},{"line_number":335,"context_line":"                if start_date \u003c\u003d date \u003c\u003d end_date \\"},{"line_number":336,"context_line":"                        and checkpoint_project_id \u003d\u003d project_id:"},{"line_number":337,"context_line":"                    ids.append(key[key.find(\"@\") + 1:])"},{"line_number":338,"context_line":"                if limit is not None and len(ids) \u003d\u003d limit:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_42b1618f","line":335,"range":{"start_line":335,"start_character":50,"end_line":335,"end_character":51},"in_reply_to":"3f4b6375_3e98d968","updated":"2017-10-19 05:56:38.000000000","message":"Done","commit_id":"543f80ff559b71200ad5d3e113aee51095629856"}],"karbor/services/protection/manager.py":[{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"80a364aa310c38fb920add0c009eddb5f3de389b","unresolved":false,"context_lines":[{"line_number":212,"context_line":"            raise exception.InvalidInput("},{"line_number":213,"context_line":"                reason\u003d_(\"Invalid checkpoint_id or provider_id\"))"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        checkpoint_dict \u003d checkpoint.to_dict()"},{"line_number":216,"context_line":"        if context.project_id !\u003d checkpoint_dict[\u0027project_id\u0027]:"},{"line_number":217,"context_line":"            LOG.warn(\"Delete checkpoint(%s) not allowed.\" % checkpoint_id)"},{"line_number":218,"context_line":"            raise exception.DeleteCheckpointNotAllowed("},{"line_number":219,"context_line":"                checkpoint_id\u003dcheckpoint_id)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        if checkpoint.status not in ["},{"line_number":222,"context_line":"            constants.CHECKPOINT_STATUS_AVAILABLE,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_225c254a","line":219,"range":{"start_line":215,"start_character":0,"end_line":219,"end_character":44},"updated":"2017-10-19 03:44:50.000000000","message":"If the user is a admin, even the project_id is not equal, he also can do the operation about the checkpoint. IMO, the check policy need be introduced here or add the condition about the admin.","commit_id":"543f80ff559b71200ad5d3e113aee51095629856"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"5fcb1878cdda4f8632270ab670f4e1fa193c1f61","unresolved":false,"context_lines":[{"line_number":212,"context_line":"            raise exception.InvalidInput("},{"line_number":213,"context_line":"                reason\u003d_(\"Invalid checkpoint_id or provider_id\"))"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        checkpoint_dict \u003d checkpoint.to_dict()"},{"line_number":216,"context_line":"        if context.project_id !\u003d checkpoint_dict[\u0027project_id\u0027]:"},{"line_number":217,"context_line":"            LOG.warn(\"Delete checkpoint(%s) not allowed.\" % checkpoint_id)"},{"line_number":218,"context_line":"            raise exception.DeleteCheckpointNotAllowed("},{"line_number":219,"context_line":"                checkpoint_id\u003dcheckpoint_id)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        if checkpoint.status not in ["},{"line_number":222,"context_line":"            constants.CHECKPOINT_STATUS_AVAILABLE,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_8ec54391","line":219,"range":{"start_line":215,"start_character":0,"end_line":219,"end_character":44},"in_reply_to":"3f4b6375_225c254a","updated":"2017-10-19 05:56:38.000000000","message":"I will add the condition about the admin.","commit_id":"543f80ff559b71200ad5d3e113aee51095629856"}]}
