)]}'
{"cinder/tests/policy.json":[{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"6b16d852f1d13433ff27a8a82eb96d4892238a59","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"volume_extension:volume_tenant_attribute\": [[\"rule:admin_api\"]],"},{"line_number":41,"context_line":"    \"volume_extension:hosts\": [[\"rule:admin_api\"]],"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"\t\"volume:create_transfer\": [],"},{"line_number":44,"context_line":"\t\"volume:accept_transfer\": []"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"}"}],"source_content_type":"application/json","patch_set":1,"id":"AAAAPX%2F%2F6bQ%3D","line":43,"updated":"2013-06-06 05:15:20.000000000","message":"Are the red arrows for tabs?","commit_id":"5b42dda5457000fa30ae65e1019144ad4a9a0de9"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"291dd0b38aca831f58aba60d5a92d37e991c1d6b","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"volume_extension:volume_tenant_attribute\": [[\"rule:admin_api\"]],"},{"line_number":41,"context_line":"    \"volume_extension:hosts\": [[\"rule:admin_api\"]],"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"\t\"volume:create_transfer\": [],"},{"line_number":44,"context_line":"\t\"volume:accept_transfer\": []"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"}"}],"source_content_type":"application/json","patch_set":1,"id":"AAAAPX%2F%2F41s%3D","line":43,"in_reply_to":"AAAAPX%2F%2F6UE%3D","updated":"2013-06-06 21:44:44.000000000","message":"Hmm... turns out they don\u0027t seem to be tabs after all... something about the diff tool and .json files","commit_id":"5b42dda5457000fa30ae65e1019144ad4a9a0de9"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"07683b9e661979f6a65249ba2645791cd774fa8a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"volume_extension:volume_tenant_attribute\": [[\"rule:admin_api\"]],"},{"line_number":41,"context_line":"    \"volume_extension:hosts\": [[\"rule:admin_api\"]],"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"\t\"volume:create_transfer\": [],"},{"line_number":44,"context_line":"\t\"volume:accept_transfer\": []"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"}"}],"source_content_type":"application/json","patch_set":1,"id":"AAAAPX%2F%2F6UE%3D","line":43,"in_reply_to":"AAAAPX%2F%2F6bQ%3D","updated":"2013-06-06 07:11:48.000000000","message":"DOH!!! Yes they are, thanks, I\u0027ll fix right now :)","commit_id":"5b42dda5457000fa30ae65e1019144ad4a9a0de9"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"23ebbbe01ef1d1b58af3027728f96b644c23b225","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"volume_extension:volume_tenant_attribute\": [[\"rule:admin_api\"]],"},{"line_number":41,"context_line":"    \"volume_extension:hosts\": [[\"rule:admin_api\"]],"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"\t\"volume:create_transfer\": [],"},{"line_number":44,"context_line":"\t\"volume:accept_transfer\": [],"},{"line_number":45,"context_line":"\t\"volume:delete_transfer\": [],"},{"line_number":46,"context_line":"\t\"volume:get_all_transfers\": []"}],"source_content_type":"application/json","patch_set":2,"id":"AAAAPX%2F%2FzwU%3D","line":43,"updated":"2013-06-10 04:11:16.000000000","message":"tabs","commit_id":"0422acbbecf948969e2c7f39da6eff9f1000a7a6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"3fea78f6610bd54ed4f47eb405329e9f6ddd4619","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"volume_extension:volume_tenant_attribute\": [[\"rule:admin_api\"]],"},{"line_number":41,"context_line":"    \"volume_extension:hosts\": [[\"rule:admin_api\"]],"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"\t\"volume:create_transfer\": [],"},{"line_number":44,"context_line":"\t\"volume:accept_transfer\": [],"},{"line_number":45,"context_line":"\t\"volume:delete_transfer\": [],"},{"line_number":46,"context_line":"\t\"volume:get_all_transfers\": []"}],"source_content_type":"application/json","patch_set":2,"id":"AAAAPX%2F%2Fyzk%3D","line":43,"in_reply_to":"AAAAPX%2F%2Fy2I%3D","updated":"2013-06-10 15:00:45.000000000","message":"Done\n\nDurrrrr.... helps if I look at the right file!!  Sorry :)","commit_id":"0422acbbecf948969e2c7f39da6eff9f1000a7a6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4ac0c9cb6b5d13a1e272450740bee2a4196c87ff","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"volume_extension:volume_tenant_attribute\": [[\"rule:admin_api\"]],"},{"line_number":41,"context_line":"    \"volume_extension:hosts\": [[\"rule:admin_api\"]],"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"\t\"volume:create_transfer\": [],"},{"line_number":44,"context_line":"\t\"volume:accept_transfer\": [],"},{"line_number":45,"context_line":"\t\"volume:delete_transfer\": [],"},{"line_number":46,"context_line":"\t\"volume:get_all_transfers\": []"}],"source_content_type":"application/json","patch_set":2,"id":"AAAAPX%2F%2Fy2I%3D","line":43,"in_reply_to":"AAAAPX%2F%2FzwU%3D","updated":"2013-06-10 14:47:08.000000000","message":"these aren\u0027t showing as tabs in vim.. can somebody verify this isn\u0027t just an artifact of github diff against json files or something?","commit_id":"0422acbbecf948969e2c7f39da6eff9f1000a7a6"}],"cinder/transfer/api.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"23ebbbe01ef1d1b58af3027728f96b644c23b225","unresolved":false,"context_lines":[{"line_number":46,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def check_policy(context, action, target_obj\u003dNone):"},{"line_number":50,"context_line":"    target \u003d {"},{"line_number":51,"context_line":"        \u0027project_id\u0027: context.project_id,"},{"line_number":52,"context_line":"        \u0027user_id\u0027: context.user_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2FzwM%3D","line":49,"updated":"2013-06-10 04:11:16.000000000","message":"This is also in volume.api. We should just have this and the wrap_policy_check in cinder.policy and import it in for both apis to use.","commit_id":"0422acbbecf948969e2c7f39da6eff9f1000a7a6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4ac0c9cb6b5d13a1e272450740bee2a4196c87ff","unresolved":false,"context_lines":[{"line_number":46,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def check_policy(context, action, target_obj\u003dNone):"},{"line_number":50,"context_line":"    target \u003d {"},{"line_number":51,"context_line":"        \u0027project_id\u0027: context.project_id,"},{"line_number":52,"context_line":"        \u0027user_id\u0027: context.user_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2Fy2A%3D","line":49,"in_reply_to":"AAAAPX%2F%2FzwM%3D","updated":"2013-06-10 14:47:08.000000000","message":"Done","commit_id":"0422acbbecf948969e2c7f39da6eff9f1000a7a6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"9c8ecdf23a8173ac05104e53381e58374c41d01b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def check_policy(context, action, target_obj\u003dNone):"},{"line_number":50,"context_line":"    target \u003d {"},{"line_number":51,"context_line":"        \u0027project_id\u0027: context.project_id,"},{"line_number":52,"context_line":"        \u0027user_id\u0027: context.user_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2Fy5E%3D","line":49,"in_reply_to":"AAAAPX%2F%2FzwM%3D","updated":"2013-06-10 14:36:52.000000000","message":"I would agree, having a common check would be useful, and since we\u0027re importing volume_api, I should have done that in the first place.\n\nThe wrap part I could be convinced but I don\u0027t have a strong preference there and wrap methods rely on ordered arguments which may or may not help with the duplication issue you raise here.","commit_id":"0422acbbecf948969e2c7f39da6eff9f1000a7a6"}]}
