)]}'
{"api-ref/source/os-quota-class-sets.inc":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a3dbc41d635e02d422d244462e1137251d53ffa","unresolved":false,"context_lines":[{"line_number":70,"context_line":"  - server_groups: server_groups_quota_class"},{"line_number":71,"context_line":"  - server_group_members: server_group_members_quota_class"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"**Example Show A Quota: JSON response**"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. literalinclude:: ../../doc/api_samples/os-quota-class-sets/v2.49/quota-classes-show-get-resp.json"},{"line_number":76,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":5,"id":"5f201791_454a7155","line":73,"updated":"2017-06-21 14:43:40.000000000","message":"Put (v2.49) in here if we\u0027re showing a non-2.1 sample.","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"692af6dd2026a64ef99375c08e791d3ea3a40021","unresolved":false,"context_lines":[{"line_number":70,"context_line":"  - server_groups: server_groups_quota_class"},{"line_number":71,"context_line":"  - server_group_members: server_group_members_quota_class"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"**Example Show A Quota: JSON response**"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. literalinclude:: ../../doc/api_samples/os-quota-class-sets/v2.49/quota-classes-show-get-resp.json"},{"line_number":76,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":5,"id":"5f201791_cc3a26e6","line":73,"in_reply_to":"5f201791_454a7155","updated":"2017-06-21 17:43:42.000000000","message":"Yeah, that is a nice point.\nOtherwise it would be nice to describe both of 2.1 and 2.49.","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a3dbc41d635e02d422d244462e1137251d53ffa","unresolved":false,"context_lines":[{"line_number":110,"context_line":"  - server_groups: server_groups_quota_class_optional"},{"line_number":111,"context_line":"  - server_group_members: server_group_members_quota_optional"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"**Example Update Quotas: JSON request**"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":".. literalinclude:: ../../doc/api_samples/os-quota-class-sets/v2.49/quota-classes-update-post-req.json"},{"line_number":116,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":5,"id":"5f201791_a574a59a","line":113,"updated":"2017-06-21 14:43:40.000000000","message":"same","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a3dbc41d635e02d422d244462e1137251d53ffa","unresolved":false,"context_lines":[{"line_number":136,"context_line":"  - server_groups: server_groups_quota_class"},{"line_number":137,"context_line":"  - server_group_members: server_group_members_quota_class"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"**Example Update Quotas: JSON response**"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":".. literalinclude:: ../../doc/api_samples/os-quota-class-sets/v2.49/quota-classes-update-post-resp.json"},{"line_number":142,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":5,"id":"5f201791_8569a9bf","line":139,"updated":"2017-06-21 14:43:40.000000000","message":"same","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"34ed980dd35500696a07db02783a50a7c7a8a52f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    There is workaround to get the ``server_groups`` and"},{"line_number":34,"context_line":"    ``server_group_members`` quotas using"},{"line_number":35,"context_line":"    :ref:`list-default-quotas-for-tenant`"},{"line_number":36,"context_line":"    API but that is per project quota."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Show the quota for Quota Class"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-c++src","patch_set":9,"id":"3f1d235d_90bb1e0d","line":36,"updated":"2017-07-10 13:33:40.000000000","message":"We should add a note this is fixed in the 2.50 also","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"34ed980dd35500696a07db02783a50a7c7a8a52f","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  - security_groups: security_groups_quota_class"},{"line_number":75,"context_line":"  - server_groups: server_groups_quota_class"},{"line_number":76,"context_line":"  - server_group_members: server_group_members_quota_class"},{"line_number":77,"context_line":"  - networks: networks_quota_optional"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"**Example Show A Quota Class: JSON response(2.50)**"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":9,"id":"3f1d235d_70d1a257","line":77,"range":{"start_line":77,"start_character":14,"end_line":77,"end_character":37},"updated":"2017-07-10 13:33:40.000000000","message":"This isn\u0027t optional","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bf8b8594e3dc5b632c8c4ea9f0a54925c66871e2","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  - security_groups: security_groups_quota_class"},{"line_number":75,"context_line":"  - server_groups: server_groups_quota_class"},{"line_number":76,"context_line":"  - server_group_members: server_group_members_quota_class"},{"line_number":77,"context_line":"  - networks: networks_quota_optional"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"**Example Show A Quota Class: JSON response(2.50)**"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":9,"id":"3f1d235d_10138e0f","line":77,"range":{"start_line":77,"start_character":14,"end_line":77,"end_character":37},"in_reply_to":"3f1d235d_70d1a257","updated":"2017-07-10 14:05:17.000000000","message":"if config is not set then it would not be present in quota resource so in response.\n\nhttps://github.com/openstack/nova/blob/dcea3ff68793a28cd546805ebcb2c0ae6c9b684d/nova/api/openstack/compute/tenant_networks.py#L191","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"34ed980dd35500696a07db02783a50a7c7a8a52f","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  - security_groups: security_groups_quota_class_optional"},{"line_number":118,"context_line":"  - server_groups: server_groups_quota_class_optional"},{"line_number":119,"context_line":"  - server_group_members: server_group_members_quota_optional"},{"line_number":120,"context_line":"  - networks: networks_quota_optional"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"**Example Update Quotas: JSON request(2.50)**"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":9,"id":"3f1d235d_30cb2aa6","line":120,"range":{"start_line":120,"start_character":14,"end_line":120,"end_character":37},"updated":"2017-07-10 13:33:40.000000000","message":"ditto","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a4af6b9f7955aa17a5405ebb1f8c0f28ab9eb70","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    for more details."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. warning::"},{"line_number":29,"context_line":"    There is a bug in the v2.1 API till microversion 2.49 and"},{"line_number":30,"context_line":"    the legacy v2 compatible API which does not return the"},{"line_number":31,"context_line":"    ``server_groups`` and ``server_group_members`` quotas in"},{"line_number":32,"context_line":"    GET and PUT ``os-quota-class-sets`` API response, whereas the v2 API"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"1f1a1f67_74f2d408","line":29,"range":{"start_line":29,"start_character":35,"end_line":29,"end_character":39},"updated":"2017-07-12 17:17:10.000000000","message":"till is not a word - *until*","commit_id":"92e0efeefd6782f205dc6a2b1f8e8a97f146596d"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b8c6cf9b44e548c1b3ab7dd667c5e3b6de6b65d3","unresolved":false,"context_lines":[{"line_number":4700,"context_line":"  in: body"},{"line_number":4701,"context_line":"  required: true"},{"line_number":4702,"context_line":"  type: string"},{"line_number":4703,"context_line":"server_group_members: \u0026server_group_members"},{"line_number":4704,"context_line":"  description: |"},{"line_number":4705,"context_line":"    The number of allowed members for each server group."},{"line_number":4706,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f201791_f30dcc90","line":4703,"range":{"start_line":4703,"start_character":22,"end_line":4703,"end_character":43},"updated":"2017-06-21 13:39:31.000000000","message":"I can\u0027t say I\u0027m familiar with this syntax. Care to explain?","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bbe8683d771436ae9b091d20a215af92e390a9d3","unresolved":false,"context_lines":[{"line_number":4700,"context_line":"  in: body"},{"line_number":4701,"context_line":"  required: true"},{"line_number":4702,"context_line":"  type: string"},{"line_number":4703,"context_line":"server_group_members: \u0026server_group_members"},{"line_number":4704,"context_line":"  description: |"},{"line_number":4705,"context_line":"    The number of allowed members for each server group."},{"line_number":4706,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f201791_26a08df4","line":4703,"range":{"start_line":4703,"start_character":22,"end_line":4703,"end_character":43},"in_reply_to":"5f201791_85ae49e5","updated":"2017-06-22 03:25:34.000000000","message":"yea, as explained by matt.","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a3dbc41d635e02d422d244462e1137251d53ffa","unresolved":false,"context_lines":[{"line_number":4700,"context_line":"  in: body"},{"line_number":4701,"context_line":"  required: true"},{"line_number":4702,"context_line":"  type: string"},{"line_number":4703,"context_line":"server_group_members: \u0026server_group_members"},{"line_number":4704,"context_line":"  description: |"},{"line_number":4705,"context_line":"    The number of allowed members for each server group."},{"line_number":4706,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f201791_85ae49e5","line":4703,"range":{"start_line":4703,"start_character":22,"end_line":4703,"end_character":43},"in_reply_to":"5f201791_f30dcc90","updated":"2017-06-21 14:43:40.000000000","message":"I gather that this creates a pointer so you can copy the fields from the original pointer and then override them, so server_group_members_quota_class copies everything from server_group_members and then overrides the min_version. Pretty nifty trick, albeit confusing at first.","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a3dbc41d635e02d422d244462e1137251d53ffa","unresolved":false,"context_lines":[{"line_number":4737,"context_line":"server_groups_quota_class:"},{"line_number":4738,"context_line":"  \u003c\u003c: *server_groups"},{"line_number":4739,"context_line":"  description: |"},{"line_number":4740,"context_line":"    The number of allowed server groups for ``quota class``."},{"line_number":4741,"context_line":"  min_version: 2.49"},{"line_number":4742,"context_line":"server_groups_quota_class_optional:"},{"line_number":4743,"context_line":"  \u003c\u003c: *server_groups"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f201791_a582654e","line":4740,"range":{"start_line":4740,"start_character":44,"end_line":4740,"end_character":59},"updated":"2017-06-21 14:43:40.000000000","message":"for the quota class.\n\nI don\u0027t think we need the literals.","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a4af6b9f7955aa17a5405ebb1f8c0f28ab9eb70","unresolved":false,"context_lines":[{"line_number":3813,"context_line":"  in: body"},{"line_number":3814,"context_line":"  required: false"},{"line_number":3815,"context_line":"  type: integer"},{"line_number":3816,"context_line":"  max_version: 2.50"},{"line_number":3817,"context_line":"networks_quota_set_optional:"},{"line_number":3818,"context_line":"  \u003c\u003c: *networks_quota_optional"},{"line_number":3819,"context_line":"  max_version: 2.35"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1f1a1f67_d48d287c","line":3816,"range":{"start_line":3816,"start_character":2,"end_line":3816,"end_character":19},"updated":"2017-07-12 17:17:10.000000000","message":"Don\u0027t we need to do the same thing for fixed ips, floating ips, security groups/rules, etc?","commit_id":"92e0efeefd6782f205dc6a2b1f8e8a97f146596d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"53459f0c47dc03f0eaa52a84debdcabd383a26fd","unresolved":false,"context_lines":[{"line_number":3813,"context_line":"  in: body"},{"line_number":3814,"context_line":"  required: false"},{"line_number":3815,"context_line":"  type: integer"},{"line_number":3816,"context_line":"  max_version: 2.50"},{"line_number":3817,"context_line":"networks_quota_set_optional:"},{"line_number":3818,"context_line":"  \u003c\u003c: *networks_quota_optional"},{"line_number":3819,"context_line":"  max_version: 2.35"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1f1a1f67_0360f5a4","line":3816,"range":{"start_line":3816,"start_character":2,"end_line":3816,"end_character":19},"in_reply_to":"1f1a1f67_d48d287c","updated":"2017-07-13 06:52:13.000000000","message":"oh, nice catch. totally forgot those. thanks","commit_id":"92e0efeefd6782f205dc6a2b1f8e8a97f146596d"}],"nova/api/openstack/api_version_request.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a3dbc41d635e02d422d244462e1137251d53ffa","unresolved":false,"context_lines":[{"line_number":116,"context_line":"             the output."},{"line_number":117,"context_line":"    * 2.48 - Standardize VM diagnostics info."},{"line_number":118,"context_line":"    * 2.49 - Exposes \u0027server_groups\u0027 and \u0027server_group_members\u0027 keys in GET \u0026"},{"line_number":119,"context_line":"             PUT os--quota-class-sets APIs response."},{"line_number":120,"context_line":"\"\"\""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_e5edfd25","line":119,"range":{"start_line":119,"start_character":19,"end_line":119,"end_character":21},"updated":"2017-06-21 14:43:40.000000000","message":"-","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"}],"nova/api/openstack/compute/quota_classes.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"136fa194a163a481b79ea2ddd850c2c8e0d666c0","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        # response."},{"line_number":55,"context_line":"        if not api_version_request.is_supported(req, min_version\u003d\"2.49\"):"},{"line_number":56,"context_line":"            for resource in EXTENDED_QUOTAS:"},{"line_number":57,"context_line":"                self.supported_quotas.remove(resource)"},{"line_number":58,"context_line":"        for resource in self.supported_quotas:"},{"line_number":59,"context_line":"            if resource in quota_set:"},{"line_number":60,"context_line":"                result[resource] \u003d quota_set[resource]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f231b9d_620d7be7","line":57,"updated":"2017-06-20 05:16:59.000000000","message":"If request with version \u003c 2.49, the \u0027server_groups\u0027 and \u0027server_group_members\u0027 are removed from the \u0027self.supported_quotas\u0027, then I request a version \u003e 2.49, then those two qutoas already removed.\n\nThat doesn\u0027t sound right.","commit_id":"d38e396c7f126172d5bcd3fa4b6cc6a98de21bdb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e9e577f8be4d2d85d1c767bc64e926eb738baf42","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        # response."},{"line_number":55,"context_line":"        if not api_version_request.is_supported(req, min_version\u003d\"2.49\"):"},{"line_number":56,"context_line":"            for resource in EXTENDED_QUOTAS:"},{"line_number":57,"context_line":"                self.supported_quotas.remove(resource)"},{"line_number":58,"context_line":"        for resource in self.supported_quotas:"},{"line_number":59,"context_line":"            if resource in quota_set:"},{"line_number":60,"context_line":"                result[resource] \u003d quota_set[resource]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f231b9d_87b0a6df","line":57,"in_reply_to":"7f231b9d_620d7be7","updated":"2017-06-20 07:05:30.000000000","message":"oh, it is set during init only. nice catch thanks.","commit_id":"d38e396c7f126172d5bcd3fa4b6cc6a98de21bdb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"69f9022b411d64d6dafaff6691cb017378362314","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    supported_quotas \u003d []"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self, **kwargs):"},{"line_number":43,"context_line":"        self.supported_quotas \u003d QUOTAS.resources"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _format_quota_set(self, quota_class, quota_set, req):"},{"line_number":46,"context_line":"        \"\"\"Convert the quota object to a result dict.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_5b0dc03c","line":43,"range":{"start_line":43,"start_character":32,"end_line":43,"end_character":48},"updated":"2017-06-21 09:52:03.000000000","message":"I feel we should use a hard-copy of all the quota keys in the API code. If there is any new quota added to the QUOTAS.resources, that will leak to the API without microversion directly.\n\nWe have same problem with QuotaSet API. It is ok we have separate patch to refactor the code.","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d64c221adc0abf42a87a2e840e19288227cf0403","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    supported_quotas \u003d []"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self, **kwargs):"},{"line_number":43,"context_line":"        self.supported_quotas \u003d QUOTAS.resources"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _format_quota_set(self, quota_class, quota_set, req):"},{"line_number":46,"context_line":"        \"\"\"Convert the quota object to a result dict.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_ff7d93e7","line":43,"range":{"start_line":43,"start_character":32,"end_line":43,"end_character":48},"in_reply_to":"5f201791_5b0dc03c","updated":"2017-06-21 11:57:06.000000000","message":"+1.","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"34ed980dd35500696a07db02783a50a7c7a8a52f","unresolved":false,"context_lines":[{"line_number":31,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# NOTE(gmann): Quotas which were returned in v2 but in v2.1 those"},{"line_number":34,"context_line":"# were not returned. Fixed in microversion 2.50"},{"line_number":35,"context_line":"EXTENDED_QUOTAS \u003d [\u0027server_groups\u0027, \u0027server_group_members\u0027]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"FILTERED_QUOTAS \u003d [\"fixed_ips\", \"floating_ips\", \"networks\","}],"source_content_type":"text/x-python","patch_set":9,"id":"3f1d235d_adefe7e7","line":34,"updated":"2017-07-10 13:33:40.000000000","message":"we better to reference the bug number at here.","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bf8b8594e3dc5b632c8c4ea9f0a54925c66871e2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"QUOTAS \u003d quota.QUOTAS"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# NOTE(gmann): Quotas which were returned in v2 but in v2.1 those"},{"line_number":34,"context_line":"# were not returned. Fixed in microversion 2.50"},{"line_number":35,"context_line":"EXTENDED_QUOTAS \u003d [\u0027server_groups\u0027, \u0027server_group_members\u0027]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"FILTERED_QUOTAS \u003d [\"fixed_ips\", \"floating_ips\", \"networks\","}],"source_content_type":"text/x-python","patch_set":9,"id":"3f1d235d_f0f8127d","line":34,"in_reply_to":"3f1d235d_adefe7e7","updated":"2017-07-10 14:05:17.000000000","message":"Done","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"34ed980dd35500696a07db02783a50a7c7a8a52f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"# were not returned. Fixed in microversion 2.50"},{"line_number":35,"context_line":"EXTENDED_QUOTAS \u003d [\u0027server_groups\u0027, \u0027server_group_members\u0027]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"FILTERED_QUOTAS \u003d [\"fixed_ips\", \"floating_ips\", \"networks\","},{"line_number":38,"context_line":"                   \"security_group_rules\", \"security_groups\"]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f1d235d_cde22302","line":37,"updated":"2017-07-10 13:33:40.000000000","message":"Add a note to those quotas, just like the note at line 33.","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bf8b8594e3dc5b632c8c4ea9f0a54925c66871e2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"# were not returned. Fixed in microversion 2.50"},{"line_number":35,"context_line":"EXTENDED_QUOTAS \u003d [\u0027server_groups\u0027, \u0027server_group_members\u0027]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"FILTERED_QUOTAS \u003d [\"fixed_ips\", \"floating_ips\", \"networks\","},{"line_number":38,"context_line":"                   \"security_group_rules\", \"security_groups\"]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f1d235d_5099061d","line":37,"in_reply_to":"3f1d235d_cde22302","updated":"2017-07-10 14:05:17.000000000","message":"Done","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"}],"nova/api/openstack/compute/rest_api_version_history.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a4af6b9f7955aa17a5405ebb1f8c0f28ab9eb70","unresolved":false,"context_lines":[{"line_number":586,"context_line":""},{"line_number":587,"context_line":"  The ``server_groups`` and ``server_group_members`` keys are exposed in GET \u0026 PUT"},{"line_number":588,"context_line":"  ``os-quota-class-sets`` APIs Response body."},{"line_number":589,"context_line":"  Networks related quotas have been filtered out from os-quota-class. Below quotas"},{"line_number":590,"context_line":"  are filtered out and not available in ``os-quota-class-sets`` APIs from this"},{"line_number":591,"context_line":"  microversion onwards."},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"  - \"fixed_ips\""},{"line_number":594,"context_line":"  - \"floating_ips\""},{"line_number":595,"context_line":"  - \"networks\","},{"line_number":596,"context_line":"  - \"security_group_rules\""},{"line_number":597,"context_line":"  - \"security_groups\""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1f1a1f67_54a918dd","line":597,"range":{"start_line":589,"start_character":70,"end_line":597,"end_character":21},"updated":"2017-07-12 17:17:10.000000000","message":"Shouldn\u0027t these fields be marked with max_version: 2.50 in the API reference then?\n\nhttps://developer.openstack.org/api-ref/compute/?expanded\u003dshow-the-quota-for-quota-class-detail,create-or-update-quotas-for-quota-class-detail","commit_id":"92e0efeefd6782f205dc6a2b1f8e8a97f146596d"}],"nova/tests/unit/api/openstack/compute/test_quota_classes.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a3dbc41d635e02d422d244462e1137251d53ffa","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                       \u0027server_group_members\u0027: 10}"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _check_server_groups_quota(self, quota_set):"},{"line_number":142,"context_line":"        self.assertEqual(quota_set[\u0027server_groups\u0027], 10)"},{"line_number":143,"context_line":"        self.assertEqual(quota_set[\u0027server_group_members\u0027], 10)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_456dd196","line":142,"range":{"start_line":142,"start_character":25,"end_line":142,"end_character":56},"updated":"2017-06-21 14:43:40.000000000","message":"nit: reverse the order of these arguments, should be (expected, actual)","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"34ed980dd35500696a07db02783a50a7c7a8a52f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                       \u0027injected_file_content_bytes\u0027: 10240,"},{"line_number":34,"context_line":"                       \u0027security_groups\u0027: 10,"},{"line_number":35,"context_line":"                       \u0027security_group_rules\u0027: 20, \u0027key_pairs\u0027: 100,"},{"line_number":36,"context_line":"                       \u0027injected_file_path_bytes\u0027: 255}"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def quota_set(self, class_name):"},{"line_number":39,"context_line":"        quotas \u003d copy.deepcopy(self.quota_resources)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f1d235d_90467e4f","line":36,"updated":"2017-07-10 13:33:40.000000000","message":"The input of 2.1 API supports \u0027server_groups\u0027 and \u0027server_group_members\u0027","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bf8b8594e3dc5b632c8c4ea9f0a54925c66871e2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                       \u0027injected_file_content_bytes\u0027: 10240,"},{"line_number":34,"context_line":"                       \u0027security_groups\u0027: 10,"},{"line_number":35,"context_line":"                       \u0027security_group_rules\u0027: 20, \u0027key_pairs\u0027: 100,"},{"line_number":36,"context_line":"                       \u0027injected_file_path_bytes\u0027: 255}"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def quota_set(self, class_name):"},{"line_number":39,"context_line":"        quotas \u003d copy.deepcopy(self.quota_resources)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f1d235d_1326f8b8","line":36,"in_reply_to":"3f1d235d_90467e4f","updated":"2017-07-10 14:05:17.000000000","message":"yea, ll add request body separately for test test_quotas_update","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"}],"releasenotes/notes/add-server-groups-keys-in-quota-class-set-response-4a91ef4b2683e31c.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a3dbc41d635e02d422d244462e1137251d53ffa","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix bug#1693168 in v2.1 API which does not return the \u0027server_groups\u0027 and \u0027server_group_members\u0027"},{"line_number":5,"context_line":"    quotas in GET \u0026 PUT os-quota-class-sets API response. v2 API used to return those keys in API"},{"line_number":6,"context_line":"    response."},{"line_number":7,"context_line":"    Microversion 2.49 restored that behavior in v2.1 APIs. In v2.49, the ``server_groups`` and"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f201791_a513850d","line":4,"range":{"start_line":4,"start_character":8,"end_line":4,"end_character":11},"updated":"2017-06-21 14:43:40.000000000","message":"put a space after \u0027bug\u0027","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a3dbc41d635e02d422d244462e1137251d53ffa","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Fix bug#1693168 in v2.1 API which does not return the \u0027server_groups\u0027 and \u0027server_group_members\u0027"},{"line_number":5,"context_line":"    quotas in GET \u0026 PUT os-quota-class-sets API response. v2 API used to return those keys in API"},{"line_number":6,"context_line":"    response."},{"line_number":7,"context_line":"    Microversion 2.49 restored that behavior in v2.1 APIs. In v2.49, the ``server_groups`` and"},{"line_number":8,"context_line":"    ``server_group_members`` keys are exposed in GET \u0026 PUT ``os-quota-class-sets`` APIs Response"},{"line_number":9,"context_line":"    body."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f201791_45c95176","line":7,"range":{"start_line":7,"start_character":48,"end_line":7,"end_character":57},"updated":"2017-06-21 14:43:40.000000000","message":"This is a bit confusing. I know you mean the set of microversions 2.1 through 2.48 have the bug, and it\u0027s fixed in 2.49. I\u0027d probably just remove \"in v2.1 APIs.\" so this would read:\n\n\"Microversion 2.49 restored that behavior.\" - That removes any ambiguity.","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b8c6cf9b44e548c1b3ab7dd667c5e3b6de6b65d3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix bug#1693168 in v2.1 API which does not return the \u0027server_groups\u0027 and \u0027server_group_members\u0027"},{"line_number":5,"context_line":"    quotas in GET \u0026 PUT os-quota-class-sets API response. v2 API used to return those keys in API"},{"line_number":6,"context_line":"    response."},{"line_number":7,"context_line":"    Microversion 2.49 restored that behavior in v2.1 APIs. In v2.49, the ``server_groups`` and"},{"line_number":8,"context_line":"    ``server_group_members`` keys are exposed in GET \u0026 PUT ``os-quota-class-sets`` APIs Response"},{"line_number":9,"context_line":"    body."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f201791_33622440","line":9,"range":{"start_line":4,"start_character":0,"end_line":9,"end_character":9},"updated":"2017-06-21 13:39:31.000000000","message":"Shouldn\u0027t this be wrapped at \u003c\u003d 79 chars?","commit_id":"daa1bebe5d113a7e1530347dd6a0cd0486d555cd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"34ed980dd35500696a07db02783a50a7c7a8a52f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Fix bug 1693168. v2.1 API which does not return the ``server_groups`` and"},{"line_number":5,"context_line":"    ``server_group_members`` quotas in GET and PUT ``os-quota-class-sets`` API"},{"line_number":6,"context_line":"    response. v2 API used to return those keys in the API response."},{"line_number":7,"context_line":"    Microversion 2.50 restored that behavior. In v2.50, the ``server_groups``"},{"line_number":8,"context_line":"    and ``server_group_members`` keys are exposed in GET and PUT"},{"line_number":9,"context_line":"    ``os-quota-class-sets`` APIs Response body."},{"line_number":10,"context_line":"    Fix bug 1701211. Network related quotas are filtered out of ``os-quota-class-sets``"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3f1d235d_502c6698","line":7,"range":{"start_line":7,"start_character":49,"end_line":7,"end_character":54},"updated":"2017-07-10 13:33:40.000000000","message":"nit, s/v2.50/microversion 2.50/, otherwise v2.50 confuses with v2.1","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bf8b8594e3dc5b632c8c4ea9f0a54925c66871e2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Fix bug 1693168. v2.1 API which does not return the ``server_groups`` and"},{"line_number":5,"context_line":"    ``server_group_members`` quotas in GET and PUT ``os-quota-class-sets`` API"},{"line_number":6,"context_line":"    response. v2 API used to return those keys in the API response."},{"line_number":7,"context_line":"    Microversion 2.50 restored that behavior. In v2.50, the ``server_groups``"},{"line_number":8,"context_line":"    and ``server_group_members`` keys are exposed in GET and PUT"},{"line_number":9,"context_line":"    ``os-quota-class-sets`` APIs Response body."},{"line_number":10,"context_line":"    Fix bug 1701211. Network related quotas are filtered out of ``os-quota-class-sets``"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3f1d235d_f33ffcb2","line":7,"range":{"start_line":7,"start_character":49,"end_line":7,"end_character":54},"in_reply_to":"3f1d235d_502c6698","updated":"2017-07-10 14:05:17.000000000","message":"Done","commit_id":"17f0cec5ee666bd7768f2ebe3df5a58ae944b6f8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"48bb8c12a61b0d97419213ef83f7e7fdf2066e7d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix bug 1693168. v2.1 API which does not return the ``server_groups`` and"},{"line_number":5,"context_line":"    ``server_group_members`` quotas in GET and PUT ``os-quota-class-sets`` API"},{"line_number":6,"context_line":"    response. v2 API used to return those keys in the API response."},{"line_number":7,"context_line":"    Microversion 2.50 restored that behavior. In microversion 2.50, the"},{"line_number":8,"context_line":"    ``server_groups`` and ``server_group_members`` keys are exposed in"},{"line_number":9,"context_line":"    GET and PUT ``os-quota-class-sets`` APIs Response body."},{"line_number":10,"context_line":"    Fix bug 1701211. Network related quotas are filtered out of"},{"line_number":11,"context_line":"    ``os-quota-class-sets`` APIs and not available from microversion"},{"line_number":12,"context_line":"    2.50 onwards."},{"line_number":13,"context_line":"    Filtered quotas are:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    - \u0027fixed_ips\u0027"},{"line_number":16,"context_line":"    - \u0027floating ips\u0027"},{"line_number":17,"context_line":"    - \u0027security_groups\u0027"},{"line_number":18,"context_line":"    - \u0027security_group_rules\u0027"},{"line_number":19,"context_line":"    - \u0027networks\u0027"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1f1a1f67_f92dbda8","line":19,"range":{"start_line":4,"start_character":4,"end_line":19,"end_character":16},"updated":"2017-07-12 17:10:54.000000000","message":"Sorry but this is hard for me to understand clearly. I\u0027m trying to work on the python-novaclient changes for this microversion. I think what this essentially means is:\n\nIn the 2.50 microversion, the following fields are added to the ``GET /os-quota-class-sets/{id}`` and ``PUT /os-quota-class-sets/{id}`` API response:\n\n- ``server_groups``\n- ``server_group_members``\n\nAnd the following fields are removed from the same APIs in the same microversion:\n\n- \u0027fixed_ips\u0027\n- \u0027floating ips\u0027\n- \u0027security_groups\u0027\n- \u0027security_group_rules\u0027\n- \u0027networks\u0027\n\n--\n\nIf that\u0027s correct, I think we should redo this release note and no mention all of the stuff about the history and the bugs, and just be clear about what the change is for this microversion.","commit_id":"92e0efeefd6782f205dc6a2b1f8e8a97f146596d"}]}
