)]}'
{"novaclient/v2/quotas.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"acd4b2225a45dd80853700cca056b03c0335b381","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        return self._get(url, \"quota_set\")"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def update(self, tenant_id, **kwargs):"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        user_id \u003d kwargs.pop(\u0027user_id\u0027, None)"},{"line_number":47,"context_line":"        body \u003d {\u0027quota_set\u0027: kwargs}"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_ddda5b16","side":"PARENT","line":45,"updated":"2016-03-24 15:45:39.000000000","message":"Extraneous change (femtonit)","commit_id":"5afb7889af12e24a329ce98511e7eab7600aa747"}],"novaclient/v2/shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"f91386638f7f5e84c79e6756ef440c69f3e538f8","unresolved":false,"context_lines":[{"line_number":4430,"context_line":"    \u0027--tenant\u0027,"},{"line_number":4431,"context_line":"    metavar\u003d\u0027\u003ctenant-id\u003e\u0027,"},{"line_number":4432,"context_line":"    dest\u003d\"tenant_id\","},{"line_number":4433,"context_line":"    default\u003dNone,"},{"line_number":4434,"context_line":"    action\u003dshell.DeprecatedAction,"},{"line_number":4435,"context_line":"    use\u003d_(\u0027use \"%s\"; this option may be removed after \u0027"},{"line_number":4436,"context_line":"          \u0027novaclient 3.6.0.\u0027) % \u0027--tenant-id\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_000f8488","line":4433,"updated":"2016-03-09 17:36:28.000000000","message":"Suggestion: leave out the \u0027default\u0027 clauses.  As it stands now, there is already a default for \u0027tenant_id\u0027 set by the \u0027--tenant-id\u0027 argument description.\n\nYou should also, by the way, be able to eliminate the metavar clauses, as they\u0027d only be used while generating the help message, and you\u0027re suppressing that.","commit_id":"6c2b594c5b6b5ce993e0dc7ea7ec2fbb419d3140"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"53c4fe5f3d82fbb4805a73066b458a916370722c","unresolved":false,"context_lines":[{"line_number":4430,"context_line":"    \u0027--tenant\u0027,"},{"line_number":4431,"context_line":"    metavar\u003d\u0027\u003ctenant-id\u003e\u0027,"},{"line_number":4432,"context_line":"    dest\u003d\"tenant_id\","},{"line_number":4433,"context_line":"    default\u003dNone,"},{"line_number":4434,"context_line":"    action\u003dshell.DeprecatedAction,"},{"line_number":4435,"context_line":"    use\u003d_(\u0027use \"%s\"; this option may be removed after \u0027"},{"line_number":4436,"context_line":"          \u0027novaclient 3.6.0.\u0027) % \u0027--tenant-id\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afc51ec_a2bbc80d","line":4433,"in_reply_to":"5aef4532_000f8488","updated":"2016-03-24 12:51:31.000000000","message":"Done","commit_id":"6c2b594c5b6b5ce993e0dc7ea7ec2fbb419d3140"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"acd4b2225a45dd80853700cca056b03c0335b381","unresolved":false,"context_lines":[{"line_number":4425,"context_line":"    if not uuidutils.is_uuid_like(tenant_id):"},{"line_number":4426,"context_line":"        print(_LE(\"ValueError: The given tenant-id \u0027%s\u0027 is not uuid-like.\") %"},{"line_number":4427,"context_line":"              tenant_id)"},{"line_number":4428,"context_line":"        print(_(\"If your deployment supports not uuid-like tenant ids \""},{"line_number":4429,"context_line":"                \"(see first example) or you want to specify Name instead of \""},{"line_number":4430,"context_line":"                \"ID (see second example), you must use proper cli arguments.\""},{"line_number":4431,"context_line":"                \"\\nExamples:\\n\\t\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_3da1d746","line":4428,"updated":"2016-03-24 15:45:39.000000000","message":"Try rephrasing as:\n\n    If your deployment uses tenant IDs that are not\n    UUID-like (see first example), or if you want to specify\n    the name instead of the ID (see second example), you must\n    use the correct command line arguments.","commit_id":"8574e7c4111dc1162b9088168d50a0981db440e2"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"6b2056568e4f5b417dc8ed8935578c0fd2af7c0c","unresolved":false,"context_lines":[{"line_number":4425,"context_line":"    if not uuidutils.is_uuid_like(tenant_id):"},{"line_number":4426,"context_line":"        print(_LE(\"ValueError: The given tenant-id \u0027%s\u0027 is not uuid-like.\") %"},{"line_number":4427,"context_line":"              tenant_id)"},{"line_number":4428,"context_line":"        print(_(\"If your deployment supports not uuid-like tenant ids \""},{"line_number":4429,"context_line":"                \"(see first example) or you want to specify Name instead of \""},{"line_number":4430,"context_line":"                \"ID (see second example), you must use proper cli arguments.\""},{"line_number":4431,"context_line":"                \"\\nExamples:\\n\\t\""}],"source_content_type":"text/x-python","patch_set":2,"id":"da0c15f0_39770fd6","line":4428,"in_reply_to":"fa0719c6_0305900f","updated":"2016-03-24 17:16:28.000000000","message":"Hehe :)  Ironically, I hated my english classes :)","commit_id":"8574e7c4111dc1162b9088168d50a0981db440e2"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"df156626ca3b7714e8054f2e11f57f892e39e020","unresolved":false,"context_lines":[{"line_number":4425,"context_line":"    if not uuidutils.is_uuid_like(tenant_id):"},{"line_number":4426,"context_line":"        print(_LE(\"ValueError: The given tenant-id \u0027%s\u0027 is not uuid-like.\") %"},{"line_number":4427,"context_line":"              tenant_id)"},{"line_number":4428,"context_line":"        print(_(\"If your deployment supports not uuid-like tenant ids \""},{"line_number":4429,"context_line":"                \"(see first example) or you want to specify Name instead of \""},{"line_number":4430,"context_line":"                \"ID (see second example), you must use proper cli arguments.\""},{"line_number":4431,"context_line":"                \"\\nExamples:\\n\\t\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_0305900f","line":4428,"in_reply_to":"fa0719c6_3da1d746","updated":"2016-03-24 16:04:26.000000000","message":"I hope, somedays my English will be ok for you :)\n\nFixed.","commit_id":"8574e7c4111dc1162b9088168d50a0981db440e2"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"acd4b2225a45dd80853700cca056b03c0335b381","unresolved":false,"context_lines":[{"line_number":4524,"context_line":"    \u0027tenant-id\u0027,"},{"line_number":4525,"context_line":"    metavar\u003d\u0027\u003ctenant-id\u003e\u0027,"},{"line_number":4526,"context_line":"    default\u003dNone,"},{"line_number":4527,"context_line":"    help\u003d_(\u0027ID of tenant to list the quotas for (should be uuid like).\u0027))"},{"line_number":4528,"context_line":"@utils.arg("},{"line_number":4529,"context_line":"    \u0027--user-id\u0027,"},{"line_number":4530,"context_line":"    metavar\u003d\u0027\u003cuser-id\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_e81cbb6b","line":4527,"updated":"2016-03-24 15:45:39.000000000","message":"We have to figure out how to keep a --tenant option for backwards compatibility here…","commit_id":"8574e7c4111dc1162b9088168d50a0981db440e2"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"6b2056568e4f5b417dc8ed8935578c0fd2af7c0c","unresolved":false,"context_lines":[{"line_number":4524,"context_line":"    \u0027tenant-id\u0027,"},{"line_number":4525,"context_line":"    metavar\u003d\u0027\u003ctenant-id\u003e\u0027,"},{"line_number":4526,"context_line":"    default\u003dNone,"},{"line_number":4527,"context_line":"    help\u003d_(\u0027ID of tenant to list the quotas for (should be uuid like).\u0027))"},{"line_number":4528,"context_line":"@utils.arg("},{"line_number":4529,"context_line":"    \u0027--user-id\u0027,"},{"line_number":4530,"context_line":"    metavar\u003d\u0027\u003cuser-id\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da0c15f0_bc25cdaf","line":4527,"in_reply_to":"fa0719c6_686c2b08","updated":"2016-03-24 17:16:28.000000000","message":"Oh, I missed the fact that it wasn\u0027t an option; you\u0027re just changing the positional parameter name, and I see that now :)","commit_id":"8574e7c4111dc1162b9088168d50a0981db440e2"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"df156626ca3b7714e8054f2e11f57f892e39e020","unresolved":false,"context_lines":[{"line_number":4524,"context_line":"    \u0027tenant-id\u0027,"},{"line_number":4525,"context_line":"    metavar\u003d\u0027\u003ctenant-id\u003e\u0027,"},{"line_number":4526,"context_line":"    default\u003dNone,"},{"line_number":4527,"context_line":"    help\u003d_(\u0027ID of tenant to list the quotas for (should be uuid like).\u0027))"},{"line_number":4528,"context_line":"@utils.arg("},{"line_number":4529,"context_line":"    \u0027--user-id\u0027,"},{"line_number":4530,"context_line":"    metavar\u003d\u0027\u003cuser-id\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_686c2b08","line":4527,"in_reply_to":"fa0719c6_e81cbb6b","updated":"2016-03-24 16:04:26.000000000","message":"we don\u0027t need to support it here, since `tenant` was a positional argument, so there was not ability to specify the name of argument.","commit_id":"8574e7c4111dc1162b9088168d50a0981db440e2"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"acd4b2225a45dd80853700cca056b03c0335b381","unresolved":false,"context_lines":[{"line_number":4657,"context_line":"    \"\"\"Update the quotas for a tenant/user.\"\"\""},{"line_number":4658,"context_line":"    # NOTE(andreykurilin): for some reasons, argparse fails with"},{"line_number":4659,"context_line":"    #     `dest\u003d\"tenant_id\"` and it fails to auto convert `tenant-id` to"},{"line_number":4660,"context_line":"    #     `tenant_id`, so lets use getattr here."},{"line_number":4661,"context_line":"    tenant_id \u003d getattr(args, \"tenant-id\")"},{"line_number":4662,"context_line":"    if tenant_id:"},{"line_number":4663,"context_line":"        _check_tenant_id_is_uuid_like(tenant_id, \"quota-update\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_8866dfea","line":4660,"updated":"2016-03-24 15:45:39.000000000","message":"Very weird…","commit_id":"8574e7c4111dc1162b9088168d50a0981db440e2"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"df156626ca3b7714e8054f2e11f57f892e39e020","unresolved":false,"context_lines":[{"line_number":4657,"context_line":"    \"\"\"Update the quotas for a tenant/user.\"\"\""},{"line_number":4658,"context_line":"    # NOTE(andreykurilin): for some reasons, argparse fails with"},{"line_number":4659,"context_line":"    #     `dest\u003d\"tenant_id\"` and it fails to auto convert `tenant-id` to"},{"line_number":4660,"context_line":"    #     `tenant_id`, so lets use getattr here."},{"line_number":4661,"context_line":"    tenant_id \u003d getattr(args, \"tenant-id\")"},{"line_number":4662,"context_line":"    if tenant_id:"},{"line_number":4663,"context_line":"        _check_tenant_id_is_uuid_like(tenant_id, \"quota-update\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_e892fbf4","line":4660,"in_reply_to":"fa0719c6_8866dfea","updated":"2016-03-24 16:04:26.000000000","message":"yes. But you can check it:(","commit_id":"8574e7c4111dc1162b9088168d50a0981db440e2"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"6b2056568e4f5b417dc8ed8935578c0fd2af7c0c","unresolved":false,"context_lines":[{"line_number":4657,"context_line":"    \"\"\"Update the quotas for a tenant/user.\"\"\""},{"line_number":4658,"context_line":"    # NOTE(andreykurilin): for some reasons, argparse fails with"},{"line_number":4659,"context_line":"    #     `dest\u003d\"tenant_id\"` and it fails to auto convert `tenant-id` to"},{"line_number":4660,"context_line":"    #     `tenant_id`, so lets use getattr here."},{"line_number":4661,"context_line":"    tenant_id \u003d getattr(args, \"tenant-id\")"},{"line_number":4662,"context_line":"    if tenant_id:"},{"line_number":4663,"context_line":"        _check_tenant_id_is_uuid_like(tenant_id, \"quota-update\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"da0c15f0_7c34d5dd","line":4660,"in_reply_to":"fa0719c6_e892fbf4","updated":"2016-03-24 17:16:28.000000000","message":"Wonder if it\u0027s related somehow to the differences between how positional parameters and options are handled?  *shrug*","commit_id":"8574e7c4111dc1162b9088168d50a0981db440e2"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"acd4b2225a45dd80853700cca056b03c0335b381","unresolved":false,"context_lines":[{"line_number":5164,"context_line":"    print(_(\"Maximum version %(v)s\") %"},{"line_number":5165,"context_line":"          {\u0027v\u0027: novaclient.API_MAX_VERSION.get_string()})"},{"line_number":5166,"context_line":""},{"line_number":5167,"context_line":"    print(_(\"\\nServer supported API versions:\"))"},{"line_number":5168,"context_line":"    utils.print_list(result, columns)"},{"line_number":5169,"context_line":""},{"line_number":5170,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_08880f70","line":5167,"updated":"2016-03-24 15:45:39.000000000","message":"extraneous change (femtonit)","commit_id":"8574e7c4111dc1162b9088168d50a0981db440e2"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"df156626ca3b7714e8054f2e11f57f892e39e020","unresolved":false,"context_lines":[{"line_number":5164,"context_line":"    print(_(\"Maximum version %(v)s\") %"},{"line_number":5165,"context_line":"          {\u0027v\u0027: novaclient.API_MAX_VERSION.get_string()})"},{"line_number":5166,"context_line":""},{"line_number":5167,"context_line":"    print(_(\"\\nServer supported API versions:\"))"},{"line_number":5168,"context_line":"    utils.print_list(result, columns)"},{"line_number":5169,"context_line":""},{"line_number":5170,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_e375fc31","line":5167,"in_reply_to":"fa0719c6_08880f70","updated":"2016-03-24 16:04:26.000000000","message":"Done","commit_id":"8574e7c4111dc1162b9088168d50a0981db440e2"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"222918770ae8883ebd49ba04f7a28e7281eab0e8","unresolved":false,"context_lines":[{"line_number":4423,"context_line":""},{"line_number":4424,"context_line":"def _check_tenant_id_is_uuid_like(tenant_id, cmd):"},{"line_number":4425,"context_line":"    if not uuidutils.is_uuid_like(tenant_id):"},{"line_number":4426,"context_line":"        print(_LE(\"ValueError: The given tenant-id \u0027%s\u0027 is not uuid-like.\") %"},{"line_number":4427,"context_line":"              tenant_id)"},{"line_number":4428,"context_line":"        print(_(\"If your deployment uses tenant IDs that are not UUID-like \""},{"line_number":4429,"context_line":"                \"(see first example), or if you want to specify the name \""}],"source_content_type":"text/x-python","patch_set":3,"id":"da0c15f0_3c4b7d2d","line":4426,"updated":"2016-03-24 17:20:37.000000000","message":"I just realized that, with a single exception, all of the print() calls here emit to standard output, whereas general best practice would have error messages emitted to standard error.  Since this is a systemic issue, I\u0027m not recommending any changes in this review, but perhaps we should open a bug and create a series of changes to send error messages like this to the correct stream…","commit_id":"30c3e627b46c5ffe786d50f5069e2c617f94b4fb"}]}
