)]}'
{"nova/api/openstack/compute/plugins/v3/servers.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"11a1dac35403a0cd1bb3d9a43c4525a33581a911","unresolved":false,"context_lines":[{"line_number":555,"context_line":"                del search_opts[\u0027all_tenants\u0027]"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        if \u0027all_tenants\u0027 in search_opts:"},{"line_number":558,"context_line":"            policy.enforce(context, \u0027compute:get_all_tenants\u0027,"},{"line_number":559,"context_line":"                           {\u0027project_id\u0027: context.project_id,"},{"line_number":560,"context_line":"                            \u0027user_id\u0027: context.user_id})"},{"line_number":561,"context_line":"            del search_opts[\u0027all_tenants\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FNNg%3D","line":558,"updated":"2013-10-21 13:24:56.000000000","message":"we\u0027d better to catch PolicyNotAuthorized exception and raise the approriate HTTP exception like 403, thoughts?","commit_id":"627be11eba599e0e547b23d078bc035c885a86fe"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"e59c378d004a14f132f70fabb29959028abd2dc9","unresolved":false,"context_lines":[{"line_number":555,"context_line":"                del search_opts[\u0027all_tenants\u0027]"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        if \u0027all_tenants\u0027 in search_opts:"},{"line_number":558,"context_line":"            policy.enforce(context, \u0027compute:get_all_tenants\u0027,"},{"line_number":559,"context_line":"                           {\u0027project_id\u0027: context.project_id,"},{"line_number":560,"context_line":"                            \u0027user_id\u0027: context.user_id})"},{"line_number":561,"context_line":"            del search_opts[\u0027all_tenants\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FK38%3D","line":558,"in_reply_to":"AAAATH%2F%2FLHk%3D","updated":"2013-10-22 03:28:13.000000000","message":"you are right, I saw your comments in extensions, sorry for missing it before, thanks for pointed out.","commit_id":"627be11eba599e0e547b23d078bc035c885a86fe"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"26de9d2890453df70e115247cc47062b9f25b4ab","unresolved":false,"context_lines":[{"line_number":555,"context_line":"                del search_opts[\u0027all_tenants\u0027]"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        if \u0027all_tenants\u0027 in search_opts:"},{"line_number":558,"context_line":"            policy.enforce(context, \u0027compute:get_all_tenants\u0027,"},{"line_number":559,"context_line":"                           {\u0027project_id\u0027: context.project_id,"},{"line_number":560,"context_line":"                            \u0027user_id\u0027: context.user_id})"},{"line_number":561,"context_line":"            del search_opts[\u0027all_tenants\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FLHk%3D","line":558,"in_reply_to":"AAAATH%2F%2FNNg%3D","updated":"2013-10-21 23:58:53.000000000","message":"No we don\u0027t need to. PolicyNotAuthorized is handled specially both at the expected_errors and wsgi level because nearly all the methods have an authorize call which could raise a PolicyNotAuthorized.","commit_id":"627be11eba599e0e547b23d078bc035c885a86fe"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"11a1dac35403a0cd1bb3d9a43c4525a33581a911","unresolved":false,"context_lines":[{"line_number":565,"context_line":"                del search_opts[\u0027all_tenants\u0027]"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"        if \u0027all_tenants\u0027 in search_opts:"},{"line_number":568,"context_line":"            policy.enforce(context, \u0027compute:get_all_tenants\u0027,"},{"line_number":569,"context_line":"                           {\u0027project_id\u0027: context.project_id,"},{"line_number":570,"context_line":"                            \u0027user_id\u0027: context.user_id})"},{"line_number":571,"context_line":"            del search_opts[\u0027all_tenants\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FNNc%3D","line":568,"updated":"2013-10-21 13:24:56.000000000","message":"ditto","commit_id":"627be11eba599e0e547b23d078bc035c885a86fe"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"26de9d2890453df70e115247cc47062b9f25b4ab","unresolved":false,"context_lines":[{"line_number":565,"context_line":"                del search_opts[\u0027all_tenants\u0027]"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"        if \u0027all_tenants\u0027 in search_opts:"},{"line_number":568,"context_line":"            policy.enforce(context, \u0027compute:get_all_tenants\u0027,"},{"line_number":569,"context_line":"                           {\u0027project_id\u0027: context.project_id,"},{"line_number":570,"context_line":"                            \u0027user_id\u0027: context.user_id})"},{"line_number":571,"context_line":"            del search_opts[\u0027all_tenants\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FLHg%3D","line":568,"in_reply_to":"AAAATH%2F%2FNNc%3D","updated":"2013-10-21 23:58:53.000000000","message":"same reason we don\u0027t need to as before","commit_id":"627be11eba599e0e547b23d078bc035c885a86fe"}]}
