)]}'
{"etc/policy.json":[{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"997c361a3d1acfafd429ca01f77cc0136a481f27","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    \"provider:get\": \"rule:admin_api\","},{"line_number":23,"context_line":"    \"provider:get_all\": \"rule:admin_api\","},{"line_number":24,"context_line":"    \"provider:checkpoint_get\": \"rule:admin_api\","},{"line_number":25,"context_line":"    \"provider:checkpoint_get_all\": \"rule:admin_api\","},{"line_number":26,"context_line":"    \"provider:checkpoint_create\": \"rule:admin_api\","},{"line_number":27,"context_line":"    \"provider:checkpoint_delete\": \"rule:admin_api\""}],"source_content_type":"application/json","patch_set":1,"id":"7af24918_5164f447","line":24,"range":{"start_line":24,"start_character":31,"end_line":24,"end_character":46},"updated":"2016-03-02 18:01:49.000000000","message":"I think this should rule:admin_or_owner","commit_id":"2fe7c475e9ecab44563daec464bda407fde75744"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"997c361a3d1acfafd429ca01f77cc0136a481f27","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    \"provider:get\": \"rule:admin_api\","},{"line_number":23,"context_line":"    \"provider:get_all\": \"rule:admin_api\","},{"line_number":24,"context_line":"    \"provider:checkpoint_get\": \"rule:admin_api\","},{"line_number":25,"context_line":"    \"provider:checkpoint_get_all\": \"rule:admin_api\","},{"line_number":26,"context_line":"    \"provider:checkpoint_create\": \"rule:admin_api\","},{"line_number":27,"context_line":"    \"provider:checkpoint_delete\": \"rule:admin_api\""},{"line_number":28,"context_line":"}"}],"source_content_type":"application/json","patch_set":1,"id":"7af24918_71c81023","line":25,"range":{"start_line":25,"start_character":41,"end_line":25,"end_character":50},"updated":"2016-03-02 18:01:49.000000000","message":"ditto","commit_id":"2fe7c475e9ecab44563daec464bda407fde75744"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"997c361a3d1acfafd429ca01f77cc0136a481f27","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \"provider:get_all\": \"rule:admin_api\","},{"line_number":24,"context_line":"    \"provider:checkpoint_get\": \"rule:admin_api\","},{"line_number":25,"context_line":"    \"provider:checkpoint_get_all\": \"rule:admin_api\","},{"line_number":26,"context_line":"    \"provider:checkpoint_create\": \"rule:admin_api\","},{"line_number":27,"context_line":"    \"provider:checkpoint_delete\": \"rule:admin_api\""},{"line_number":28,"context_line":"}"}],"source_content_type":"application/json","patch_set":1,"id":"7af24918_f1dc20e6","line":26,"range":{"start_line":26,"start_character":35,"end_line":26,"end_character":39},"updated":"2016-03-02 18:01:49.000000000","message":"ditto","commit_id":"2fe7c475e9ecab44563daec464bda407fde75744"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"997c361a3d1acfafd429ca01f77cc0136a481f27","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"provider:checkpoint_get\": \"rule:admin_api\","},{"line_number":25,"context_line":"    \"provider:checkpoint_get_all\": \"rule:admin_api\","},{"line_number":26,"context_line":"    \"provider:checkpoint_create\": \"rule:admin_api\","},{"line_number":27,"context_line":"    \"provider:checkpoint_delete\": \"rule:admin_api\""},{"line_number":28,"context_line":"}"}],"source_content_type":"application/json","patch_set":1,"id":"7af24918_b1e9f882","line":27,"range":{"start_line":27,"start_character":35,"end_line":27,"end_character":39},"updated":"2016-03-02 18:01:49.000000000","message":"ditto","commit_id":"2fe7c475e9ecab44563daec464bda407fde75744"}],"smaug/api/v1/providers.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"e9417cc9c0e7f4d51cabe40ec574791c58894058","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                \"resources\": plan.get(\"resources\"),"},{"line_number":391,"context_line":"            }"},{"line_number":392,"context_line":"        }"},{"line_number":393,"context_line":"        self.protection_api.protect(context, plan)"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        returnval \u003d self._checkpoint_view_builder.detail("},{"line_number":396,"context_line":"            req, checkpoint_properties)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_d1d1bd24","line":393,"updated":"2016-03-04 03:33:16.000000000","message":"Why don\u0027t check the result of this protect operation?","commit_id":"34fce6ccc204d1cef62bec1dcc7fee3c204c767b"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"fad25b9a857bc4d88ebcb0985eb08f09f7cb5cbf","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                \"resources\": plan.get(\"resources\"),"},{"line_number":391,"context_line":"            }"},{"line_number":392,"context_line":"        }"},{"line_number":393,"context_line":"        self.protection_api.protect(context, plan)"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        returnval \u003d self._checkpoint_view_builder.detail("},{"line_number":396,"context_line":"            req, checkpoint_properties)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_25a1b7f8","line":393,"in_reply_to":"7af24918_d1d1bd24","updated":"2016-03-04 06:34:51.000000000","message":"I will add result check after protect operation RPC implementment being merged. I am not sure the return value of their implementment.","commit_id":"34fce6ccc204d1cef62bec1dcc7fee3c204c767b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"e9417cc9c0e7f4d51cabe40ec574791c58894058","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        \"\"\"Return data about the given checkpoint id.\"\"\""},{"line_number":401,"context_line":"        context \u003d req.environ[\u0027smaug.context\u0027]"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        LOG.info(_LI(\"Show checkpoint with id: %s.\"),"},{"line_number":404,"context_line":"                 checkpoint_id)"},{"line_number":405,"context_line":"        LOG.info(_LI(\"provider_id: %s.\"), provider_id)"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        try:"},{"line_number":408,"context_line":"            checkpoint \u003d self._checkpoint_get(context, provider_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_51a48db8","line":405,"range":{"start_line":403,"start_character":0,"end_line":405,"end_character":54},"updated":"2016-03-04 03:33:16.000000000","message":"Suggest merging these two logs to one.","commit_id":"34fce6ccc204d1cef62bec1dcc7fee3c204c767b"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"fad25b9a857bc4d88ebcb0985eb08f09f7cb5cbf","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        \"\"\"Return data about the given checkpoint id.\"\"\""},{"line_number":401,"context_line":"        context \u003d req.environ[\u0027smaug.context\u0027]"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        LOG.info(_LI(\"Show checkpoint with id: %s.\"),"},{"line_number":404,"context_line":"                 checkpoint_id)"},{"line_number":405,"context_line":"        LOG.info(_LI(\"provider_id: %s.\"), provider_id)"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        try:"},{"line_number":408,"context_line":"            checkpoint \u003d self._checkpoint_get(context, provider_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_a5e5c709","line":405,"range":{"start_line":403,"start_character":0,"end_line":405,"end_character":54},"in_reply_to":"7af24918_51a48db8","updated":"2016-03-04 06:34:51.000000000","message":"I am considering using LOG.debug.","commit_id":"34fce6ccc204d1cef62bec1dcc7fee3c204c767b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"e9417cc9c0e7f4d51cabe40ec574791c58894058","unresolved":false,"context_lines":[{"line_number":410,"context_line":"        except exception.CheckpointNotFound as error:"},{"line_number":411,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        LOG.info(_LI(\"Show checkpoint request issued successfully.\"))"},{"line_number":414,"context_line":"        LOG.info(_LI(\"checkpoint: %s\"), checkpoint)"},{"line_number":415,"context_line":"        retval \u003d self._checkpoint_view_builder.detail(req, checkpoint)"},{"line_number":416,"context_line":"        LOG.info(_LI(\"retval: %s\"), retval)"},{"line_number":417,"context_line":"        return retval"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_9181f5fd","line":414,"range":{"start_line":413,"start_character":0,"end_line":414,"end_character":51},"updated":"2016-03-04 03:33:16.000000000","message":"Ditto","commit_id":"34fce6ccc204d1cef62bec1dcc7fee3c204c767b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"e9417cc9c0e7f4d51cabe40ec574791c58894058","unresolved":false,"context_lines":[{"line_number":463,"context_line":"                                   checkpoint_id)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        LOG.info(_LI(\"Delete checkpoint request issued successfully.\"))"},{"line_number":466,"context_line":"        return {}"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"def create_resource():"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_f1a799a4","line":466,"range":{"start_line":466,"start_character":15,"end_line":466,"end_character":17},"updated":"2016-03-04 03:33:16.000000000","message":"Why return an empty dict?","commit_id":"34fce6ccc204d1cef62bec1dcc7fee3c204c767b"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"fad25b9a857bc4d88ebcb0985eb08f09f7cb5cbf","unresolved":false,"context_lines":[{"line_number":463,"context_line":"                                   checkpoint_id)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        LOG.info(_LI(\"Delete checkpoint request issued successfully.\"))"},{"line_number":466,"context_line":"        return {}"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"def create_resource():"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_a5494733","line":466,"range":{"start_line":466,"start_character":15,"end_line":466,"end_character":17},"in_reply_to":"7af24918_f1a799a4","updated":"2016-03-04 06:34:51.000000000","message":"This action was mapped using mapper.connect(), not the defaut method mapping . If this method return None, the controller will raise a exception.","commit_id":"34fce6ccc204d1cef62bec1dcc7fee3c204c767b"}],"smaug/services/protection/api.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"0269fe56cee444f3c14317b2d957ef3070a6da5c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        return self.protection_rpcapi.\\"},{"line_number":47,"context_line":"            show_checkpoint(context, provider_id, checkpoint_id)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def list_checkpoints(self, context, provider_id, marker, limit,"},{"line_number":50,"context_line":"                         sort_keys, sort_dirs, filters, offset):"},{"line_number":51,"context_line":"        return self.protection_rpcapi.\\"},{"line_number":52,"context_line":"            list_checkpoints(context, provider_id, marker, limit,"},{"line_number":53,"context_line":"                             sort_keys, sort_dirs, filters)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_a608952e","line":50,"range":{"start_line":49,"start_character":0,"end_line":50,"end_character":64},"updated":"2016-03-09 07:47:35.000000000","message":"Why not use kwargs in pagination?","commit_id":"61026e3d0718a8e7e47f31a86f2107b72e2cb78d"}],"smaug/services/protection/manager.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"0269fe56cee444f3c14317b2d957ef3070a6da5c","unresolved":false,"context_lines":[{"line_number":111,"context_line":"            {"},{"line_number":112,"context_line":"                \"id\": \"2220f8b1-975d-4621-a872-fa9afb43cb6c\","},{"line_number":113,"context_line":"                \"project_id\": \"446a04d8-6ff5-4e0e-99a4-827a6389e9ff\","},{"line_number":114,"context_line":"                \"status\": \"comitted\","},{"line_number":115,"context_line":"                \"provider_id\": \"efc6a88b-9096-4bb6-8634-cda182a6e12a\","},{"line_number":116,"context_line":"                \"protection_plan\": {"},{"line_number":117,"context_line":"                    \"id\": \"2a9ce1f3-cc1a-4516-9435-0ebb13caa398\","}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_2951f60e","line":114,"range":{"start_line":114,"start_character":0,"end_line":114,"end_character":37},"updated":"2016-03-09 07:47:35.000000000","message":"-\u003e committed","commit_id":"61026e3d0718a8e7e47f31a86f2107b72e2cb78d"}]}
