)]}'
{"nova/api/openstack/extensions.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"f3d4ec541bb73ad227930d41e86863e675258a7b","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"def extension_authorizer(api_name, extension_name):"},{"line_number":382,"context_line":"    def authorize(context, target\u003d{}):"},{"line_number":383,"context_line":"        action \u003d \u0027%s_extension:%s\u0027 % (api_name, extension_name)"},{"line_number":384,"context_line":"        nova.policy.enforce(context, action, target)"},{"line_number":385,"context_line":"    return authorize"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEH%2F%2F%2BeE%3D","line":382,"updated":"2012-01-25 01:20:32.000000000","message":"You actually want to set this to None, then initialize target within the function itself to {}. If you provide a default in the args list, any calls to this function will have the same reference to that dict.","commit_id":"8956eb4e1c587bd84781c06cca9f4598b9782a9a"}],"nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"d60572e6b052db475978af51b347368275c925ea","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        req.headers[\"content-type\"] \u003d \"application/json\""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        rules \u003d {"},{"line_number":168,"context_line":"            \"compute_extension:simple_tenant_usage:show\":\\"},{"line_number":169,"context_line":"                [[\"role:admin\"], [\"project_id:%(project_id)s\"]]"},{"line_number":170,"context_line":"        }"},{"line_number":171,"context_line":"        common_policy.set_brain(common_policy.HttpBrain(rules))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAEH%2F%2F92Y%3D","line":168,"updated":"2012-01-26 00:16:43.000000000","message":"slash is unnecessary inside {} but not a blocker","commit_id":"5acfdb37ac8c2f7284cd0a0269ca23b643659d19"}],"nova/tests/policy.json":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"d6a18beb0415024ac9c33960d4080df9d416cfb0","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    \"compute_extension:server_action_list\": [],"},{"line_number":94,"context_line":"    \"compute_extension:server_diagnostics\": [],"},{"line_number":95,"context_line":"    \"compute_extension:simple_tenant_usage:show\": [[\"project_id:%(project_id)s\"], [\"role:admin\"]],"},{"line_number":96,"context_line":"    \"compute_extension:simple_tenant_usage:list\": [\"role:admin\"],"},{"line_number":97,"context_line":"    \"compute_extension:users\": [],"},{"line_number":98,"context_line":"    \"compute_extension:virtual_interfaces\": [],"},{"line_number":99,"context_line":"    \"compute_extension:virtual_storage_arrays\": [],"}],"source_content_type":"application/json","patch_set":3,"id":"AAAAEH%2F%2F95w%3D","line":96,"updated":"2012-01-25 23:22:08.000000000","message":"I think these should be []","commit_id":"b55894802d1d208a48578787260f9340058a9331"}]}
