)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c162ec4ba7bb7db19a0cfdb1aa743d2ee7500274","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Cale Rath \u003cctrath@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-08 15:02:31 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fail when Neutron calls limits APIs."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to http://docs.openstack.org/developer/nova/project_scope.html?highlight\u003dproxy#no-more-api-proxies,"},{"line_number":10,"context_line":"Nova APIs shouldn\u0027t be used a proxies for in other openstack services.  This fix"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a41bdd9_a3c35456","line":7,"updated":"2015-07-15 09:33:14.000000000","message":"The commit message is fine, but the title makes it look as the problem is the other way around: neutron query nova for limits.\n\nNeutron does not do that, but even if it did, it would be not an issue, unless it queries nova to know about its own resource usage. In that case it would be an issue, and psychiatric help should be sought.","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"49b822c6a3f4dfef03e01c5caf70e4ec8cadc5a8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fail when Neutron calls limits APIs."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to http://docs.openstack.org/developer/nova/project_scope.html?highlight\u003dproxy#no-more-api-proxies,"},{"line_number":10,"context_line":"Nova APIs shouldn\u0027t be used a proxies for in other openstack services.  This fix"},{"line_number":11,"context_line":"raises an HTTPBadRequest (400) exception if Neutron calls the UsedLimits or Limits APIs."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_db0a0b20","line":9,"updated":"2015-07-08 15:29:59.000000000","message":"Commit message lines should be wrapped at 80 characters, so you probably need a url shortener for this.","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c162ec4ba7bb7db19a0cfdb1aa743d2ee7500274","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fail when Neutron calls limits APIs."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to http://docs.openstack.org/developer/nova/project_scope.html?highlight\u003dproxy#no-more-api-proxies,"},{"line_number":10,"context_line":"Nova APIs shouldn\u0027t be used a proxies for in other openstack services.  This fix"},{"line_number":11,"context_line":"raises an HTTPBadRequest (400) exception if Neutron calls the UsedLimits or Limits APIs."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a41bdd9_c3fbf8bf","line":9,"in_reply_to":"ba3cc151_db0a0b20","updated":"2015-07-15 09:33:14.000000000","message":"In the past I\u0027ve seen some contributors freak out about URL shorteners, perhaps the link could just live in the bug report.","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"49b822c6a3f4dfef03e01c5caf70e4ec8cadc5a8","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fail when Neutron calls limits APIs."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to http://docs.openstack.org/developer/nova/project_scope.html?highlight\u003dproxy#no-more-api-proxies,"},{"line_number":10,"context_line":"Nova APIs shouldn\u0027t be used a proxies for in other openstack services.  This fix"},{"line_number":11,"context_line":"raises an HTTPBadRequest (400) exception if Neutron calls the UsedLimits or Limits APIs."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I821aa0a3975f2be879851e9cb556cd6de24e7170"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_3b48d75b","line":10,"updated":"2015-07-08 15:29:59.000000000","message":"s/used a/used as/\n\ns/for in/for/","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"}],"nova/api/openstack/compute/contrib/used_limits.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"49b822c6a3f4dfef03e01c5caf70e4ec8cadc5a8","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from nova.i18n import _LW"},{"line_number":20,"context_line":"from nova import quota"},{"line_number":21,"context_line":"from nova import utils"},{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from webob import exc"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"QUOTAS \u003d quota.QUOTAS"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_9bdb237c","line":22,"updated":"2015-07-08 15:29:59.000000000","message":"oslo_log and webob should be grouped with six above in the third party imports section, see this for details:\n\nhttp://docs.openstack.org/developer/hacking/#imports","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"af46293adf84cdc0aaed4d90c236cb049aa331e8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from nova import quota"},{"line_number":21,"context_line":"from nova import utils"},{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from webob import exc"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_8922fa52","line":23,"updated":"2015-07-08 16:37:58.000000000","message":"webob should also be in the 3rd party group","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c162ec4ba7bb7db19a0cfdb1aa743d2ee7500274","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from nova import quota"},{"line_number":21,"context_line":"from nova import utils"},{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from webob import exc"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_237184a8","line":23,"in_reply_to":"ba3cc151_8922fa52","updated":"2015-07-15 09:33:14.000000000","message":"I wonder how comes that we automated checks for periods at the end of commit messages but not for this stuff.","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c162ec4ba7bb7db19a0cfdb1aa743d2ee7500274","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from webob import exc"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"XMLNS \u003d \"http://docs.openstack.org/compute/ext/used_limits/api/v1.1\""},{"line_number":29,"context_line":"ALIAS \u003d \"os-used-limits\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_037a4077","line":26,"updated":"2015-07-15 09:33:14.000000000","message":"LOG should precede QUOTAS because of alphabetical ordering.\n\nJust kidding ;)","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"49b822c6a3f4dfef03e01c5caf70e4ec8cadc5a8","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        if utils.is_neutron():"},{"line_number":52,"context_line":"            LOG.warning(_LW(\"Neutron cannot call a proxy API\"))"},{"line_number":53,"context_line":"            raise exc.HTTPBadRequest()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        project_id \u003d self._project_id(context, req)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_db9a0b62","line":52,"updated":"2015-07-08 15:29:59.000000000","message":"This message needs work.  It\u0027s not neutron that\u0027s calling anything here, it\u0027s nova that\u0027s trying to get quota limit information on resources that are managed by neutron, in this case floating IPs and security groups used.\n\nAlso, we need the message to be in the HTTPBadRequest that\u0027s returned so they know what actually blew up.\n\nI\u0027d suggest re-wording the error message as something like:\n\n\"The compute API does not proxy used limits information on floating IPs or security groups when using the Neutron networking service. You must get quota information on those resources from the networking API.\"","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c162ec4ba7bb7db19a0cfdb1aa743d2ee7500274","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        if utils.is_neutron():"},{"line_number":52,"context_line":"            LOG.warning(_LW(\"Neutron cannot call a proxy API\"))"},{"line_number":53,"context_line":"            raise exc.HTTPBadRequest()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        project_id \u003d self._project_id(context, req)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_a3e2742d","line":52,"in_reply_to":"ba3cc151_db9a0b62","updated":"2015-07-15 09:33:14.000000000","message":"Indeed, and the commit message needs similar work, as it is misleading as well.","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c162ec4ba7bb7db19a0cfdb1aa743d2ee7500274","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        if utils.is_neutron():"},{"line_number":52,"context_line":"            LOG.warning(_LW(\"Neutron cannot call a proxy API\"))"},{"line_number":53,"context_line":"            raise exc.HTTPBadRequest()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        project_id \u003d self._project_id(context, req)"},{"line_number":56,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id, usages\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_a35034d5","line":53,"updated":"2015-07-15 09:33:14.000000000","message":"I think you should not raise here however.\nYou should just not return resources which are managed by neutron because users should still use this API to retrieve resources managed by nova","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"49b822c6a3f4dfef03e01c5caf70e4ec8cadc5a8","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        project_id \u003d self._project_id(context, req)"},{"line_number":56,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id, usages\u003dTrue)"},{"line_number":57,"context_line":"        quota_map \u003d {"},{"line_number":58,"context_line":"            \u0027totalRAMUsed\u0027: \u0027ram\u0027,"},{"line_number":59,"context_line":"            \u0027totalCoresUsed\u0027: \u0027cores\u0027,"},{"line_number":60,"context_line":"            \u0027totalInstancesUsed\u0027: \u0027instances\u0027,"},{"line_number":61,"context_line":"            \u0027totalFloatingIpsUsed\u0027: \u0027floating_ips\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_db368b50","line":58,"updated":"2015-07-08 15:29:59.000000000","message":"However, this makes me wonder if it\u0027s valid to completely puke in the neutron case, because then there is no way for someone using neutron to get information on ram/cores/instances used, which doesn\u0027t have anything to do with the networking service you\u0027re using.\n\nI think this came up before when talking about this bug.  Options were:\n\n1. fail - like you\u0027re doing here\n\n2. proxy to neutron for floating ips and security groups - that\u0027s what the original change was doing back in havana\n\n3. return -1 or something for floatingips/security groups to indicate that we don\u0027t know, you have to get those from neutron\n\nWe probably need to talk/think about this some more.","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"08b468f461638525ea06dd6e449471288bb1b8b9","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        project_id \u003d self._project_id(context, req)"},{"line_number":56,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id, usages\u003dTrue)"},{"line_number":57,"context_line":"        quota_map \u003d {"},{"line_number":58,"context_line":"            \u0027totalRAMUsed\u0027: \u0027ram\u0027,"},{"line_number":59,"context_line":"            \u0027totalCoresUsed\u0027: \u0027cores\u0027,"},{"line_number":60,"context_line":"            \u0027totalInstancesUsed\u0027: \u0027instances\u0027,"},{"line_number":61,"context_line":"            \u0027totalFloatingIpsUsed\u0027: \u0027floating_ips\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_0669338b","line":58,"in_reply_to":"ba3cc151_2653de18","updated":"2015-07-14 07:35:01.000000000","message":"agree, option 1 looks like wrong. both 2 and 3 looks like ok for me. 2 looks like is better, because we said no more proxy api...This is api isn\u0027t new api, just..think it\u0027s original meaning should be proxy to neutron api.\n\nand think of whether need new microversion. Microversion can be used to determine whether the API is buggy version.","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"16eb9df2cd62bca1136642a4ccb0225d234f6aa7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        project_id \u003d self._project_id(context, req)"},{"line_number":56,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id, usages\u003dTrue)"},{"line_number":57,"context_line":"        quota_map \u003d {"},{"line_number":58,"context_line":"            \u0027totalRAMUsed\u0027: \u0027ram\u0027,"},{"line_number":59,"context_line":"            \u0027totalCoresUsed\u0027: \u0027cores\u0027,"},{"line_number":60,"context_line":"            \u0027totalInstancesUsed\u0027: \u0027instances\u0027,"},{"line_number":61,"context_line":"            \u0027totalFloatingIpsUsed\u0027: \u0027floating_ips\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_2653de18","line":58,"in_reply_to":"ba3cc151_db368b50","updated":"2015-07-08 15:31:32.000000000","message":"For reference, this was the original attempt at fixing this bug with proxying to neutron back in havana:\n\nhttps://review.openstack.org/#/c/43822/","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c162ec4ba7bb7db19a0cfdb1aa743d2ee7500274","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            \u0027totalCoresUsed\u0027: \u0027cores\u0027,"},{"line_number":60,"context_line":"            \u0027totalInstancesUsed\u0027: \u0027instances\u0027,"},{"line_number":61,"context_line":"            \u0027totalFloatingIpsUsed\u0027: \u0027floating_ips\u0027,"},{"line_number":62,"context_line":"            \u0027totalSecurityGroupsUsed\u0027: \u0027security_groups\u0027,"},{"line_number":63,"context_line":"        }"},{"line_number":64,"context_line":"        if self.ext_mgr.is_loaded(\u0027os-server-group-quotas\u0027):"},{"line_number":65,"context_line":"            quota_map[\u0027totalServerGroupsUsed\u0027] \u003d \u0027server_groups\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_c3cc586c","line":62,"updated":"2015-07-15 09:33:14.000000000","message":"I think we could just ensure the two lines above are not in quota_map if neutron is enabled, or even better not return floating_ips and security_groups in get_project_quotas if neutron is enabled","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"}],"nova/api/openstack/compute/limits.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"49b822c6a3f4dfef03e01c5caf70e4ec8cadc5a8","unresolved":false,"context_lines":[{"line_number":50,"context_line":"from nova import utils"},{"line_number":51,"context_line":"from nova import wsgi as base_wsgi"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":55,"context_line":"LIMITS_PREFIX \u003d \"limits.\""},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_9b3d632d","side":"PARENT","line":53,"updated":"2015-07-08 15:29:59.000000000","message":"Remove this unrelated whitespace change.","commit_id":"2521f80a29a089d2c5a0c88bcea52194cd04c880"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"49b822c6a3f4dfef03e01c5caf70e4ec8cadc5a8","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":66,"context_line":"        project_id \u003d req.params.get(\u0027tenant_id\u0027, context.project_id)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        if utils.is_neutron():"},{"line_number":69,"context_line":"            LOG.warning(_LW(\"Neutron cannot call a proxy API\"))"},{"line_number":70,"context_line":"            raise exc.HTTPBadRequest()"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_db13eb63","line":68,"updated":"2015-07-08 15:29:59.000000000","message":"As noted in the other API, there is more than just networking resources here:\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/quota.py#n1464\n\nSo if you\u0027re using neutron, you can\u0027t get anything about quotas on instances/cores/ram etc which breaks this API.\n\nI\u0027m not sure that there is any better option for us than to just proxy to neutron for security group/floating ip/fixed ip information, but we should bring it up in the ML or nova meeting.","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c162ec4ba7bb7db19a0cfdb1aa743d2ee7500274","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":66,"context_line":"        project_id \u003d req.params.get(\u0027tenant_id\u0027, context.project_id)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        if utils.is_neutron():"},{"line_number":69,"context_line":"            LOG.warning(_LW(\"Neutron cannot call a proxy API\"))"},{"line_number":70,"context_line":"            raise exc.HTTPBadRequest()"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_23ae6498","line":68,"in_reply_to":"ba3cc151_db13eb63","updated":"2015-07-15 09:33:14.000000000","message":"agreed","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"}],"nova/api/openstack/compute/plugins/v3/limits.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"af46293adf84cdc0aaed4d90c236cb049aa331e8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from nova.i18n import _LW"},{"line_number":21,"context_line":"from nova import quota"},{"line_number":22,"context_line":"from nova import utils"},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":"from webob import exc"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"QUOTAS \u003d quota.QUOTAS"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_c9ba42e1","line":23,"updated":"2015-07-08 16:37:58.000000000","message":"lines 23 and 24 are in the wrong group they should in their own section above nova","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c162ec4ba7bb7db19a0cfdb1aa743d2ee7500274","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        project_id \u003d req.params.get(\u0027tenant_id\u0027, context.project_id)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        if utils.is_neutron():"},{"line_number":41,"context_line":"            LOG.warning(_LW(\"Neutron cannot call a proxy API\"))"},{"line_number":42,"context_line":"            raise exc.HTTPBadRequest()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_83d97024","line":41,"updated":"2015-07-15 09:33:14.000000000","message":"as pointed elsewhere it\u0027s not Neutron calling this API","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"}],"nova/api/openstack/compute/plugins/v3/used_limits.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"af46293adf84cdc0aaed4d90c236cb049aa331e8","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from nova.i18n import _LW"},{"line_number":20,"context_line":"from nova import quota"},{"line_number":21,"context_line":"from nova import utils"},{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from webob import exc"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"QUOTAS \u003d quota.QUOTAS"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_497dd21a","line":22,"updated":"2015-07-08 16:37:58.000000000","message":"same points as before","commit_id":"9ef5b4f332c66e627aa615d0758b9c9cdb848185"}]}
