)]}'
{"novaclient/v1_1/shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"5d6a2566ebf912d07a82e912ed24978396de49bf","unresolved":false,"context_lines":[{"line_number":2914,"context_line":"    default\u003dFalse,"},{"line_number":2915,"context_line":"    help\u003d\u0027Force update the quota even if the already used\u0027"},{"line_number":2916,"context_line":"            \u0027 and reserved exceeds the new quota\u0027)"},{"line_number":2917,"context_line":"def do_quota_class_update(cs, args):"},{"line_number":2918,"context_line":"    \"\"\"Update the quotas for a quota class.\"\"\""},{"line_number":2919,"context_line":""},{"line_number":2920,"context_line":"    _quota_update(cs.quota_classes, args.class_name, args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F%2BXo%3D","line":2917,"updated":"2013-04-09 15:20:31.000000000","message":"You have an update to quota.py to support --force, but I don\u0027t see a similar update to quota_classes.py…","commit_id":"3267012ea7ac94580aef35c992b9edcc44a077bc"},{"author":{"_account_id":6526,"name":"David Geng","email":"gengjh@cn.ibm.com","username":"genggjh"},"change_message_id":"6dfd32d4ea30baf1edc813efbe486358ff61a9fa","unresolved":false,"context_lines":[{"line_number":2914,"context_line":"    default\u003dFalse,"},{"line_number":2915,"context_line":"    help\u003d\u0027Force update the quota even if the already used\u0027"},{"line_number":2916,"context_line":"            \u0027 and reserved exceeds the new quota\u0027)"},{"line_number":2917,"context_line":"def do_quota_class_update(cs, args):"},{"line_number":2918,"context_line":"    \"\"\"Update the quotas for a quota class.\"\"\""},{"line_number":2919,"context_line":""},{"line_number":2920,"context_line":"    _quota_update(cs.quota_classes, args.class_name, args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F9M8%3D","line":2917,"in_reply_to":"AAAAOn%2F%2F%2BXo%3D","updated":"2013-04-10 10:35:34.000000000","message":"will remove this.","commit_id":"3267012ea7ac94580aef35c992b9edcc44a077bc"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"66928781d1f321ad7341778dc53860e97ff25210","unresolved":false,"context_lines":[{"line_number":2705,"context_line":"    if updates:"},{"line_number":2706,"context_line":"        force_update \u003d False"},{"line_number":2707,"context_line":"        if hasattr(args, \u0027force\u0027):"},{"line_number":2708,"context_line":"            force_update \u003d args.force"},{"line_number":2709,"context_line":"        manager.update(identifier, force_update, **updates)"},{"line_number":2710,"context_line":""},{"line_number":2711,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F8xQ%3D","line":2708,"updated":"2013-04-10 15:35:08.000000000","message":"You can condense these three lines into a single:\n\n    force_update \u003d getattr(args, \u0027force\u0027, False)","commit_id":"592bb47c8b686c03f603c9e99faa38a2a65a5902"},{"author":{"_account_id":6526,"name":"David Geng","email":"gengjh@cn.ibm.com","username":"genggjh"},"change_message_id":"2ac0b99e5d8365f19c2e1e2b1315f80227f13c2f","unresolved":false,"context_lines":[{"line_number":2705,"context_line":"    if updates:"},{"line_number":2706,"context_line":"        force_update \u003d False"},{"line_number":2707,"context_line":"        if hasattr(args, \u0027force\u0027):"},{"line_number":2708,"context_line":"            force_update \u003d args.force"},{"line_number":2709,"context_line":"        manager.update(identifier, force_update, **updates)"},{"line_number":2710,"context_line":""},{"line_number":2711,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F7WA%3D","line":2708,"in_reply_to":"AAAAOn%2F%2F8xQ%3D","updated":"2013-04-11 09:10:38.000000000","message":"Done","commit_id":"592bb47c8b686c03f603c9e99faa38a2a65a5902"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"66928781d1f321ad7341778dc53860e97ff25210","unresolved":false,"context_lines":[{"line_number":2706,"context_line":"        force_update \u003d False"},{"line_number":2707,"context_line":"        if hasattr(args, \u0027force\u0027):"},{"line_number":2708,"context_line":"            force_update \u003d args.force"},{"line_number":2709,"context_line":"        manager.update(identifier, force_update, **updates)"},{"line_number":2710,"context_line":""},{"line_number":2711,"context_line":""},{"line_number":2712,"context_line":"@utils.arg(\u0027--tenant\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F8wU%3D","line":2709,"updated":"2013-04-10 15:35:08.000000000","message":"The QuotaClassSetManager does not support the force_update flag; this will fail on the \"quota_class_update\" command.  Or, more accurately, QuotaClassSetManager.update() will be called with metadata_items\u003dFalse, which will likely result either in an error or in setting the metadata_items on quota classes to 0…and it *will* result in an error if the user is trying to set the quota for metadata_items, due to duplicate values for the argument.","commit_id":"592bb47c8b686c03f603c9e99faa38a2a65a5902"},{"author":{"_account_id":6526,"name":"David Geng","email":"gengjh@cn.ibm.com","username":"genggjh"},"change_message_id":"2ac0b99e5d8365f19c2e1e2b1315f80227f13c2f","unresolved":false,"context_lines":[{"line_number":2706,"context_line":"        force_update \u003d False"},{"line_number":2707,"context_line":"        if hasattr(args, \u0027force\u0027):"},{"line_number":2708,"context_line":"            force_update \u003d args.force"},{"line_number":2709,"context_line":"        manager.update(identifier, force_update, **updates)"},{"line_number":2710,"context_line":""},{"line_number":2711,"context_line":""},{"line_number":2712,"context_line":"@utils.arg(\u0027--tenant\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F7QE%3D","line":2709,"in_reply_to":"AAAAOn%2F%2F8wU%3D","updated":"2013-04-11 09:10:38.000000000","message":"Done","commit_id":"592bb47c8b686c03f603c9e99faa38a2a65a5902"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"66928781d1f321ad7341778dc53860e97ff25210","unresolved":false,"context_lines":[{"line_number":2820,"context_line":"    type\u003dutils.bool_from_str,"},{"line_number":2821,"context_line":"    default\u003dFalse,"},{"line_number":2822,"context_line":"    help\u003d\u0027Force update the quota even if the already used\u0027"},{"line_number":2823,"context_line":"            \u0027 and reserved exceeds the new quota\u0027)"},{"line_number":2824,"context_line":"def do_quota_update(cs, args):"},{"line_number":2825,"context_line":"    \"\"\"Update the quotas for a tenant.\"\"\""},{"line_number":2826,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F8vg%3D","line":2823,"updated":"2013-04-10 15:35:08.000000000","message":"Use the action \u0027store_true\u0027 to make this a boolean flag; we should not be forcing the user to supply a value on this option.","commit_id":"592bb47c8b686c03f603c9e99faa38a2a65a5902"},{"author":{"_account_id":6526,"name":"David Geng","email":"gengjh@cn.ibm.com","username":"genggjh"},"change_message_id":"2ac0b99e5d8365f19c2e1e2b1315f80227f13c2f","unresolved":false,"context_lines":[{"line_number":2820,"context_line":"    type\u003dutils.bool_from_str,"},{"line_number":2821,"context_line":"    default\u003dFalse,"},{"line_number":2822,"context_line":"    help\u003d\u0027Force update the quota even if the already used\u0027"},{"line_number":2823,"context_line":"            \u0027 and reserved exceeds the new quota\u0027)"},{"line_number":2824,"context_line":"def do_quota_update(cs, args):"},{"line_number":2825,"context_line":"    \"\"\"Update the quotas for a tenant.\"\"\""},{"line_number":2826,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F7Tw%3D","line":2823,"in_reply_to":"AAAAOn%2F%2F8vg%3D","updated":"2013-04-11 09:10:38.000000000","message":"Done","commit_id":"592bb47c8b686c03f603c9e99faa38a2a65a5902"}],"tests/v1_1/test_quotas.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"5d6a2566ebf912d07a82e912ed24978396de49bf","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        q \u003d cs.quotas.get(\u002797f4c221bff44578b0300df4ef119353\u0027)"},{"line_number":42,"context_line":"        q.update(cores\u003d2, force\u003dTrue)"},{"line_number":43,"context_line":"        cs.assert_called(\u0027PUT\u0027,"},{"line_number":44,"context_line":"                   \u0027/os-quota-sets/97f4c221bff44578b0300df4ef119353\u0027)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_refresh_quota(self):"},{"line_number":47,"context_line":"        q \u003d cs.quotas.get(\u0027test\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F%2BXg%3D","line":44,"updated":"2013-04-09 15:20:31.000000000","message":"I would add a check on the body to ensure \u0027force\u0027 is set…","commit_id":"3267012ea7ac94580aef35c992b9edcc44a077bc"},{"author":{"_account_id":6526,"name":"David Geng","email":"gengjh@cn.ibm.com","username":"genggjh"},"change_message_id":"6dfd32d4ea30baf1edc813efbe486358ff61a9fa","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        q \u003d cs.quotas.get(\u002797f4c221bff44578b0300df4ef119353\u0027)"},{"line_number":42,"context_line":"        q.update(cores\u003d2, force\u003dTrue)"},{"line_number":43,"context_line":"        cs.assert_called(\u0027PUT\u0027,"},{"line_number":44,"context_line":"                   \u0027/os-quota-sets/97f4c221bff44578b0300df4ef119353\u0027)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_refresh_quota(self):"},{"line_number":47,"context_line":"        q \u003d cs.quotas.get(\u0027test\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F9M4%3D","line":44,"in_reply_to":"AAAAOn%2F%2F%2BXg%3D","updated":"2013-04-10 10:35:34.000000000","message":"Done","commit_id":"3267012ea7ac94580aef35c992b9edcc44a077bc"}],"tests/v1_1/test_shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"5d6a2566ebf912d07a82e912ed24978396de49bf","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"            \u0027PUT\u0027, \u0027/os-quota-sets/97f4c221bff44578b0300df4ef119353\u0027,"},{"line_number":1017,"context_line":"            {\u0027quota_set\u0027: {\u0027force\u0027: False,"},{"line_number":1018,"context_line":"                           \u0027fixed_ips\u0027: 5,"},{"line_number":1019,"context_line":"                           \u0027tenant_id\u0027: \u002797f4c221bff44578b0300df4ef119353\u0027}})"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def test_quota_class_show(self):"},{"line_number":1022,"context_line":"        self.run_command(\u0027quota-class-show test\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F%2BXM%3D","line":1019,"updated":"2013-04-09 15:20:31.000000000","message":"Can you add a test to verify that --force does the right thing?","commit_id":"3267012ea7ac94580aef35c992b9edcc44a077bc"},{"author":{"_account_id":6526,"name":"David Geng","email":"gengjh@cn.ibm.com","username":"genggjh"},"change_message_id":"6dfd32d4ea30baf1edc813efbe486358ff61a9fa","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"            \u0027PUT\u0027, \u0027/os-quota-sets/97f4c221bff44578b0300df4ef119353\u0027,"},{"line_number":1017,"context_line":"            {\u0027quota_set\u0027: {\u0027force\u0027: False,"},{"line_number":1018,"context_line":"                           \u0027fixed_ips\u0027: 5,"},{"line_number":1019,"context_line":"                           \u0027tenant_id\u0027: \u002797f4c221bff44578b0300df4ef119353\u0027}})"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def test_quota_class_show(self):"},{"line_number":1022,"context_line":"        self.run_command(\u0027quota-class-show test\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F9Jk%3D","line":1019,"in_reply_to":"AAAAOn%2F%2F%2BXM%3D","updated":"2013-04-10 10:35:34.000000000","message":"Additional verification testcase are in another commit:\nhttps://review.openstack.org/#/c/25887/","commit_id":"3267012ea7ac94580aef35c992b9edcc44a077bc"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a7446e332d9e92145073e3ac518b975cced2c300","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"            \u0027PUT\u0027, \u0027/os-quota-sets/97f4c221bff44578b0300df4ef119353\u0027,"},{"line_number":1017,"context_line":"            {\u0027quota_set\u0027: {\u0027force\u0027: False,"},{"line_number":1018,"context_line":"                           \u0027fixed_ips\u0027: 5,"},{"line_number":1019,"context_line":"                           \u0027tenant_id\u0027: \u002797f4c221bff44578b0300df4ef119353\u0027}})"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def test_quota_class_show(self):"},{"line_number":1022,"context_line":"        self.run_command(\u0027quota-class-show test\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F8wE%3D","line":1019,"in_reply_to":"AAAAOn%2F%2F9Jk%3D","updated":"2013-04-10 15:34:26.000000000","message":"You added the test I asked for as test_quota_force_update(), but then refer to a verification test case on a nova patch?","commit_id":"3267012ea7ac94580aef35c992b9edcc44a077bc"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"66928781d1f321ad7341778dc53860e97ff25210","unresolved":false,"context_lines":[{"line_number":1011,"context_line":"    def test_quota_force_update(self):"},{"line_number":1012,"context_line":"        self.run_command("},{"line_number":1013,"context_line":"            \u0027quota-update 97f4c221bff44578b0300df4ef119353\u0027"},{"line_number":1014,"context_line":"            \u0027 --instances\u003d5 --force\u003d1\u0027)"},{"line_number":1015,"context_line":"        self.assert_called("},{"line_number":1016,"context_line":"            \u0027PUT\u0027, \u0027/os-quota-sets/97f4c221bff44578b0300df4ef119353\u0027,"},{"line_number":1017,"context_line":"            {\u0027quota_set\u0027: {\u0027force\u0027: True,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F8v4%3D","line":1014,"updated":"2013-04-10 15:35:08.000000000","message":"Wait, you don\u0027t have --force defined as a boolean flag?  Why not?","commit_id":"592bb47c8b686c03f603c9e99faa38a2a65a5902"},{"author":{"_account_id":6526,"name":"David Geng","email":"gengjh@cn.ibm.com","username":"genggjh"},"change_message_id":"2ac0b99e5d8365f19c2e1e2b1315f80227f13c2f","unresolved":false,"context_lines":[{"line_number":1011,"context_line":"    def test_quota_force_update(self):"},{"line_number":1012,"context_line":"        self.run_command("},{"line_number":1013,"context_line":"            \u0027quota-update 97f4c221bff44578b0300df4ef119353\u0027"},{"line_number":1014,"context_line":"            \u0027 --instances\u003d5 --force\u003d1\u0027)"},{"line_number":1015,"context_line":"        self.assert_called("},{"line_number":1016,"context_line":"            \u0027PUT\u0027, \u0027/os-quota-sets/97f4c221bff44578b0300df4ef119353\u0027,"},{"line_number":1017,"context_line":"            {\u0027quota_set\u0027: {\u0027force\u0027: True,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F7Tk%3D","line":1014,"in_reply_to":"AAAAOn%2F%2F8v4%3D","updated":"2013-04-11 09:10:38.000000000","message":"Done","commit_id":"592bb47c8b686c03f603c9e99faa38a2a65a5902"}]}
