)]}'
{"nova/api/openstack/compute/quota_classes.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f2bd6844dbaa01cd8e880b4885b9d44e2f2e9399","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def __init__(self, **kwargs):"},{"line_number":42,"context_line":"        self.supported_quotas \u003d QUOTAS.resources"},{"line_number":43,"context_line":"        for resource, extension in EXTENDED_QUOTAS.items():"},{"line_number":44,"context_line":"            self.supported_quotas.remove(resource)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _format_quota_set(self, quota_class, quota_set):"},{"line_number":47,"context_line":"        \"\"\"Convert the quota object to a result dict.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"1f013ff3_1d601401","line":44,"range":{"start_line":44,"start_character":11,"end_line":44,"end_character":50},"updated":"2017-05-17 07:32:14.000000000","message":"Just a question.\n\u0027server_groups\u0027 and \u0027server_group_members\u0027 are always removed from self.supported_quotas.\nIs it no problem?","commit_id":"58af3530811b719faebb46e4032f7a061ef0baef"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fb941771a69083b9a426838eadb772022dee09ec","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def __init__(self, **kwargs):"},{"line_number":42,"context_line":"        self.supported_quotas \u003d QUOTAS.resources"},{"line_number":43,"context_line":"        for resource, extension in EXTENDED_QUOTAS.items():"},{"line_number":44,"context_line":"            self.supported_quotas.remove(resource)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _format_quota_set(self, quota_class, quota_set):"},{"line_number":47,"context_line":"        \"\"\"Convert the quota object to a result dict.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_98120a09","line":44,"range":{"start_line":44,"start_character":11,"end_line":44,"end_character":50},"in_reply_to":"1f013ff3_1d601401","updated":"2017-05-19 10:39:48.000000000","message":"Yeah, surely this should be the other way around?","commit_id":"58af3530811b719faebb46e4032f7a061ef0baef"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"38ccc7ec605adc512b6dd2be3284ea3f1e3b7490","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def __init__(self, **kwargs):"},{"line_number":42,"context_line":"        self.supported_quotas \u003d QUOTAS.resources"},{"line_number":43,"context_line":"        for resource, extension in EXTENDED_QUOTAS.items():"},{"line_number":44,"context_line":"            self.supported_quotas.remove(resource)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _format_quota_set(self, quota_class, quota_set):"},{"line_number":47,"context_line":"        \"\"\"Convert the quota object to a result dict.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_b029629c","line":44,"range":{"start_line":44,"start_character":11,"end_line":44,"end_character":50},"in_reply_to":"ff0f0b1f_98120a09","updated":"2017-05-19 12:38:10.000000000","message":"I guess it\u0027s because of we need backward compatible\nif we add this (actually I remember I did a PoC before and abandon later) it will introduce some issue","commit_id":"58af3530811b719faebb46e4032f7a061ef0baef"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"9883bd02645dd547d67ee188b505ea3d94e5fe5c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def __init__(self, **kwargs):"},{"line_number":42,"context_line":"        self.supported_quotas \u003d QUOTAS.resources"},{"line_number":43,"context_line":"        for resource, extension in EXTENDED_QUOTAS.items():"},{"line_number":44,"context_line":"            self.supported_quotas.remove(resource)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _format_quota_set(self, quota_class, quota_set):"},{"line_number":47,"context_line":"        \"\"\"Convert the quota object to a result dict.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_532210a6","line":44,"range":{"start_line":44,"start_character":11,"end_line":44,"end_character":50},"in_reply_to":"ff0f0b1f_b029629c","updated":"2017-05-19 12:41:06.000000000","message":"wait a minute, maybe I missed this one to another simliar patch, let me re-think about it","commit_id":"58af3530811b719faebb46e4032f7a061ef0baef"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6b94e43846aab5bce069b55fc8e7d363ec06c442","unresolved":false,"context_lines":[{"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":"        extension_info \u003d kwargs.pop(\u0027extension_info\u0027).get_extensions()"},{"line_number":45,"context_line":"        for resource, extension in EXTENDED_QUOTAS.items():"},{"line_number":46,"context_line":"            if extension not in extension_info:"},{"line_number":47,"context_line":"                self.supported_quotas.remove(resource)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _format_quota_set(self, quota_class, quota_set):"},{"line_number":50,"context_line":"        \"\"\"Convert the quota object to a result dict.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_3e0c86a3","side":"PARENT","line":47,"range":{"start_line":44,"start_character":0,"end_line":47,"end_character":54},"updated":"2017-05-24 10:22:40.000000000","message":"humm, this is issue. This code has introduced the difference between v2 and V2.1 API.\n\n\u0027os-server-group-quotas\u0027 extension was introduced in this -\n  I78974602d4be04deaf173b3e43f2dab92e8f4171 in v2 API. \n\nand if extension \u0027os-server-group-quotas\u0027 was enabled in v2, then \u0027server_groups\u0027 and \u0027server_group_members\u0027 were present in APIs response.\n\nAnd in v2.1 API, there was never such extensions. v2.1 should behave same as v2 with all extensions. But we forgot to remove this code which caused \u0027server_groups\u0027 and \u0027server_group_members\u0027 never showed up in quota class set APIs (GET and PUT) response. \n\nThis is difference between v2 and v2.1 APIs. I have logged bug (https://bugs.launchpad.net/nova/+bug/1693168) for this to get more opinion about fixing this.\nWill discuss in API meeting also.","commit_id":"7280f4fc4c5a2203ac2f59a9df0525488ac2c1ff"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"94b1697f8ac71b92a1848f39bb29aab585c8743c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    supported_quotas \u003d []"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, **kwargs):"},{"line_number":42,"context_line":"        self.supported_quotas \u003d QUOTAS.resources"},{"line_number":43,"context_line":"        for resource, extension in EXTENDED_QUOTAS.items():"},{"line_number":44,"context_line":"            self.supported_quotas.remove(resource)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _format_quota_set(self, quota_class, quota_set):"},{"line_number":47,"context_line":"        \"\"\"Convert the quota object to a result dict.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_6b07c219","line":44,"range":{"start_line":42,"start_character":0,"end_line":44,"end_character":50},"updated":"2017-05-25 09:21:15.000000000","message":"so as of now this is right things as there is no change in behavior of API. \n\nAs discussed in Nova API meeting, we will go with microversion to show server group quotas.","commit_id":"4fef88c86d2db96f028898d2b89e85034380b396"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"386acb3437fa4c1b801eb323dae8eddbbd48b39b","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, **kwargs):"},{"line_number":42,"context_line":"        self.supported_quotas \u003d QUOTAS.resources"},{"line_number":43,"context_line":"        for resource, extension in EXTENDED_QUOTAS.items():"},{"line_number":44,"context_line":"            self.supported_quotas.remove(resource)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _format_quota_set(self, quota_class, quota_set):"},{"line_number":47,"context_line":"        \"\"\"Convert the quota object to a result dict.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f231b9d_ed956d88","line":44,"range":{"start_line":43,"start_character":0,"end_line":44,"end_character":50},"updated":"2017-06-15 11:09:37.000000000","message":"Is there a bug report for the issue on these lines? If so, can you link to it here along with a TODO. If not, can you open one then add notes?","commit_id":"8014b819cd16f5feabca4eb87d779f8e85a40fd5"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"f0909dbea47b5d423a8bbdb3ba4e281c3357eb73","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, **kwargs):"},{"line_number":42,"context_line":"        self.supported_quotas \u003d QUOTAS.resources"},{"line_number":43,"context_line":"        for resource, extension in EXTENDED_QUOTAS.items():"},{"line_number":44,"context_line":"            self.supported_quotas.remove(resource)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _format_quota_set(self, quota_class, quota_set):"},{"line_number":47,"context_line":"        \"\"\"Convert the quota object to a result dict.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f231b9d_0472a57b","line":44,"range":{"start_line":43,"start_character":0,"end_line":44,"end_character":50},"in_reply_to":"7f231b9d_ed956d88","updated":"2017-06-16 06:47:40.000000000","message":"ok, let me add some comments","commit_id":"8014b819cd16f5feabca4eb87d779f8e85a40fd5"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7f602e3981c119a08d1088c48c0955bf637ad86a","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, **kwargs):"},{"line_number":42,"context_line":"        self.supported_quotas \u003d QUOTAS.resources"},{"line_number":43,"context_line":"        # TODO: need fix v2 and v2.1 API difference here"},{"line_number":44,"context_line":"        # see bug 1693168 for more info"},{"line_number":45,"context_line":"        for resource, extension in EXTENDED_QUOTAS.items():"},{"line_number":46,"context_line":"            self.supported_quotas.remove(resource)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f231b9d_27533ce4","line":43,"range":{"start_line":43,"start_character":10,"end_line":43,"end_character":15},"updated":"2017-06-19 03:38:10.000000000","message":"It should be \u0027TODO(jichenjc):\u0027. pep8 fails because of it.","commit_id":"3c0a8b8474b8ea0eec7aee569b1966a7744777a8"}],"nova/api/openstack/compute/routes.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"61ea4493b3b03982428cb4749fd95f9c032e6607","unresolved":false,"context_lines":[{"line_number":195,"context_line":"    simple_tenant_usage.SimpleTenantUsageController, [], [])"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"quota_classes_controller \u003d functools.partial(_create_controller,"},{"line_number":199,"context_line":"    quota_classes.QuotaClassSetsController, [], [])"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"# NOTE(alex_xu): This is structure of this route list as below:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_b58c5ed7","line":199,"range":{"start_line":198,"start_character":0,"end_line":199,"end_character":51},"updated":"2017-05-23 09:40:20.000000000","message":"ditto, sort order","commit_id":"4fef88c86d2db96f028898d2b89e85034380b396"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"61ea4493b3b03982428cb4749fd95f9c032e6607","unresolved":false,"context_lines":[{"line_number":332,"context_line":"    (\u0027/os-simple-tenant-usage/{id}\u0027, {"},{"line_number":333,"context_line":"        \u0027GET\u0027: [simple_tenant_usage_controller, \u0027show\u0027]"},{"line_number":334,"context_line":"    }),"},{"line_number":335,"context_line":"    (\u0027/os-quota-class-sets/{id}\u0027, {"},{"line_number":336,"context_line":"        \u0027GET\u0027: [quota_classes_controller, \u0027show\u0027],"},{"line_number":337,"context_line":"        \u0027PUT\u0027: [quota_classes_controller, \u0027update\u0027]"},{"line_number":338,"context_line":"    }),"},{"line_number":339,"context_line":"    (\u0027/os-volumes_boot\u0027, {"},{"line_number":340,"context_line":"        \u0027GET\u0027: [server_controller, \u0027index\u0027],"},{"line_number":341,"context_line":"        \u0027POST\u0027: [server_controller, \u0027create\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_158aeabd","line":338,"range":{"start_line":335,"start_character":0,"end_line":338,"end_character":7},"updated":"2017-05-23 09:40:20.000000000","message":"need to maintain sort order here.","commit_id":"4fef88c86d2db96f028898d2b89e85034380b396"}]}
