)]}'
{"neutronclient/neutron/v2_0/quota.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f92f6f7c45921f25862738d894d144ac70acb2ab","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def get_parser(self, prog_name):"},{"line_number":100,"context_line":"        parser \u003d super(ShowQuota, self).get_parser(prog_name)"},{"line_number":101,"context_line":"        parser.add_argument("},{"line_number":102,"context_line":"            \u0027--tenant-id\u0027, metavar\u003d\u0027tenant-id\u0027,"},{"line_number":103,"context_line":"            help\u003d_(\u0027The owner tenant ID.\u0027))"},{"line_number":104,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_b79950d3","line":101,"updated":"2016-05-12 07:45:01.000000000","message":"How about adding a flag to show default rather providing a separate CLI?","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61840748284209fe3acc4423e4b4e511e756660c","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def get_parser(self, prog_name):"},{"line_number":100,"context_line":"        parser \u003d super(ShowQuota, self).get_parser(prog_name)"},{"line_number":101,"context_line":"        parser.add_argument("},{"line_number":102,"context_line":"            \u0027--tenant-id\u0027, metavar\u003d\u0027tenant-id\u0027,"},{"line_number":103,"context_line":"            help\u003d_(\u0027The owner tenant ID.\u0027))"},{"line_number":104,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_f4cfc97c","line":101,"in_reply_to":"dab17558_b79950d3","updated":"2016-05-16 08:49:14.000000000","message":"+1, basically a different option (--default)","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"76c54d095a58100510f3c75087bcef2318048273","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def get_parser(self, prog_name):"},{"line_number":100,"context_line":"        parser \u003d super(ShowQuota, self).get_parser(prog_name)"},{"line_number":101,"context_line":"        parser.add_argument("},{"line_number":102,"context_line":"            \u0027--tenant-id\u0027, metavar\u003d\u0027tenant-id\u0027,"},{"line_number":103,"context_line":"            help\u003d_(\u0027The owner tenant ID.\u0027))"},{"line_number":104,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_9fe8e3b4","line":101,"in_reply_to":"dab17558_f4cfc97c","updated":"2016-05-17 03:37:18.000000000","message":"Other projects like nova and cinder do this way.. Hence, IMO we also got to follow the same approach ;)","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f92f6f7c45921f25862738d894d144ac70acb2ab","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            \u0027--tenant-id\u0027, metavar\u003d\u0027tenant-id\u0027,"},{"line_number":151,"context_line":"            help\u003d_(\u0027The owner tenant ID.\u0027))"},{"line_number":152,"context_line":"        parser.add_argument("},{"line_number":153,"context_line":"            \u0027--tenant_id\u0027,"},{"line_number":154,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":155,"context_line":"        parser.add_argument("},{"line_number":156,"context_line":"            \u0027pos_tenant_id\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_d4b9727b","line":153,"updated":"2016-05-12 07:45:01.000000000","message":"Do we really need this?? AFAIK, we don\u0027t require suppress options for a new command..","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"c5afb1226afdeba480cc6395af091aa87367e979","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            \u0027--tenant-id\u0027, metavar\u003d\u0027tenant-id\u0027,"},{"line_number":151,"context_line":"            help\u003d_(\u0027The owner tenant ID.\u0027))"},{"line_number":152,"context_line":"        parser.add_argument("},{"line_number":153,"context_line":"            \u0027--tenant_id\u0027,"},{"line_number":154,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":155,"context_line":"        parser.add_argument("},{"line_number":156,"context_line":"            \u0027pos_tenant_id\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_a3dddee1","line":153,"in_reply_to":"dab17558_3474b134","updated":"2016-05-20 22:50:15.000000000","message":"Done","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61840748284209fe3acc4423e4b4e511e756660c","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            \u0027--tenant-id\u0027, metavar\u003d\u0027tenant-id\u0027,"},{"line_number":151,"context_line":"            help\u003d_(\u0027The owner tenant ID.\u0027))"},{"line_number":152,"context_line":"        parser.add_argument("},{"line_number":153,"context_line":"            \u0027--tenant_id\u0027,"},{"line_number":154,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":155,"context_line":"        parser.add_argument("},{"line_number":156,"context_line":"            \u0027pos_tenant_id\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_3474b134","line":153,"in_reply_to":"dab17558_d4b9727b","updated":"2016-05-16 08:49:14.000000000","message":"tenant_id is not required to be supported.\n--tenant-id should be enough. It wou;ld be better if you can remove this option.","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f92f6f7c45921f25862738d894d144ac70acb2ab","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            \u0027--tenant_id\u0027,"},{"line_number":154,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":155,"context_line":"        parser.add_argument("},{"line_number":156,"context_line":"            \u0027pos_tenant_id\u0027,"},{"line_number":157,"context_line":"            help\u003dargparse.SUPPRESS, nargs\u003d\u0027?\u0027)"},{"line_number":158,"context_line":"        return parser"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_9466ca27","line":156,"updated":"2016-05-12 07:45:01.000000000","message":"ditto","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"5f98bdc5235894bd84e0acbd1f3d9e32893b836d","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            \u0027--tenant_id\u0027,"},{"line_number":154,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":155,"context_line":"        parser.add_argument("},{"line_number":156,"context_line":"            \u0027pos_tenant_id\u0027,"},{"line_number":157,"context_line":"            help\u003dargparse.SUPPRESS, nargs\u003d\u0027?\u0027)"},{"line_number":158,"context_line":"        return parser"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_ed1ea50a","line":156,"in_reply_to":"bab6814e_039caa0d","updated":"2016-05-22 04:07:46.000000000","message":"I think we can modify \u0027def get_tenant_id(args, client):\u0027 for getting our scenario to work..","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"776a2c6dbeb3ddce671668e900b24b7cbf11ced6","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            \u0027--tenant_id\u0027,"},{"line_number":154,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":155,"context_line":"        parser.add_argument("},{"line_number":156,"context_line":"            \u0027pos_tenant_id\u0027,"},{"line_number":157,"context_line":"            help\u003dargparse.SUPPRESS, nargs\u003d\u0027?\u0027)"},{"line_number":158,"context_line":"        return parser"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_8f894ecd","line":156,"in_reply_to":"bab6814e_ed1ea50a","updated":"2016-05-25 00:32:51.000000000","message":"looks like thats not the only issue... i get \u0027Namespace\u0027 object has no attribute \u0027pos_tenant_id\u0027 if i remove this arg. Not sure where its coming from","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"c5afb1226afdeba480cc6395af091aa87367e979","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            \u0027--tenant_id\u0027,"},{"line_number":154,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":155,"context_line":"        parser.add_argument("},{"line_number":156,"context_line":"            \u0027pos_tenant_id\u0027,"},{"line_number":157,"context_line":"            help\u003dargparse.SUPPRESS, nargs\u003d\u0027?\u0027)"},{"line_number":158,"context_line":"        return parser"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_039caa0d","line":156,"in_reply_to":"dab17558_9466ca27","updated":"2016-05-20 22:50:15.000000000","message":"If i dont include this L33 complains. So I included this argument the way it is defined in L110","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61840748284209fe3acc4423e4b4e511e756660c","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":155,"context_line":"        parser.add_argument("},{"line_number":156,"context_line":"            \u0027pos_tenant_id\u0027,"},{"line_number":157,"context_line":"            help\u003dargparse.SUPPRESS, nargs\u003d\u0027?\u0027)"},{"line_number":158,"context_line":"        return parser"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_b496e13b","line":157,"updated":"2016-05-16 08:49:14.000000000","message":"better not to use nargs!","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f92f6f7c45921f25862738d894d144ac70acb2ab","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        tenant_id \u003d get_tenant_id(parsed_args, neutron_client)"},{"line_number":163,"context_line":"        params \u003d {}"},{"line_number":164,"context_line":"        data \u003d neutron_client.show_quota_default(tenant_id, **params)"},{"line_number":165,"context_line":"        if self.resource in data:"},{"line_number":166,"context_line":"            for k, v in six.iteritems(data[self.resource]):"},{"line_number":167,"context_line":"                if isinstance(v, list):"},{"line_number":168,"context_line":"                    value \u003d \"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_7761a8d3","line":165,"updated":"2016-05-12 07:45:01.000000000","message":"L122-L138 can be made to a common function to avoid code duplicacy.","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"c5afb1226afdeba480cc6395af091aa87367e979","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        tenant_id \u003d get_tenant_id(parsed_args, neutron_client)"},{"line_number":163,"context_line":"        params \u003d {}"},{"line_number":164,"context_line":"        data \u003d neutron_client.show_quota_default(tenant_id, **params)"},{"line_number":165,"context_line":"        if self.resource in data:"},{"line_number":166,"context_line":"            for k, v in six.iteritems(data[self.resource]):"},{"line_number":167,"context_line":"                if isinstance(v, list):"},{"line_number":168,"context_line":"                    value \u003d \"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_43a2324c","line":165,"in_reply_to":"dab17558_54bcd5ba","updated":"2016-05-20 22:50:15.000000000","message":"Done","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61840748284209fe3acc4423e4b4e511e756660c","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        tenant_id \u003d get_tenant_id(parsed_args, neutron_client)"},{"line_number":163,"context_line":"        params \u003d {}"},{"line_number":164,"context_line":"        data \u003d neutron_client.show_quota_default(tenant_id, **params)"},{"line_number":165,"context_line":"        if self.resource in data:"},{"line_number":166,"context_line":"            for k, v in six.iteritems(data[self.resource]):"},{"line_number":167,"context_line":"                if isinstance(v, list):"},{"line_number":168,"context_line":"                    value \u003d \"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_54bcd5ba","line":165,"in_reply_to":"dab17558_7761a8d3","updated":"2016-05-16 08:49:14.000000000","message":"agreed...","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"310dea7acf8a37a64f44213663dc2a901de930c7","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            client.get_quotas_tenant()[\u0027tenant\u0027][\u0027tenant_id\u0027])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def output_data(resource, data):"},{"line_number":38,"context_line":"    if resource in data:"},{"line_number":39,"context_line":"        for k, v in six.iteritems(data[resource]):"},{"line_number":40,"context_line":"            if isinstance(v, list):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_4d0371b8","line":37,"updated":"2016-05-22 04:07:23.000000000","message":"How about renaming this to \u0027format_data\u0027?","commit_id":"6ab36352b61fece80bd260c37ff982317d9e7331"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"05196394beec5f3325b9b194ef33fdbab95feef7","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            client.get_quotas_tenant()[\u0027tenant\u0027][\u0027tenant_id\u0027])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def output_data(resource, data):"},{"line_number":38,"context_line":"    if resource in data:"},{"line_number":39,"context_line":"        for k, v in six.iteritems(data[resource]):"},{"line_number":40,"context_line":"            if isinstance(v, list):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_cf9356f9","line":37,"in_reply_to":"bab6814e_4d0371b8","updated":"2016-05-25 00:32:40.000000000","message":"Done","commit_id":"6ab36352b61fece80bd260c37ff982317d9e7331"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8c5e6057abd6be22dfa3a791bb389a21a2a35cdf","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def format_data(resource, data):"},{"line_number":38,"context_line":"    if resource in data:"},{"line_number":39,"context_line":"        for k, v in six.iteritems(data[resource]):"},{"line_number":40,"context_line":"            if isinstance(v, list):"},{"line_number":41,"context_line":"                value \u003d \"\""},{"line_number":42,"context_line":"                for _item in v:"},{"line_number":43,"context_line":"                    if value:"},{"line_number":44,"context_line":"                        value +\u003d \"\\n\""},{"line_number":45,"context_line":"                    if isinstance(_item, dict):"},{"line_number":46,"context_line":"                        value +\u003d jsonutils.dumps(_item)"},{"line_number":47,"context_line":"                    else:"},{"line_number":48,"context_line":"                        value +\u003d str(_item)"},{"line_number":49,"context_line":"                data[resource][k] \u003d value"},{"line_number":50,"context_line":"            elif v is None:"},{"line_number":51,"context_line":"                data[resource][k] \u003d \u0027\u0027"},{"line_number":52,"context_line":"        return zip(*sorted(six.iteritems(data[resource])))"},{"line_number":53,"context_line":"    else:"},{"line_number":54,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_b918d876","line":51,"range":{"start_line":39,"start_character":8,"end_line":51,"end_character":38},"updated":"2016-05-25 03:28:29.000000000","message":"This method is not a generic method. It is specific to quota-show.\nIs there a case where L.39-51 is required?\nIf not, this method would be much simpler.","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"7c45608463b879b5df11d3c2d70d83a1cb896b9e","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def format_data(resource, data):"},{"line_number":38,"context_line":"    if resource in data:"},{"line_number":39,"context_line":"        for k, v in six.iteritems(data[resource]):"},{"line_number":40,"context_line":"            if isinstance(v, list):"},{"line_number":41,"context_line":"                value \u003d \"\""},{"line_number":42,"context_line":"                for _item in v:"},{"line_number":43,"context_line":"                    if value:"},{"line_number":44,"context_line":"                        value +\u003d \"\\n\""},{"line_number":45,"context_line":"                    if isinstance(_item, dict):"},{"line_number":46,"context_line":"                        value +\u003d jsonutils.dumps(_item)"},{"line_number":47,"context_line":"                    else:"},{"line_number":48,"context_line":"                        value +\u003d str(_item)"},{"line_number":49,"context_line":"                data[resource][k] \u003d value"},{"line_number":50,"context_line":"            elif v is None:"},{"line_number":51,"context_line":"                data[resource][k] \u003d \u0027\u0027"},{"line_number":52,"context_line":"        return zip(*sorted(six.iteritems(data[resource])))"},{"line_number":53,"context_line":"    else:"},{"line_number":54,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_7a5aa9f3","line":51,"range":{"start_line":39,"start_character":8,"end_line":51,"end_character":38},"in_reply_to":"bab6814e_b918d876","updated":"2016-05-25 23:03:07.000000000","message":"This was mostly a leftover code which i moved around. I dont see a reason why these lines cant go. Done. Thanks","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8c5e6057abd6be22dfa3a791bb389a21a2a35cdf","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        params \u003d {}"},{"line_number":139,"context_line":"        obj_shower \u003d getattr(neutron_client,"},{"line_number":140,"context_line":"                             \"show_%s\" % self.resource)"},{"line_number":141,"context_line":"        data \u003d obj_shower(tenant_id, **params)"},{"line_number":142,"context_line":"        return format_data(self.resource, data)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_793cb0bf","line":141,"range":{"start_line":141,"start_character":15,"end_line":141,"end_character":46},"updated":"2016-05-25 03:28:29.000000000","message":"params is an empty dict, so this equals to:\n\n  obj_shower(tenant_id)","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"7c45608463b879b5df11d3c2d70d83a1cb896b9e","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        params \u003d {}"},{"line_number":139,"context_line":"        obj_shower \u003d getattr(neutron_client,"},{"line_number":140,"context_line":"                             \"show_%s\" % self.resource)"},{"line_number":141,"context_line":"        data \u003d obj_shower(tenant_id, **params)"},{"line_number":142,"context_line":"        return format_data(self.resource, data)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_a0cfca54","line":141,"range":{"start_line":141,"start_character":15,"end_line":141,"end_character":46},"in_reply_to":"bab6814e_793cb0bf","updated":"2016-05-25 23:03:07.000000000","message":"Done","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8c5e6057abd6be22dfa3a791bb389a21a2a35cdf","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        return format_data(self.resource, data)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class ShowQuotaDefault(neutronV20.NeutronCommand, show.ShowOne):"},{"line_number":146,"context_line":"    \"\"\"Show default quotas for a given tenant."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_99e7d411","line":145,"updated":"2016-05-25 03:28:29.000000000","message":"ShowQuota and Show QuotaDefault are very similar.\nOnly difference is L.146 and L.165.\nCould you prepare a common base class?\n\n  clas QuotaShowBase(....):\n     def get_parser(...):\n\n     @abstractmethod\n     def retrieve_data(...)\n\n     def take_action(...):\n         ....\n         data \u003d self.retrieve_data(tenant_id)\n         return format_data(self.resource, data)\n\n  class ShowQuota(ShowQuotaBase):\n     def retrieve_data(..):\n         return neutron_client.show_quota(tenant_id)\n\n  class ShowQuotaDefault(ShowQuotaBase):\n     def retrieve_data(..):\n         return neutron_client.show_quota_default(tenant_id)","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"7c45608463b879b5df11d3c2d70d83a1cb896b9e","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        return format_data(self.resource, data)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class ShowQuotaDefault(neutronV20.NeutronCommand, show.ShowOne):"},{"line_number":146,"context_line":"    \"\"\"Show default quotas for a given tenant."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_55de9611","line":145,"in_reply_to":"bab6814e_99e7d411","updated":"2016-05-25 23:03:07.000000000","message":"Done","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8c5e6057abd6be22dfa3a791bb389a21a2a35cdf","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class ShowQuotaDefault(neutronV20.NeutronCommand, show.ShowOne):"},{"line_number":146,"context_line":"    \"\"\"Show default quotas for a given tenant."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    \"\"\""},{"line_number":149,"context_line":"    resource \u003d \"quota\""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_f99d40bc","line":148,"range":{"start_line":146,"start_character":4,"end_line":148,"end_character":7},"updated":"2016-05-25 03:28:29.000000000","message":"This should be a oneline docstring.","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"7c45608463b879b5df11d3c2d70d83a1cb896b9e","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class ShowQuotaDefault(neutronV20.NeutronCommand, show.ShowOne):"},{"line_number":146,"context_line":"    \"\"\"Show default quotas for a given tenant."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    \"\"\""},{"line_number":149,"context_line":"    resource \u003d \"quota\""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_20311a5b","line":148,"range":{"start_line":146,"start_character":4,"end_line":148,"end_character":7},"in_reply_to":"bab6814e_f99d40bc","updated":"2016-05-25 23:03:07.000000000","message":"Done","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8c5e6057abd6be22dfa3a791bb389a21a2a35cdf","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        parser.add_argument("},{"line_number":154,"context_line":"            \u0027--tenant-id\u0027, metavar\u003d\u0027tenant-id\u0027,"},{"line_number":155,"context_line":"            help\u003d_(\u0027The owner tenant ID.\u0027))"},{"line_number":156,"context_line":"        parser.add_argument("},{"line_number":157,"context_line":"            \u0027pos_tenant_id\u0027,"},{"line_number":158,"context_line":"            help\u003dargparse.SUPPRESS, nargs\u003d\u0027?\u0027)"},{"line_number":159,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_19d00453","line":156,"updated":"2016-05-25 03:28:29.000000000","message":"L.127-129 should be here too.","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"7c45608463b879b5df11d3c2d70d83a1cb896b9e","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        parser.add_argument("},{"line_number":154,"context_line":"            \u0027--tenant-id\u0027, metavar\u003d\u0027tenant-id\u0027,"},{"line_number":155,"context_line":"            help\u003d_(\u0027The owner tenant ID.\u0027))"},{"line_number":156,"context_line":"        parser.add_argument("},{"line_number":157,"context_line":"            \u0027pos_tenant_id\u0027,"},{"line_number":158,"context_line":"            help\u003dargparse.SUPPRESS, nargs\u003d\u0027?\u0027)"},{"line_number":159,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_8032865c","line":156,"in_reply_to":"bab6814e_19d00453","updated":"2016-05-25 23:03:07.000000000","message":"Done","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8c5e6057abd6be22dfa3a791bb389a21a2a35cdf","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        neutron_client \u003d self.get_client()"},{"line_number":163,"context_line":"        tenant_id \u003d get_tenant_id(parsed_args, neutron_client)"},{"line_number":164,"context_line":"        params \u003d {}"},{"line_number":165,"context_line":"        data \u003d neutron_client.show_quota_default(tenant_id, **params)"},{"line_number":166,"context_line":"        return format_data(self.resource, data)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_996874bc","line":165,"range":{"start_line":165,"start_character":15,"end_line":165,"end_character":69},"updated":"2016-05-25 03:28:29.000000000","message":"See my comment for L.141.","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"7c45608463b879b5df11d3c2d70d83a1cb896b9e","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        neutron_client \u003d self.get_client()"},{"line_number":163,"context_line":"        tenant_id \u003d get_tenant_id(parsed_args, neutron_client)"},{"line_number":164,"context_line":"        params \u003d {}"},{"line_number":165,"context_line":"        data \u003d neutron_client.show_quota_default(tenant_id, **params)"},{"line_number":166,"context_line":"        return format_data(self.resource, data)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_6037a24d","line":165,"range":{"start_line":165,"start_character":15,"end_line":165,"end_character":69},"in_reply_to":"bab6814e_996874bc","updated":"2016-05-25 23:03:07.000000000","message":"Done","commit_id":"11695ca502390705df5c9b6d7c9d86c0222dabf2"}],"neutronclient/shell.py":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"ed70c2cd513b86375c276ea6265e6724862a5253","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027purge\u0027: purge.Purge,"},{"line_number":182,"context_line":"    \u0027quota-list\u0027: quota.ListQuota,"},{"line_number":183,"context_line":"    \u0027quota-show\u0027: quota.ShowQuota,"},{"line_number":184,"context_line":"    \u0027quota-defaults\u0027: quota.ShowQuotaDefault,"},{"line_number":185,"context_line":"    \u0027quota-delete\u0027: quota.DeleteQuota,"},{"line_number":186,"context_line":"    \u0027quota-update\u0027: quota.UpdateQuota,"},{"line_number":187,"context_line":"    \u0027ext-list\u0027: extension.ListExt,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_599b3b18","line":184,"range":{"start_line":184,"start_character":5,"end_line":184,"end_character":19},"updated":"2016-05-11 04:03:00.000000000","message":"i prefer \"quota-default-show\" for consistency.","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"8ce44c2fde548f6f4caeb1d45a46f865811b0b7d","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027purge\u0027: purge.Purge,"},{"line_number":182,"context_line":"    \u0027quota-list\u0027: quota.ListQuota,"},{"line_number":183,"context_line":"    \u0027quota-show\u0027: quota.ShowQuota,"},{"line_number":184,"context_line":"    \u0027quota-defaults\u0027: quota.ShowQuotaDefault,"},{"line_number":185,"context_line":"    \u0027quota-delete\u0027: quota.DeleteQuota,"},{"line_number":186,"context_line":"    \u0027quota-update\u0027: quota.UpdateQuota,"},{"line_number":187,"context_line":"    \u0027ext-list\u0027: extension.ListExt,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_9c6d2dcf","line":184,"range":{"start_line":184,"start_character":5,"end_line":184,"end_character":19},"in_reply_to":"dab17558_44f4a386","updated":"2016-05-12 17:49:49.000000000","message":"yeah.. does it makes sense to be consistent with other projects CLI or have the neutron quota-default-show CLI instead?","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"35049fc40182e2e6962accb29b5ab413c4ef51bc","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027purge\u0027: purge.Purge,"},{"line_number":182,"context_line":"    \u0027quota-list\u0027: quota.ListQuota,"},{"line_number":183,"context_line":"    \u0027quota-show\u0027: quota.ShowQuota,"},{"line_number":184,"context_line":"    \u0027quota-defaults\u0027: quota.ShowQuotaDefault,"},{"line_number":185,"context_line":"    \u0027quota-delete\u0027: quota.DeleteQuota,"},{"line_number":186,"context_line":"    \u0027quota-update\u0027: quota.UpdateQuota,"},{"line_number":187,"context_line":"    \u0027ext-list\u0027: extension.ListExt,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_e61a1a7c","line":184,"range":{"start_line":184,"start_character":5,"end_line":184,"end_character":19},"in_reply_to":"dab17558_599b3b18","updated":"2016-05-11 21:13:35.000000000","message":"Let\u0027s get this right.  It may seem like a nit but once merged it is not easy to change.  It should end in -show.","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"7562804534d54b6f5b57009215fbe7ba7ff56136","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027purge\u0027: purge.Purge,"},{"line_number":182,"context_line":"    \u0027quota-list\u0027: quota.ListQuota,"},{"line_number":183,"context_line":"    \u0027quota-show\u0027: quota.ShowQuota,"},{"line_number":184,"context_line":"    \u0027quota-defaults\u0027: quota.ShowQuotaDefault,"},{"line_number":185,"context_line":"    \u0027quota-delete\u0027: quota.DeleteQuota,"},{"line_number":186,"context_line":"    \u0027quota-update\u0027: quota.UpdateQuota,"},{"line_number":187,"context_line":"    \u0027ext-list\u0027: extension.ListExt,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_44f4a386","line":184,"range":{"start_line":184,"start_character":5,"end_line":184,"end_character":19},"in_reply_to":"dab17558_97852c5b","updated":"2016-05-12 11:03:32.000000000","message":"Other modules have the same cmd like \"cinder quota-defaults; nova quota-defaults\"..","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"08aed925336f50aadba6341815b7dd59bca92484","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027purge\u0027: purge.Purge,"},{"line_number":182,"context_line":"    \u0027quota-list\u0027: quota.ListQuota,"},{"line_number":183,"context_line":"    \u0027quota-show\u0027: quota.ShowQuota,"},{"line_number":184,"context_line":"    \u0027quota-defaults\u0027: quota.ShowQuotaDefault,"},{"line_number":185,"context_line":"    \u0027quota-delete\u0027: quota.DeleteQuota,"},{"line_number":186,"context_line":"    \u0027quota-update\u0027: quota.UpdateQuota,"},{"line_number":187,"context_line":"    \u0027ext-list\u0027: extension.ListExt,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_bd6c5809","line":184,"range":{"start_line":184,"start_character":5,"end_line":184,"end_character":19},"in_reply_to":"dab17558_9c6d2dcf","updated":"2016-05-13 05:56:33.000000000","message":"IMO, let\u0027s be consistent with other projects to provide CLI uniformity..","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"d6004271071509b3ec84cf2e34b6d6742cace234","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027purge\u0027: purge.Purge,"},{"line_number":182,"context_line":"    \u0027quota-list\u0027: quota.ListQuota,"},{"line_number":183,"context_line":"    \u0027quota-show\u0027: quota.ShowQuota,"},{"line_number":184,"context_line":"    \u0027quota-defaults\u0027: quota.ShowQuotaDefault,"},{"line_number":185,"context_line":"    \u0027quota-delete\u0027: quota.DeleteQuota,"},{"line_number":186,"context_line":"    \u0027quota-update\u0027: quota.UpdateQuota,"},{"line_number":187,"context_line":"    \u0027ext-list\u0027: extension.ListExt,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_85b636da","line":184,"range":{"start_line":184,"start_character":5,"end_line":184,"end_character":19},"in_reply_to":"dab17558_bd6c5809","updated":"2016-05-13 17:56:16.000000000","message":"@Carl: Do you agree?","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f92f6f7c45921f25862738d894d144ac70acb2ab","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027purge\u0027: purge.Purge,"},{"line_number":182,"context_line":"    \u0027quota-list\u0027: quota.ListQuota,"},{"line_number":183,"context_line":"    \u0027quota-show\u0027: quota.ShowQuota,"},{"line_number":184,"context_line":"    \u0027quota-defaults\u0027: quota.ShowQuotaDefault,"},{"line_number":185,"context_line":"    \u0027quota-delete\u0027: quota.DeleteQuota,"},{"line_number":186,"context_line":"    \u0027quota-update\u0027: quota.UpdateQuota,"},{"line_number":187,"context_line":"    \u0027ext-list\u0027: extension.ListExt,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_97852c5b","line":184,"range":{"start_line":184,"start_character":5,"end_line":184,"end_character":19},"in_reply_to":"dab17558_e61a1a7c","updated":"2016-05-12 07:45:01.000000000","message":"How about providing an option say \u0027default\u0027 in the existing show CLI?","commit_id":"4170beb4c2a9f5c8f9820a068ad46110575bdfca"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"cbb03de58fc820f70828de98f2b88847dbf11c42","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027purge\u0027: purge.Purge,"},{"line_number":182,"context_line":"    \u0027quota-list\u0027: quota.ListQuota,"},{"line_number":183,"context_line":"    \u0027quota-show\u0027: quota.ShowQuota,"},{"line_number":184,"context_line":"    \u0027quota-defaults\u0027: quota.ShowQuotaDefault,"},{"line_number":185,"context_line":"    \u0027quota-delete\u0027: quota.DeleteQuota,"},{"line_number":186,"context_line":"    \u0027quota-update\u0027: quota.UpdateQuota,"},{"line_number":187,"context_line":"    \u0027ext-list\u0027: extension.ListExt,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_5152c467","line":184,"updated":"2016-06-09 05:02:51.000000000","message":"I do not know if this concern has been raised earlier, but I just feel this can be renamed as quota-showdefault\n\nThis is just my feeling :)","commit_id":"8ba6319157cb711013ccdfa76aaf579cc9d054b4"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"9437330336eb6f44cba774528fa0131583b1615b","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027purge\u0027: purge.Purge,"},{"line_number":182,"context_line":"    \u0027quota-list\u0027: quota.ListQuota,"},{"line_number":183,"context_line":"    \u0027quota-show\u0027: quota.ShowQuota,"},{"line_number":184,"context_line":"    \u0027quota-defaults\u0027: quota.ShowQuotaDefault,"},{"line_number":185,"context_line":"    \u0027quota-delete\u0027: quota.DeleteQuota,"},{"line_number":186,"context_line":"    \u0027quota-update\u0027: quota.UpdateQuota,"},{"line_number":187,"context_line":"    \u0027ext-list\u0027: extension.ListExt,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_87853e5b","line":184,"in_reply_to":"7aa08908_5152c467","updated":"2016-07-07 00:07:04.000000000","message":"Done based on popular demand","commit_id":"8ba6319157cb711013ccdfa76aaf579cc9d054b4"}],"releasenotes/notes/add-quota-default-show-c2ab35b791dcdcbc.yaml":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"cbb03de58fc820f70828de98f2b88847dbf11c42","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    CLI support to display the default quota reserved for a tenant."},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    * The ``quota-defaults`` command outputs the default reservation of"},{"line_number":7,"context_line":"      resources for a given tenant."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7aa08908_7128a09a","line":7,"range":{"start_line":6,"start_character":57,"end_line":7,"end_character":14},"updated":"2016-06-09 05:02:51.000000000","message":"Can we possibly rewrite it as default quota of resources ?","commit_id":"8ba6319157cb711013ccdfa76aaf579cc9d054b4"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"9437330336eb6f44cba774528fa0131583b1615b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    CLI support to display the default quota reserved for a tenant."},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    * The ``quota-defaults`` command outputs the default reservation of"},{"line_number":7,"context_line":"      resources for a given tenant."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"1aa78d24_474b5659","line":7,"range":{"start_line":6,"start_character":57,"end_line":7,"end_character":14},"in_reply_to":"7aa08908_7128a09a","updated":"2016-07-07 00:07:04.000000000","message":"Done","commit_id":"8ba6319157cb711013ccdfa76aaf579cc9d054b4"}]}
