)]}'
{"nova/api/openstack/compute/quota_sets.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8d5fd58036b084c26aa3a8ff7ffb97089ae03bd4","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    def show(self, req, id):"},{"line_number":104,"context_line":"        return self._show(req, id, [])"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    @wsgi.Controller.api_version(API_VERSION_WITHOUT_PROXY_API)  # noqa"},{"line_number":107,"context_line":"    def show(self, req, id):"},{"line_number":108,"context_line":"        return self._show(req, id, FILTERED_QUOTAS)"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"dada55a8_4155fac3","line":106,"range":{"start_line":106,"start_character":33,"end_line":106,"end_character":62},"updated":"2016-07-21 06:42:09.000000000","message":"or we can just hard code this to 2.36 now","commit_id":"27dcbec38aa772d5f2d089e31234fd3cdb035f10"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8d5fd58036b084c26aa3a8ff7ffb97089ae03bd4","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @wsgi.Controller.api_version(API_VERSION_WITHOUT_PROXY_API)  # noqa"},{"line_number":145,"context_line":"    @extensions.expected_errors(400)"},{"line_number":146,"context_line":"    @validation.schema(quota_sets.update_v231)"},{"line_number":147,"context_line":"    def update(self, req, id, body):"},{"line_number":148,"context_line":"        return self._update(req, id, body, FILTERED_QUOTAS)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"dada55a8_a1283634","line":146,"range":{"start_line":146,"start_character":42,"end_line":146,"end_character":45},"updated":"2016-07-21 06:42:09.000000000","message":"v236","commit_id":"27dcbec38aa772d5f2d089e31234fd3cdb035f10"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"491ae3cf161636e9ee05b2686e7ff54b2e4fa3b3","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"max_proxy_api_version_obj \u003d api_version_request.APIVersionRequest("},{"line_number":42,"context_line":"    MAX_PROXY_API_SUPPORT_VERSION)"},{"line_number":43,"context_line":"api_version_without_proxy_api_obj \u003d api_version_request.APIVersionRequest()"},{"line_number":44,"context_line":"api_version_without_proxy_api_obj.ver_major \u003d ("},{"line_number":45,"context_line":"    max_proxy_api_version_obj.ver_major)"},{"line_number":46,"context_line":"api_version_without_proxy_api_obj.ver_minor \u003d ("}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_1dcde35d","line":43,"updated":"2016-07-22 09:12:38.000000000","message":"Why do you actually need this new object?\nPossibly, it can be: \nAPI_VERSION_WITHOUT_PROXY_API \u003d api_version_request.APIVersionRequest(\n    MAX_PROXY_API_SUPPORT_VERSION).inc_minor().get_string()\nBut there is no inc_minor ).","commit_id":"80aec6804ee4ccc8b2f60a81ced49d7e7fc791ea"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"81ff4277011c14f5468f96d07347d6a80a8b1ccd","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"max_proxy_api_version_obj \u003d api_version_request.APIVersionRequest("},{"line_number":42,"context_line":"    MAX_PROXY_API_SUPPORT_VERSION)"},{"line_number":43,"context_line":"api_version_without_proxy_api_obj \u003d api_version_request.APIVersionRequest()"},{"line_number":44,"context_line":"api_version_without_proxy_api_obj.ver_major \u003d ("},{"line_number":45,"context_line":"    max_proxy_api_version_obj.ver_major)"},{"line_number":46,"context_line":"api_version_without_proxy_api_obj.ver_minor \u003d ("}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_f00b9f29","line":43,"in_reply_to":"dada55a8_1dcde35d","updated":"2016-07-23 17:13:44.000000000","message":"yeah, we don\u0027t need this any more as fixed 2.36 already","commit_id":"80aec6804ee4ccc8b2f60a81ced49d7e7fc791ea"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"99b69544f037771999abef4492d36f040e424778","unresolved":false,"context_lines":[{"line_number":35,"context_line":"ALIAS \u003d \"os-quota-sets\""},{"line_number":36,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"FILTERED_QUOTAS \u003d [\"fixed_ips\", \"floating_ips\", \"security_group_rules\","},{"line_number":39,"context_line":"                   \"security_groups\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"max_proxy_api_version_obj \u003d api_version_request.APIVersionRequest("}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_de3ab7cc","line":38,"updated":"2016-07-25 19:06:33.000000000","message":"What about networks? From:\n\nhttps://review.openstack.org/#/c/333151/8/nova/api/openstack/compute/tenant_networks.py@204","commit_id":"5a455dd57d8ceadaeafd9136a2ac81c81d3835ae"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"043794b75cdc3de0d7ccd73367fa3423cf635f79","unresolved":false,"context_lines":[{"line_number":35,"context_line":"ALIAS \u003d \"os-quota-sets\""},{"line_number":36,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"FILTERED_QUOTAS \u003d [\"fixed_ips\", \"floating_ips\", \"security_group_rules\","},{"line_number":39,"context_line":"                   \"security_groups\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"max_proxy_api_version_obj \u003d api_version_request.APIVersionRequest("}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_bc141d44","line":38,"in_reply_to":"dada55a8_35668e29","updated":"2016-07-26 02:20:03.000000000","message":"Good catch, let me fix it.","commit_id":"5a455dd57d8ceadaeafd9136a2ac81c81d3835ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9f7dc562f7864027d596d3976d2392619259f4cd","unresolved":false,"context_lines":[{"line_number":35,"context_line":"ALIAS \u003d \"os-quota-sets\""},{"line_number":36,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"FILTERED_QUOTAS \u003d [\"fixed_ips\", \"floating_ips\", \"security_group_rules\","},{"line_number":39,"context_line":"                   \"security_groups\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"max_proxy_api_version_obj \u003d api_version_request.APIVersionRequest("}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_fe017b07","line":38,"in_reply_to":"dada55a8_5edd2713","updated":"2016-07-25 19:28:20.000000000","message":"I figured out the problem I was having, the \u0027networks\u0027 quota resource is configurable, and CONF.enable_network_quota is False by default.","commit_id":"5a455dd57d8ceadaeafd9136a2ac81c81d3835ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"85abf9b0980bd1c8692071ea620cdb58b5403140","unresolved":false,"context_lines":[{"line_number":35,"context_line":"ALIAS \u003d \"os-quota-sets\""},{"line_number":36,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"FILTERED_QUOTAS \u003d [\"fixed_ips\", \"floating_ips\", \"security_group_rules\","},{"line_number":39,"context_line":"                   \"security_groups\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"max_proxy_api_version_obj \u003d api_version_request.APIVersionRequest("}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_5edd2713","line":38,"in_reply_to":"dada55a8_de3ab7cc","updated":"2016-07-25 19:17:23.000000000","message":"We have a config option for that also, I need to get a nova-network devstack setup to test this out though:\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/conf/api.py#n362\n\nSince on my neutron devstack instance doing a nova quota-show doesn\u0027t show networks in the results.","commit_id":"5a455dd57d8ceadaeafd9136a2ac81c81d3835ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d94187f97c2ddaf3e42c6985e4998b3a84f72bc7","unresolved":false,"context_lines":[{"line_number":35,"context_line":"ALIAS \u003d \"os-quota-sets\""},{"line_number":36,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"FILTERED_QUOTAS \u003d [\"fixed_ips\", \"floating_ips\", \"security_group_rules\","},{"line_number":39,"context_line":"                   \"security_groups\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"max_proxy_api_version_obj \u003d api_version_request.APIVersionRequest("}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_35668e29","line":38,"in_reply_to":"dada55a8_fe017b07","updated":"2016-07-25 21:17:01.000000000","message":"https://review.openstack.org/#/c/346996/","commit_id":"5a455dd57d8ceadaeafd9136a2ac81c81d3835ae"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4e581ba333eddde167e7f33e432dc25e2ceb9cc9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"FILTERED_QUOTAS \u003d [\"fixed_ips\", \"floating_ips\", \"networks\","},{"line_number":39,"context_line":"                   \"security_group_rules\", \"security_groups\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"max_proxy_api_version_obj \u003d api_version_request.APIVersionRequest("},{"line_number":42,"context_line":"    MAX_PROXY_API_SUPPORT_VERSION)"}],"source_content_type":"text/x-python","patch_set":13,"id":"dada55a8_2d1bc7cb","line":39,"updated":"2016-07-26 10:29:49.000000000","message":"So I am late to the party here, but I actually like the idea of doing an allowed list, and explicitly filter all the quotas. But the reason why I want that is terrible. We can do that later if needed. Anyways, this seems fine.","commit_id":"603859eb45f44a579ef8653f41dca645be79eead"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4e581ba333eddde167e7f33e432dc25e2ceb9cc9","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    max_proxy_api_version_obj.ver_major)"},{"line_number":46,"context_line":"api_version_without_proxy_api_obj.ver_minor \u003d ("},{"line_number":47,"context_line":"    max_proxy_api_version_obj.ver_minor + 1)"},{"line_number":48,"context_line":"API_VERSION_WITHOUT_PROXY_API \u003d api_version_without_proxy_api_obj.get_string()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"class QuotaSetsController(wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":13,"id":"dada55a8_6de3ffd9","line":48,"updated":"2016-07-26 10:29:49.000000000","message":"Nit: its tempting to move that into api_version_request as well.","commit_id":"603859eb45f44a579ef8653f41dca645be79eead"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6db8ff0547fb2a6654a497f2e9a7e8b709c6ce74","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"class QuotaSetsController(wsgi.Controller):"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _format_quota_set(self, project_id, quota_set, filtered_quotas):"},{"line_number":54,"context_line":"        \"\"\"Convert the quota object to a result dict.\"\"\""},{"line_number":55,"context_line":"        if project_id:"},{"line_number":56,"context_line":"            result \u003d dict(id\u003dstr(project_id))"}],"source_content_type":"text/x-python","patch_set":13,"id":"dada55a8_107edc18","line":53,"updated":"2016-07-26 10:36:38.000000000","message":"Nit: I wonder if passing down the req to here, and just doing a simple if on the version would be easier?","commit_id":"603859eb45f44a579ef8653f41dca645be79eead"}],"nova/api/openstack/compute/schemas/quota_sets.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8d5fd58036b084c26aa3a8ff7ffb97089ae03bd4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"update_quota_set \u003d copy.deepcopy(quota_resources)"},{"line_number":46,"context_line":"update_quota_set.update({\u0027force\u0027: parameter_types.boolean})"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"update_quota_set_v231 \u003d copy.deepcopy(quota_resources)"},{"line_number":49,"context_line":"del update_quota_set_v231[\u0027fixed_ips\u0027]"},{"line_number":50,"context_line":"del update_quota_set_v231[\u0027floating_ips\u0027]"},{"line_number":51,"context_line":"del update_quota_set_v231[\u0027security_groups\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"dada55a8_41f17acc","line":48,"range":{"start_line":48,"start_character":17,"end_line":48,"end_character":21},"updated":"2016-07-21 06:42:09.000000000","message":"-\u003e v236","commit_id":"27dcbec38aa772d5f2d089e31234fd3cdb035f10"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e9307c9a66f16b846c786952e2709c8ca262d1c4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"update_quota_set \u003d copy.deepcopy(quota_resources)"},{"line_number":46,"context_line":"update_quota_set.update({\u0027force\u0027: parameter_types.boolean})"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"update_quota_set_v231 \u003d copy.deepcopy(quota_resources)"},{"line_number":49,"context_line":"del update_quota_set_v231[\u0027fixed_ips\u0027]"},{"line_number":50,"context_line":"del update_quota_set_v231[\u0027floating_ips\u0027]"},{"line_number":51,"context_line":"del update_quota_set_v231[\u0027security_groups\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"dada55a8_46220ca4","line":48,"range":{"start_line":48,"start_character":17,"end_line":48,"end_character":21},"in_reply_to":"dada55a8_41f17acc","updated":"2016-07-21 16:21:07.000000000","message":"Done","commit_id":"27dcbec38aa772d5f2d089e31234fd3cdb035f10"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8d5fd58036b084c26aa3a8ff7ffb97089ae03bd4","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    \u0027additionalProperties\u0027: False,"},{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"update_v231 \u003d copy.deepcopy(update)"},{"line_number":68,"context_line":"update_v231[\u0027properties\u0027][\u0027quota_set\u0027][\u0027properties\u0027] \u003d update_quota_set_v231"}],"source_content_type":"text/x-python","patch_set":9,"id":"dada55a8_a1a15648","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":11},"updated":"2016-07-21 06:42:09.000000000","message":"236","commit_id":"27dcbec38aa772d5f2d089e31234fd3cdb035f10"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e9307c9a66f16b846c786952e2709c8ca262d1c4","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    \u0027additionalProperties\u0027: False,"},{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"update_v231 \u003d copy.deepcopy(update)"},{"line_number":68,"context_line":"update_v231[\u0027properties\u0027][\u0027quota_set\u0027][\u0027properties\u0027] \u003d update_quota_set_v231"}],"source_content_type":"text/x-python","patch_set":9,"id":"dada55a8_e63340f4","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":11},"in_reply_to":"dada55a8_a1a15648","updated":"2016-07-21 16:21:07.000000000","message":"Done","commit_id":"27dcbec38aa772d5f2d089e31234fd3cdb035f10"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ddab51c042b1fc3d4f16769bb8def486f0a2f1f1","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    \u0027injected_file_content_bytes\u0027: common_quota,"},{"line_number":40,"context_line":"    \u0027injected_file_path_bytes\u0027: common_quota,"},{"line_number":41,"context_line":"    \u0027server_groups\u0027: common_quota,"},{"line_number":42,"context_line":"    \u0027server_group_members\u0027: common_quota,"},{"line_number":43,"context_line":"}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"update_quota_set \u003d copy.deepcopy(quota_resources)"}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_bca41da6","line":42,"updated":"2016-07-26 05:49:50.000000000","message":"we don\u0027t have \"quotas\" at here....I will fix it in another patch","commit_id":"5a455dd57d8ceadaeafd9136a2ac81c81d3835ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b2109ee9e2480cde688569026b47dfb9f90b5c25","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    \u0027maximum\u0027: db.MAX_INT"},{"line_number":26,"context_line":"}"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"quota_resources \u003d {"},{"line_number":29,"context_line":"    \u0027instances\u0027: common_quota,"},{"line_number":30,"context_line":"    \u0027cores\u0027: common_quota,"},{"line_number":31,"context_line":"    \u0027ram\u0027: common_quota,"},{"line_number":32,"context_line":"    \u0027floating_ips\u0027: common_quota,"},{"line_number":33,"context_line":"    \u0027fixed_ips\u0027: common_quota,"},{"line_number":34,"context_line":"    \u0027metadata_items\u0027: common_quota,"},{"line_number":35,"context_line":"    \u0027key_pairs\u0027: common_quota,"},{"line_number":36,"context_line":"    \u0027security_groups\u0027: common_quota,"},{"line_number":37,"context_line":"    \u0027security_group_rules\u0027: common_quota,"},{"line_number":38,"context_line":"    \u0027injected_files\u0027: common_quota,"},{"line_number":39,"context_line":"    \u0027injected_file_content_bytes\u0027: common_quota,"},{"line_number":40,"context_line":"    \u0027injected_file_path_bytes\u0027: common_quota,"},{"line_number":41,"context_line":"    \u0027server_groups\u0027: common_quota,"},{"line_number":42,"context_line":"    \u0027server_group_members\u0027: common_quota,"},{"line_number":43,"context_line":"}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"update_quota_set \u003d copy.deepcopy(quota_resources)"},{"line_number":46,"context_line":"update_quota_set.update({\u0027force\u0027: parameter_types.boolean})"}],"source_content_type":"text/x-python","patch_set":13,"id":"dada55a8_7731f7ec","line":43,"range":{"start_line":28,"start_character":0,"end_line":43,"end_character":1},"updated":"2016-07-26 16:46:37.000000000","message":"Good point about \u0027networks\u0027 not being in here. It\u0027s a bug that you can\u0027t change networks quota via the API, however, that option is now deprecated and there is a workaround to change the default via nova config, so I think we should just not fix it and let it die with nova-network.","commit_id":"603859eb45f44a579ef8653f41dca645be79eead"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4e581ba333eddde167e7f33e432dc25e2ceb9cc9","unresolved":false,"context_lines":[{"line_number":49,"context_line":"del update_quota_set_v236[\u0027fixed_ips\u0027]"},{"line_number":50,"context_line":"del update_quota_set_v236[\u0027floating_ips\u0027]"},{"line_number":51,"context_line":"del update_quota_set_v236[\u0027security_groups\u0027]"},{"line_number":52,"context_line":"del update_quota_set_v236[\u0027security_group_rules\u0027]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"update \u003d {"},{"line_number":55,"context_line":"    \u0027type\u0027: \u0027object\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"dada55a8_cd578b58","line":52,"updated":"2016-07-26 10:29:49.000000000","message":"Nit: I am tempted to do the reverse, and add this to the old one, but this is less invasive, so thats fine.","commit_id":"603859eb45f44a579ef8653f41dca645be79eead"}]}
