)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"26173f75bab2961ec244f9de2636814ef11436ba","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Modified the used limits API for Admin to retrieve"},{"line_number":10,"context_line":"the used limits for a customer."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I89b8b5083e46b899458407426c89a3865e960faa"},{"line_number":13,"context_line":"Implements: blueprint customer-quota-through-admin-api"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAO3%2F%2F7%2FU%3D","line":11,"updated":"2013-05-16 17:43:04.000000000","message":"Please add \"DocImpact\" to the commit message.","commit_id":"f92734676f38ec1169c0ff814244cc7e31b75341"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Modified the used limits API for Admin to retrieve"},{"line_number":10,"context_line":"the used limits for a customer."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I89b8b5083e46b899458407426c89a3865e960faa"},{"line_number":13,"context_line":"Implements: blueprint customer-quota-through-admin-api"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAPH%2F%2F%2F0Q%3D","line":11,"in_reply_to":"AAAAO3%2F%2F7%2FU%3D","updated":"2013-05-16 20:46:09.000000000","message":"In fact, please add a paragraph which starts with \"DocImpact:\" and then has a brief description of what has changed. This will help our documentation team. Thanks.","commit_id":"f92734676f38ec1169c0ff814244cc7e31b75341"}],"etc/nova/policy.json":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"dd01bbc65d337f9dea83578d5a82a0fcab796091","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    \"compute_extension:volumetypes\": \"\","},{"line_number":101,"context_line":"    \"compute_extension:availability_zone:list\": \"\","},{"line_number":102,"context_line":"    \"compute_extension:availability_zone:detail\": \"rule:admin_api\","},{"line_number":103,"context_line":"    \"compute_extension:used_limits\":\"rule:admin_api\","},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    \"volume:create\": \"\","}],"source_content_type":"application/json","patch_set":1,"id":"AAAAOn%2F%2FvLA%3D","line":103,"updated":"2013-04-25 16:01:49.000000000","message":"nit: Please put a space after the colon, for consistency with all the other policy rules…","commit_id":"4e2815e98db273451d87e9e1002dc8b57ec49bde"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"eaac88e6266cdb17d32aab92431724363c1be62d","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    \"compute_extension:volumetypes\": \"\","},{"line_number":101,"context_line":"    \"compute_extension:availability_zone:list\": \"\","},{"line_number":102,"context_line":"    \"compute_extension:availability_zone:detail\": \"rule:admin_api\","},{"line_number":103,"context_line":"    \"compute_extension:used_limits\": \"rule:admin_api\","},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    \"volume:create\": \"\","}],"source_content_type":"application/json","patch_set":5,"id":"AAAAOn%2F%2FeLQ%3D","line":103,"updated":"2013-05-08 17:58:09.000000000","message":"shouldn\u0027t be used_limits_for_admin?","commit_id":"31644ea4b684292b761a269527a4aa50ace89b2a"},{"author":{"_account_id":7393,"name":"Mahesh Panchaksharaiah","email":"maheshp@thoughtworks.com","username":"panchaks"},"change_message_id":"37cd0572647f9f2af58157957f299c9db3e7f617","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    \"compute_extension:volumetypes\": \"\","},{"line_number":101,"context_line":"    \"compute_extension:availability_zone:list\": \"\","},{"line_number":102,"context_line":"    \"compute_extension:availability_zone:detail\": \"rule:admin_api\","},{"line_number":103,"context_line":"    \"compute_extension:used_limits\": \"rule:admin_api\","},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    \"volume:create\": \"\","}],"source_content_type":"application/json","patch_set":5,"id":"AAAAOn%2F%2FeBw%3D","line":103,"in_reply_to":"AAAAOn%2F%2FeLQ%3D","updated":"2013-05-08 18:41:21.000000000","message":"Agreed, will change it.","commit_id":"31644ea4b684292b761a269527a4aa50ace89b2a"}],"nova/api/openstack/compute/contrib/used_limits.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"dd01bbc65d337f9dea83578d5a82a0fcab796091","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def _project_id(self, context, req):"},{"line_number":71,"context_line":"        search_opts \u003d {}"},{"line_number":72,"context_line":"        search_opts.update(req.GET)"},{"line_number":73,"context_line":"        target \u003d {"},{"line_number":74,"context_line":"            \u0027project_id\u0027: context.project_id,"},{"line_number":75,"context_line":"            \u0027user_id\u0027: context.user_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FvKw%3D","line":72,"updated":"2013-04-25 16:01:49.000000000","message":"I don\u0027t understand what you\u0027re trying to accomplish here; search_opts is only used in this function to access the \u0027tenant_id\u0027, or to confirm it\u0027s part of the request.  Why not just refer to req.GET directly?","commit_id":"4e2815e98db273451d87e9e1002dc8b57ec49bde"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"9031f7c1cb417cc8e2cbfae248fe089105b5ff8e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        target \u003d {"},{"line_number":72,"context_line":"            \u0027project_id\u0027: context.project_id,"},{"line_number":73,"context_line":"            \u0027user_id\u0027: context.user_id,"},{"line_number":74,"context_line":"        }"},{"line_number":75,"context_line":"        if \u0027tenant_id\u0027 in req.GET:"},{"line_number":76,"context_line":"            nova.policy.enforce(context, \"compute_extension:used_limits\","},{"line_number":77,"context_line":"                                target)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fu%2F8%3D","line":74,"updated":"2013-04-25 17:13:52.000000000","message":"Let me suggest one more refinement: you only use target if \u0027tenant_id\u0027 is present in req.GET, so try rearranging the code like so:\n\n    def _project_id(self, context, req):\n        if \u0027tenant_id\u0027 not in req.GET:\n            return context.project_id\n\n        target \u003d {\n            \u0027project_id\u0027: context.project_id,\n            \u0027user_id\u0027: context.user_id,\n        }\n        nova.policy.enforce(context, \"compute_extension:used_limits\",\n                            target)\n        return req.GET[\u0027tenant_id\u0027]\n\nAlso, I\u0027m not sure I understand the enforcement logic here; are we saying that if compute_extension:used_limits is allowed for the user on their current project ID, that they\u0027re allowed to get the limits on all projects?  That\u0027s the way the code currently reads…","commit_id":"e3d823c039775d59b1261361474fafd9c0bbb49f"},{"author":{"_account_id":7393,"name":"Mahesh Panchaksharaiah","email":"maheshp@thoughtworks.com","username":"panchaks"},"change_message_id":"03d0740082787db0370631627efa60c70da607fa","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        target \u003d {"},{"line_number":72,"context_line":"            \u0027project_id\u0027: context.project_id,"},{"line_number":73,"context_line":"            \u0027user_id\u0027: context.user_id,"},{"line_number":74,"context_line":"        }"},{"line_number":75,"context_line":"        if \u0027tenant_id\u0027 in req.GET:"},{"line_number":76,"context_line":"            nova.policy.enforce(context, \"compute_extension:used_limits\","},{"line_number":77,"context_line":"                                target)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FuS4%3D","line":74,"in_reply_to":"AAAAOn%2F%2Fu%2F8%3D","updated":"2013-04-26 08:20:57.000000000","message":"Thanks for the suggestion will do the changes and push it.\n\nRegarding the policy enforcement, compute_extension:used_limits enforces a user to be in Admin role to access limits for another project. This is similar to server details action, where an admin can get server details for other projects.","commit_id":"e3d823c039775d59b1261361474fafd9c0bbb49f"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"7adef88538193dc960a41c7c7382c6179a47ffc7","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        target \u003d {"},{"line_number":72,"context_line":"            \u0027project_id\u0027: context.project_id,"},{"line_number":73,"context_line":"            \u0027user_id\u0027: context.user_id,"},{"line_number":74,"context_line":"        }"},{"line_number":75,"context_line":"        if \u0027tenant_id\u0027 in req.GET:"},{"line_number":76,"context_line":"            nova.policy.enforce(context, \"compute_extension:used_limits\","},{"line_number":77,"context_line":"                                target)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Ftoo%3D","line":74,"in_reply_to":"AAAAOn%2F%2FuS4%3D","updated":"2013-04-26 15:44:59.000000000","message":"I see.  I would like the policy enforcement target to indicate the targeted project, however…","commit_id":"e3d823c039775d59b1261361474fafd9c0bbb49f"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"eaac88e6266cdb17d32aab92431724363c1be62d","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                    \u0027user_id\u0027: context.user_id"},{"line_number":80,"context_line":"                    }"},{"line_number":81,"context_line":"                nova.policy.enforce(context, \"compute_extension:used_limits\","},{"line_number":82,"context_line":"                                    target)"},{"line_number":83,"context_line":"                return tenant_id"},{"line_number":84,"context_line":"        return context.project_id"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FeHs%3D","line":82,"updated":"2013-05-08 17:58:09.000000000","message":"you can use authorize (L29) instead of this, and in your own extension.","commit_id":"31644ea4b684292b761a269527a4aa50ace89b2a"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"eaac88e6266cdb17d32aab92431724363c1be62d","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                    target)"},{"line_number":83,"context_line":"                return tenant_id"},{"line_number":84,"context_line":"        return context.project_id"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"class Used_limits(extensions.ExtensionDescriptor):"},{"line_number":88,"context_line":"    \"\"\"Provide data on limited resources that are being used.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FeIA%3D","line":85,"updated":"2013-05-08 17:58:09.000000000","message":"I know that index does (really) pretty much the same, but what do you think about create this as a show method inside your own extension file?\n\nwould make more sense since admin could do GET /limits/\u003cproject_id\u003e and also clean","commit_id":"31644ea4b684292b761a269527a4aa50ace89b2a"},{"author":{"_account_id":7393,"name":"Mahesh Panchaksharaiah","email":"maheshp@thoughtworks.com","username":"panchaks"},"change_message_id":"31c7664397d6125bfdab5da8f8c4a55606c4a84a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                    target)"},{"line_number":83,"context_line":"                return tenant_id"},{"line_number":84,"context_line":"        return context.project_id"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"class Used_limits(extensions.ExtensionDescriptor):"},{"line_number":88,"context_line":"    \"\"\"Provide data on limited resources that are being used.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FeCQ%3D","line":85,"in_reply_to":"AAAAOn%2F%2FeIA%3D","updated":"2013-05-08 18:34:33.000000000","message":"I agree, that we could have added a show method instead of index. Actually it is show call rather than an index since we are not listing anything.\nDid changes to the existing controller action just to avoid duplication of the code.\n\nAll are api calls require \u003cproject_id\u003e specified in the url, like v2/\u003cproject_id\u003e/limits, in that case could we do a GET /limits\u003cproject_id\u003e?","commit_id":"31644ea4b684292b761a269527a4aa50ace89b2a"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e77ebeeeadbd9a69d9c4899b5ce2168aef3d7abe","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _project_id(self, context, req):"},{"line_number":73,"context_line":"        if self.ext_mgr.is_loaded(\u0027os-used-limits-for-admin\u0027):"},{"line_number":74,"context_line":"            if \u0027tenant_id\u0027 in req.GET:"},{"line_number":75,"context_line":"                tenant_id \u003d req.GET[\u0027tenant_id\u0027]"},{"line_number":76,"context_line":"                target \u003d {"},{"line_number":77,"context_line":"                    \u0027project_id\u0027: tenant_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FV4s%3D","line":74,"updated":"2013-05-14 05:44:15.000000000","message":"nit: 74-75 can be replaced to be: tenant_id \u003d req.GET.get(\u0027tenant_id\u0027)","commit_id":"5af8df0d560dd9805e23f14275f60ffca15694e1"},{"author":{"_account_id":7490,"name":"Navneet Kumar","email":"navneetk@thoughtworks.com","username":"navneetk"},"change_message_id":"e926cc2754a617243b9e1f11de57f41abded9b3b","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _project_id(self, context, req):"},{"line_number":73,"context_line":"        if self.ext_mgr.is_loaded(\u0027os-used-limits-for-admin\u0027):"},{"line_number":74,"context_line":"            if \u0027tenant_id\u0027 in req.GET:"},{"line_number":75,"context_line":"                tenant_id \u003d req.GET[\u0027tenant_id\u0027]"},{"line_number":76,"context_line":"                target \u003d {"},{"line_number":77,"context_line":"                    \u0027project_id\u0027: tenant_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FVqY%3D","line":74,"in_reply_to":"AAAAOn%2F%2FV4s%3D","updated":"2013-05-14 07:55:11.000000000","message":"Done","commit_id":"5af8df0d560dd9805e23f14275f60ffca15694e1"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"2dec06e94c0e3cdbe90fabb615b9ac6f0b794dbf","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                    \u0027user_id\u0027: context.user_id"},{"line_number":79,"context_line":"                    }"},{"line_number":80,"context_line":"                authorize_for_admin \u003d extensions.extension_authorizer("},{"line_number":81,"context_line":"                    \u0027compute\u0027, \u0027used_limits_for_admin\u0027)"},{"line_number":82,"context_line":"                authorize_for_admin(context, target\u003dtarget)"},{"line_number":83,"context_line":"                return tenant_id"},{"line_number":84,"context_line":"        return context.project_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAO3%2F%2F%2Bgg%3D","line":81,"updated":"2013-05-15 18:58:39.000000000","message":"I would prefer you move this into the global scope, just under the existing definition of \"authorize\"; that way, we\u0027re not constructing this every time.","commit_id":"5fcf56e97fb593c3644fbd78cabf3cc5e9913877"},{"author":{"_account_id":7490,"name":"Navneet Kumar","email":"navneetk@thoughtworks.com","username":"navneetk"},"change_message_id":"d677df88adc85a145a7efca90e3090bd34ec8883","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                    \u0027user_id\u0027: context.user_id"},{"line_number":79,"context_line":"                    }"},{"line_number":80,"context_line":"                authorize_for_admin \u003d extensions.extension_authorizer("},{"line_number":81,"context_line":"                    \u0027compute\u0027, \u0027used_limits_for_admin\u0027)"},{"line_number":82,"context_line":"                authorize_for_admin(context, target\u003dtarget)"},{"line_number":83,"context_line":"                return tenant_id"},{"line_number":84,"context_line":"        return context.project_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAO3%2F%2F9F8%3D","line":81,"in_reply_to":"AAAAO3%2F%2F%2Bgg%3D","updated":"2013-05-16 07:37:40.000000000","message":"Done","commit_id":"5fcf56e97fb593c3644fbd78cabf3cc5e9913877"}],"nova/api/openstack/compute/contrib/used_limits_for_admin.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"43f8145b5fcd9a340e77ce5b1f90cd804cc71fa6","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    name \u003d \"UsedLimitsForAdmin\""},{"line_number":24,"context_line":"    alias \u003d \"os-used-limits-for-admin\""},{"line_number":25,"context_line":"    namespace \u003d \"http://docs.openstack.org/compute/ext/used_limits_for_admin\" \\"},{"line_number":26,"context_line":"                \"/api/v1.1\""},{"line_number":27,"context_line":"    updated \u003d \"2013-05-02T00:00:00+00:00\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2FeQo%3D","line":26,"updated":"2013-05-08 16:51:43.000000000","message":"femtonit: Enclose the string in parentheses to eliminate the backslash continuation…","commit_id":"0580857046d1732230072c3848c1e3385a8c4f17"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"eaac88e6266cdb17d32aab92431724363c1be62d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FeLI%3D","line":3,"updated":"2013-05-08 17:58:09.000000000","message":"nit 2013... but whatever... really minor","commit_id":"31644ea4b684292b761a269527a4aa50ace89b2a"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e77ebeeeadbd9a69d9c4899b5ce2168aef3d7abe","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    name \u003d \"UsedLimitsForAdmin\""},{"line_number":24,"context_line":"    alias \u003d \"os-used-limits-for-admin\""},{"line_number":25,"context_line":"    namespace \u003d \"http://docs.openstack.org/compute/ext/used_limits_for_admin\" \\"},{"line_number":26,"context_line":"                \"/api/v1.1\""},{"line_number":27,"context_line":"    updated \u003d \"2013-05-02T00:00:00+00:00\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FV4o%3D","line":25,"updated":"2013-05-14 05:44:15.000000000","message":"nit I think ( ) is preferred.","commit_id":"5af8df0d560dd9805e23f14275f60ffca15694e1"},{"author":{"_account_id":7490,"name":"Navneet Kumar","email":"navneetk@thoughtworks.com","username":"navneetk"},"change_message_id":"e926cc2754a617243b9e1f11de57f41abded9b3b","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    name \u003d \"UsedLimitsForAdmin\""},{"line_number":24,"context_line":"    alias \u003d \"os-used-limits-for-admin\""},{"line_number":25,"context_line":"    namespace \u003d \"http://docs.openstack.org/compute/ext/used_limits_for_admin\" \\"},{"line_number":26,"context_line":"                \"/api/v1.1\""},{"line_number":27,"context_line":"    updated \u003d \"2013-05-02T00:00:00+00:00\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FVqU%3D","line":25,"in_reply_to":"AAAAOn%2F%2FV4o%3D","updated":"2013-05-14 07:55:11.000000000","message":"Done","commit_id":"5af8df0d560dd9805e23f14275f60ffca15694e1"}],"nova/tests/api/openstack/compute/contrib/test_used_limits.py":[{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"eaac88e6266cdb17d32aab92431724363c1be62d","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.ext_mgr.is_loaded(\u0027os-used-limits-for-admin\u0027).AndReturn(True)"},{"line_number":106,"context_line":"        self.mox.StubOutWithMock(nova.policy, \u0027enforce\u0027)"},{"line_number":107,"context_line":"        nova.policy.enforce(self.fake_context, \"compute_extension:used_limits\","},{"line_number":108,"context_line":"                            target)"},{"line_number":109,"context_line":"        self.mox.StubOutWithMock(quota.QUOTAS, \u0027get_project_quotas\u0027)"},{"line_number":110,"context_line":"        quota.QUOTAS.get_project_quotas(self.fake_context, \u0027%s\u0027 % tenant_id,"},{"line_number":111,"context_line":"                                        usages\u003dTrue).AndReturn({})"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FeKE%3D","line":108,"updated":"2013-05-08 17:58:09.000000000","message":"instead of this set the policy in https://github.com/openstack/nova/blob/master/nova/tests/fake_policy.py to run unit tests","commit_id":"31644ea4b684292b761a269527a4aa50ace89b2a"}],"nova/tests/integrated/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.json.tpl":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"43f8145b5fcd9a340e77ce5b1f90cd804cc71fa6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{}"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"AAAAOn%2F%2FeQU%3D","line":1,"updated":"2013-05-08 16:51:43.000000000","message":"Why is there an empty response here?  Where is the matching documentation example?  (Maybe these are left-over?)","commit_id":"0580857046d1732230072c3848c1e3385a8c4f17"}],"nova/tests/integrated/test_api_samples.py":[{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"eaac88e6266cdb17d32aab92431724363c1be62d","unresolved":false,"context_lines":[{"line_number":1923,"context_line":"class UsedLimitsForAdminSamplesXmlTest(UsedLimitsForAdminSamplesJsonTest):"},{"line_number":1924,"context_line":"    ctype \u003d \"xml\""},{"line_number":1925,"context_line":""},{"line_number":1926,"context_line":""},{"line_number":1927,"context_line":"class MultipleCreateJsonTest(ServersSampleBase):"},{"line_number":1928,"context_line":"    extension_name \u003d (\"nova.api.openstack.compute.contrib.multiple_create.\""},{"line_number":1929,"context_line":"                      \"Multiple_create\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FeLA%3D","line":1926,"updated":"2013-05-08 17:58:09.000000000","message":"what about the samples tests for your extension?","commit_id":"31644ea4b684292b761a269527a4aa50ace89b2a"}]}
