)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"38c66118593ed9fe6af042e9625eb206f82e0630","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     sajeesh cs \u003csajeesh.cs@cern.ch\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-01-30 16:02:11 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"The default values are made zero to avoid race conditions while quota allocation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Co-Authored-By: Raildo Mascena \u003craildo@lsd.ufcg.edu.br\u003e"},{"line_number":10,"context_line":"Co-Authored-By: Vinod Kumar \u003cvinod.kumar.boppanna@cern.ch\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"da86d52c_97402758","line":7,"updated":"2015-01-31 13:44:10.000000000","message":"suggestion: limit commit title to 50 characters and add details in the description (see https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure)","commit_id":"0ed6fd9c07674229f13719b63d02968d14e8f62f"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"4fa1c3a6da4b31bf6dbed9477cbc8e02ae242ee7","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Root projects and the users inside it will be having finite default"},{"line_number":15,"context_line":"resource values, and so proper backward compatibility is ensured.If"},{"line_number":16,"context_line":"any organisation, chooses not to have heierarchical projects,"},{"line_number":17,"context_line":"NestedQuotaDriver will work extacly like DbQuotaDriver."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"NestedQuotaDriver is supposed to become the default quota driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"ba3cc151_d07588fa","line":16,"updated":"2015-07-10 16:00:55.000000000","message":"Typo: hierarchical","commit_id":"e1c00f55c85d0bf87893218f25c1f522baf82090"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"1f652b443bb23ac2661f85e40a672ec4eab17747","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Root projects and the users inside it will be having finite default"},{"line_number":15,"context_line":"resource values, and so proper backward compatibility is ensured.If"},{"line_number":16,"context_line":"any organisation, chooses not to have heierarchical projects,"},{"line_number":17,"context_line":"NestedQuotaDriver will work extacly like DbQuotaDriver."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"NestedQuotaDriver is supposed to become the default quota driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"9a41bdd9_b83092e9","line":16,"updated":"2015-07-14 13:19:17.000000000","message":"typo: hierarchical","commit_id":"2f65fe20a5c618eed201d8f84be72862da0c629a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"NestedQuotaDriver: Set default values to sub-projects and users."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In case of hierarchical projects, the default quota value of resources"},{"line_number":10,"context_line":"in sub-projects and users in it are set to zero.This patch adds"},{"line_number":11,"context_line":"this functionality for hierarchical projects, while keeping the"},{"line_number":12,"context_line":"functionality intact for non-hierarchical projects."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"3a50d1a3_3818c0d2","line":10,"range":{"start_line":10,"start_character":47,"end_line":10,"end_character":49},"updated":"2015-07-28 21:36:53.000000000","message":"Need a space here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"functionality intact for non-hierarchical projects."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Root projects and the users inside it will be having finite default"},{"line_number":15,"context_line":"resource values, and so proper backward compatibility is ensured.If"},{"line_number":16,"context_line":"any organisation, chooses not to have heierarchical projects,"},{"line_number":17,"context_line":"NestedQuotaDriver will work extacly like DbQuotaDriver."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"3a50d1a3_98279411","line":15,"range":{"start_line":15,"start_character":64,"end_line":15,"end_character":66},"updated":"2015-07-28 21:36:53.000000000","message":"Need a space here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Root projects and the users inside it will be having finite default"},{"line_number":15,"context_line":"resource values, and so proper backward compatibility is ensured.If"},{"line_number":16,"context_line":"any organisation, chooses not to have heierarchical projects,"},{"line_number":17,"context_line":"NestedQuotaDriver will work extacly like DbQuotaDriver."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"NestedQuotaDriver is supposed to become the default quota driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"3a50d1a3_d87f5cdd","line":16,"range":{"start_line":16,"start_character":16,"end_line":16,"end_character":17},"updated":"2015-07-28 21:36:53.000000000","message":"Don\u0027t need this comma","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Root projects and the users inside it will be having finite default"},{"line_number":15,"context_line":"resource values, and so proper backward compatibility is ensured.If"},{"line_number":16,"context_line":"any organisation, chooses not to have heierarchical projects,"},{"line_number":17,"context_line":"NestedQuotaDriver will work extacly like DbQuotaDriver."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"NestedQuotaDriver is supposed to become the default quota driver"},{"line_number":20,"context_line":"of Nova and it can handle nested as well as non-nested projects."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"3a50d1a3_b86b701d","line":17,"range":{"start_line":17,"start_character":28,"end_line":17,"end_character":35},"updated":"2015-07-28 21:36:53.000000000","message":"Typo","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"NestedQuotaDriver is supposed to become the default quota driver"},{"line_number":20,"context_line":"of Nova and it can handle nested as well as non-nested projects."},{"line_number":21,"context_line":"It is a superset of DbQuotaDriver.But to avoid any potential risks,"},{"line_number":22,"context_line":"it is proposed as an optional driver in the first release."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Co-Authored-By: Sajeesh CS \u003csajeesh.cs@cern.ch\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"3a50d1a3_38cd2031","line":21,"range":{"start_line":21,"start_character":33,"end_line":21,"end_character":35},"updated":"2015-07-28 21:36:53.000000000","message":"Need a space here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Co-Authored-By: Vinod Kumar \u003cvinod.kumar.boppanna@cern.ch\u003e"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I2af40e4ab841564105f6726650a1cd7e6e0f1980"},{"line_number":29,"context_line":"Partially Implements:  bp nested-quota-driver-api"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"3a50d1a3_b887f0b3","line":29,"updated":"2015-07-28 21:36:53.000000000","message":"I think we also need a DocImpact flag because NestedQuotaDriver is a thing operators will need to configure, right?","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"dcc2b3a235f1d47e3e61d53d9c5025181466c091","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Root projects and the users inside it will be having finite default"},{"line_number":15,"context_line":"resource values, and so proper backward compatibility is ensured.If"},{"line_number":16,"context_line":"any organisation, chooses not to have heierarchical projects,"},{"line_number":17,"context_line":"NestedQuotaDriver will work exactly like DbQuotaDriver."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"NestedQuotaDriver is supposed to become the default quota driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":34,"id":"3a50d1a3_0ab0598a","line":16,"updated":"2015-08-01 00:01:09.000000000","message":"typo: hierarchical","commit_id":"296ea046a0bed92e582b96212463aeb79e8248b7"}],"nova/api/openstack/compute/contrib/quotas.py":[{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"4fa1c3a6da4b31bf6dbed9477cbc8e02ae242ee7","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                                            usages\u003dusages)"},{"line_number":96,"context_line":"        else:"},{"line_number":97,"context_line":"            values \u003d QUOTAS.get_project_quotas(context, id,"},{"line_number":98,"context_line":"                                              usages\u003dusages)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        if usages:"},{"line_number":101,"context_line":"            return values"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3cc151_b0f1e46c","line":98,"updated":"2015-07-10 16:00:55.000000000","message":"You have to pass parent_id down to get_project_quotas.","commit_id":"e1c00f55c85d0bf87893218f25c1f522baf82090"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"4fa1c3a6da4b31bf6dbed9477cbc8e02ae242ee7","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            authorize_delete(context)"},{"line_number":240,"context_line":"            params \u003d urlparse.parse_qs(req.environ.get(\u0027QUERY_STRING\u0027, \u0027\u0027))"},{"line_number":241,"context_line":"            user_id \u003d params.get(\u0027user_id\u0027, [None])[0]"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"            if user_id and not self.ext_mgr.is_loaded(\u0027os-user-quotas\u0027):"},{"line_number":244,"context_line":"                raise webob.exc.HTTPNotFound()"},{"line_number":245,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3cc151_eb2f8186","line":242,"updated":"2015-07-10 16:00:55.000000000","message":"unrelated change.","commit_id":"e1c00f55c85d0bf87893218f25c1f522baf82090"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                   {\u0027limit\u0027: limit, \u0027resource\u0027: resource, \u0027maximum\u0027: maximum})"},{"line_number":94,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _get_quotas(self, context, id, parent_id\u003dNone,"},{"line_number":97,"context_line":"                            user_id\u003dNone, usages\u003dFalse):"},{"line_number":98,"context_line":"        if user_id:"},{"line_number":99,"context_line":"            values \u003d QUOTAS.get_user_quotas(context, id,"},{"line_number":100,"context_line":"                                                user_id,"},{"line_number":101,"context_line":"                                    parent_id\u003dparent_id,"},{"line_number":102,"context_line":"                                          usages\u003dusages)"},{"line_number":103,"context_line":"        else:"},{"line_number":104,"context_line":"            values \u003d QUOTAS.get_project_quotas(context, id,"},{"line_number":105,"context_line":"                                       parent_id\u003dparent_id,"},{"line_number":106,"context_line":"                                             usages\u003dusages)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        if usages:"},{"line_number":109,"context_line":"            return values"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_1fd12e57","line":106,"range":{"start_line":96,"start_character":4,"end_line":106,"end_character":59},"updated":"2015-07-28 21:36:53.000000000","message":"Please no right-alignment, left-align instead","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        authorize_show(context)"},{"line_number":116,"context_line":"        params \u003d urlparse.parse_qs(req.environ.get(\u0027QUERY_STRING\u0027, \u0027\u0027))"},{"line_number":117,"context_line":"        user_id \u003d None"},{"line_number":118,"context_line":"        # By default, parent_id is None"},{"line_number":119,"context_line":"        parent_id \u003d None"},{"line_number":120,"context_line":"        if self.ext_mgr.is_loaded(\u0027os-user-quotas\u0027):"},{"line_number":121,"context_line":"            user_id \u003d params.get(\u0027user_id\u0027, [None])[0]"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_5fb6d63e","line":118,"updated":"2015-07-28 21:36:53.000000000","message":"I\u0027m not sure this comment is helpful being that it doesn\u0027t explain why parent_id defaults to None. (I think the comment unnecessary as-is)","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        project_id \u003d id"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        # By default, parent_id is None"},{"line_number":146,"context_line":"        parent_id \u003d None"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        bad_keys \u003d []"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_9fc53e8f","line":145,"updated":"2015-07-28 21:36:53.000000000","message":"Same","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":230,"context_line":"                objects.Quotas.update_limit(context, project_id,"},{"line_number":231,"context_line":"                                            key, value, user_id\u003duser_id)"},{"line_number":232,"context_line":"        values \u003d self._get_quotas(context, id, parent_id\u003dparent_id,"},{"line_number":233,"context_line":"                                                   user_id\u003duser_id)"},{"line_number":234,"context_line":"        return self._format_quota_set(None, values)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def defaults(self, req, id):"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_3f050a10","line":233,"range":{"start_line":233,"start_character":51,"end_line":233,"end_character":67},"updated":"2015-07-28 21:36:53.000000000","message":"We don\u0027t use right-aligned indentation, the typical way is to left-align, for example:\n\n values \u003d self._get_quotas(context, id, parent_id\u003dparent_id,\n                           user_id\u003duser_id)","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    def defaults(self, req, id):"},{"line_number":237,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":238,"context_line":"        authorize_show(context)"},{"line_number":239,"context_line":"        # By default, parent_id is None"},{"line_number":240,"context_line":"        parent_id \u003d None"},{"line_number":241,"context_line":"        values \u003d QUOTAS.get_defaults(context, parent_id\u003dparent_id)"},{"line_number":242,"context_line":"        return self._format_quota_set(id, values)"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_bfc27a83","line":239,"updated":"2015-07-28 21:36:53.000000000","message":"Same","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            authorize_delete(context)"},{"line_number":248,"context_line":"            params \u003d urlparse.parse_qs(req.environ.get(\u0027QUERY_STRING\u0027, \u0027\u0027))"},{"line_number":249,"context_line":"            user_id \u003d params.get(\u0027user_id\u0027, [None])[0]"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"            if user_id and not self.ext_mgr.is_loaded(\u0027os-user-quotas\u0027):"},{"line_number":252,"context_line":"                raise webob.exc.HTTPNotFound()"},{"line_number":253,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_bf94ba8a","line":250,"updated":"2015-07-28 21:36:53.000000000","message":"Please don\u0027t add unrelated blank lines","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"}],"nova/api/openstack/compute/plugins/v3/quota_sets.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _get_quotas(self, context, id, user_id\u003dNone,"},{"line_number":74,"context_line":"                          parent_id\u003dNone, usages\u003dFalse):"},{"line_number":75,"context_line":"        if user_id:"},{"line_number":76,"context_line":"            values \u003d QUOTAS.get_user_quotas(context, id, user_id,"},{"line_number":77,"context_line":"                                            parent_id\u003dparent_id,"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_9f4c5e43","line":74,"updated":"2015-07-28 21:36:53.000000000","message":"Please no right-alignment, left-align instead","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                            usages\u003dusages)"},{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            values \u003d QUOTAS.get_project_quotas(context, id,"},{"line_number":81,"context_line":"                                              parent_id\u003dparent_id,"},{"line_number":82,"context_line":"                                              usages\u003dusages)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        if usages:"},{"line_number":85,"context_line":"            return values"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_ff59e2fd","line":82,"range":{"start_line":81,"start_character":46,"end_line":82,"end_character":60},"updated":"2015-07-28 21:36:53.000000000","message":"Alignment is off by one here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        parent_id \u003d None"},{"line_number":96,"context_line":"        return self._format_quota_set(id,"},{"line_number":97,"context_line":"            self._get_quotas(context, id,"},{"line_number":98,"context_line":"                            parent_id\u003dparent_id,"},{"line_number":99,"context_line":"                            user_id\u003duser_id))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @extensions.expected_errors(())"},{"line_number":102,"context_line":"    def detail(self, req, id):"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_3f0bcad7","line":99,"range":{"start_line":98,"start_character":28,"end_line":99,"end_character":45},"updated":"2015-07-28 21:36:53.000000000","message":"Alignment is off by one here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        # Note(gmann): Removed \u0027id\u0027 from update\u0027s response to make it same"},{"line_number":156,"context_line":"        # as V2. If needed it can be added with microversion."},{"line_number":157,"context_line":"        return self._format_quota_set(None, self._get_quotas(context, id,"},{"line_number":158,"context_line":"                                                     parent_id\u003dparent_id,"},{"line_number":159,"context_line":"                                                     user_id\u003duser_id))"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    @extensions.expected_errors(())"},{"line_number":162,"context_line":"    def defaults(self, req, id):"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_bff7dad1","line":159,"range":{"start_line":158,"start_character":53,"end_line":159,"end_character":70},"updated":"2015-07-28 21:36:53.000000000","message":"Please no right-alignment, left-align instead","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"}],"nova/quota.py":[{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"4fa1c3a6da4b31bf6dbed9477cbc8e02ae242ee7","unresolved":false,"context_lines":[{"line_number":526,"context_line":"        # Set up the reservation expiration"},{"line_number":527,"context_line":"        if expire is None:"},{"line_number":528,"context_line":"            expire \u003d CONF.reservation_expire"},{"line_number":529,"context_line":"        if isinstance(expire, six.integer_types):"},{"line_number":530,"context_line":"            expire \u003d datetime.timedelta(seconds\u003dexpire)"},{"line_number":531,"context_line":"        if isinstance(expire, datetime.timedelta):"},{"line_number":532,"context_line":"            expire \u003d timeutils.utcnow() + expire"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3cc151_eb5d4116","line":529,"updated":"2015-07-10 16:00:55.000000000","message":"Is it an unrelated change?","commit_id":"e1c00f55c85d0bf87893218f25c1f522baf82090"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"4fa1c3a6da4b31bf6dbed9477cbc8e02ae242ee7","unresolved":false,"context_lines":[{"line_number":698,"context_line":"    UNLIMITED_VALUE \u003d -1"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"    def get_defaults(self, context, resources, parent_id\u003dNone):"},{"line_number":701,"context_line":"        \"\"\"Given a list of resources, retrieve the default quotas."},{"line_number":702,"context_line":"        Use the class quotas named `_DEFAULT_QUOTA_NAME` as default quotas,"},{"line_number":703,"context_line":"        if it exists."},{"line_number":704,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3cc151_2b78092b","line":701,"updated":"2015-07-10 16:00:55.000000000","message":"I think that in most of the NestedQuotaDriver methods, you must call super(NestedQuotaDriver, self).method_name(args...). In this way you will avoid code duplication.","commit_id":"e1c00f55c85d0bf87893218f25c1f522baf82090"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"1f652b443bb23ac2661f85e40a672ec4eab17747","unresolved":false,"context_lines":[{"line_number":711,"context_line":"            if parent_id is None:"},{"line_number":712,"context_line":"                quotas[resource.name] \u003d default_quotas.get(resource.name,"},{"line_number":713,"context_line":"                resource.default)"},{"line_number":714,"context_line":"            else:"},{"line_number":715,"context_line":"                quotas[resource.name] \u003d 0"},{"line_number":716,"context_line":"        return quotas"},{"line_number":717,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9a41bdd9_585f06e5","line":714,"updated":"2015-07-14 13:19:17.000000000","message":"this is wrong, even if it is a subproject you have to see if a value was already set to the resources.","commit_id":"2f65fe20a5c618eed201d8f84be72862da0c629a"},{"author":{"_account_id":11057,"name":"sajeesh cs","email":"sajeesh.cs@cern.ch","username":"sajeeshcs"},"change_message_id":"d9280e022e8fa38a982c674f69e967498b26fa97","unresolved":false,"context_lines":[{"line_number":711,"context_line":"            if parent_id is None:"},{"line_number":712,"context_line":"                quotas[resource.name] \u003d default_quotas.get(resource.name,"},{"line_number":713,"context_line":"                resource.default)"},{"line_number":714,"context_line":"            else:"},{"line_number":715,"context_line":"                quotas[resource.name] \u003d 0"},{"line_number":716,"context_line":"        return quotas"},{"line_number":717,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9a41bdd9_a3c2a232","line":714,"in_reply_to":"9a41bdd9_585f06e5","updated":"2015-07-14 15:00:17.000000000","message":"why ? resource quota values of sub projects and users inside it should be zero,whatever be the quota class","commit_id":"2f65fe20a5c618eed201d8f84be72862da0c629a"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"1f652b443bb23ac2661f85e40a672ec4eab17747","unresolved":false,"context_lines":[{"line_number":1432,"context_line":"                        will be returned."},{"line_number":1433,"context_line":"        \"\"\""},{"line_number":1434,"context_line":"        if self._is_nested():"},{"line_number":1435,"context_line":"            self._driver.get_project_quotas(context, self._resources,"},{"line_number":1436,"context_line":"                                              project_id,"},{"line_number":1437,"context_line":"                                              parent_id\u003dparent_id,"},{"line_number":1438,"context_line":"                                              quota_class\u003dquota_class,"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a41bdd9_f81cda14","line":1435,"updated":"2015-07-14 13:19:17.000000000","message":"you need to put a \u0027return\u0027 here.","commit_id":"2f65fe20a5c618eed201d8f84be72862da0c629a"},{"author":{"_account_id":11057,"name":"sajeesh cs","email":"sajeesh.cs@cern.ch","username":"sajeeshcs"},"change_message_id":"d9280e022e8fa38a982c674f69e967498b26fa97","unresolved":false,"context_lines":[{"line_number":1432,"context_line":"                        will be returned."},{"line_number":1433,"context_line":"        \"\"\""},{"line_number":1434,"context_line":"        if self._is_nested():"},{"line_number":1435,"context_line":"            self._driver.get_project_quotas(context, self._resources,"},{"line_number":1436,"context_line":"                                              project_id,"},{"line_number":1437,"context_line":"                                              parent_id\u003dparent_id,"},{"line_number":1438,"context_line":"                                              quota_class\u003dquota_class,"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a41bdd9_b8016d08","line":1435,"in_reply_to":"9a41bdd9_f81cda14","updated":"2015-07-14 15:00:17.000000000","message":"Thanks...I missed out the return while I had split the code for uploading to gerrit","commit_id":"2f65fe20a5c618eed201d8f84be72862da0c629a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":695,"context_line":"    obtain quota information for hierarchical project."},{"line_number":696,"context_line":"    The default driver utilizes the local database."},{"line_number":697,"context_line":"    \"\"\""},{"line_number":698,"context_line":"    UNLIMITED_VALUE \u003d -1"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"    def get_defaults(self, context, resources, parent_id\u003dNone):"},{"line_number":701,"context_line":"        \"\"\"Given a list of resources, retrieve the default quotas."}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_7f1ab2c7","line":698,"updated":"2015-07-28 21:36:53.000000000","message":"I think you don\u0027t need this as it\u0027s already defined in your base class, DbQuotaDriver","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":705,"context_line":"        zero default quota values"},{"line_number":706,"context_line":""},{"line_number":707,"context_line":"        :param context: The request context, for access checks."},{"line_number":708,"context_line":"        :param resources: A dictionary of the registered resources."},{"line_number":709,"context_line":"        \"\"\""},{"line_number":710,"context_line":"        quotas \u003d {}"},{"line_number":711,"context_line":"        default_quotas \u003d db.quota_class_get_default(context)"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_ff45626e","line":708,"updated":"2015-07-28 21:36:53.000000000","message":"You need to add the parent_id param to the docstring here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":710,"context_line":"        quotas \u003d {}"},{"line_number":711,"context_line":"        default_quotas \u003d db.quota_class_get_default(context)"},{"line_number":712,"context_line":"        for resource in resources.values():"},{"line_number":713,"context_line":"            if parent_id is None:"},{"line_number":714,"context_line":"                quotas[resource.name] \u003d default_quotas.get(resource.name,"},{"line_number":715,"context_line":"                resource.default)"},{"line_number":716,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_62aa1973","line":713,"updated":"2015-07-28 21:36:53.000000000","message":"I noticed this section does the logic opposite of L743, which is a little confusing when following that sub-projects have 0 for the default. It would be nice to flip this around and use \"if parent_id:\" set the quota to 0, else get.","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":712,"context_line":"        for resource in resources.values():"},{"line_number":713,"context_line":"            if parent_id is None:"},{"line_number":714,"context_line":"                quotas[resource.name] \u003d default_quotas.get(resource.name,"},{"line_number":715,"context_line":"                resource.default)"},{"line_number":716,"context_line":"            else:"},{"line_number":717,"context_line":"                quotas[resource.name] \u003d 0"},{"line_number":718,"context_line":"        return quotas"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_bf0a7a24","line":715,"range":{"start_line":715,"start_character":16,"end_line":715,"end_character":33},"updated":"2015-07-28 21:36:53.000000000","message":"This should be left-aligned with resource.name","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":744,"context_line":"                limit \u003d quotas.get(resource.name, 0)"},{"line_number":745,"context_line":"            else:"},{"line_number":746,"context_line":"                limit \u003d quotas.get(resource.name, class_quotas.get("},{"line_number":747,"context_line":"                        resource.name, default_quotas[resource.name]))"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"            modified_quotas[resource.name] \u003d dict(limit\u003dlimit)"},{"line_number":750,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_0228f531","line":747,"updated":"2015-07-28 21:36:53.000000000","message":"This should either be aligned one \"tab\" (four spaces) past quotas.get or left-aligned with resource.name","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":765,"context_line":"            all_quotas \u003d db.quota_get_all(context, project_id)"},{"line_number":766,"context_line":"            for quota in all_quotas:"},{"line_number":767,"context_line":"                if quota.resource in modified_quotas:"},{"line_number":768,"context_line":"                    modified_quotas[quota.resource][\u0027remains\u0027] -\u003d \\"},{"line_number":769,"context_line":"                            quota.hard_limit"},{"line_number":770,"context_line":"        return modified_quotas"},{"line_number":771,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_627459fd","line":768,"updated":"2015-07-28 21:36:53.000000000","message":"I see this \\ is from the base class DbQuotaDriver","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":779,"context_line":"        :param context: The request context, for access checks."},{"line_number":780,"context_line":"        :param resources: A dictionary of the registered resources."},{"line_number":781,"context_line":"        :param project_id: The ID of the project to return quotas for."},{"line_number":782,"context_line":"        :param parent_id: The ID of the parent of the project"},{"line_number":783,"context_line":"        :param user_id: The ID of the user to return quotas for."},{"line_number":784,"context_line":"        :param quota_class: If project_id !\u003d context.project_id, the"},{"line_number":785,"context_line":"                            quota class cannot be determined.  This"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_dd7e6e1a","line":782,"updated":"2015-07-28 21:36:53.000000000","message":"I think this line should be after user_id so the ordering matches what\u0027s in the function signature","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":805,"context_line":""},{"line_number":806,"context_line":"        # Note(sajeesh) : In DbQuotaDriver, default user quota is"},{"line_number":807,"context_line":"        # the project quota. But in case of NestedQuotaDriver, that"},{"line_number":808,"context_line":"        # behavior is retained only for users in root projects.For"},{"line_number":809,"context_line":"        # users in sub-projects , the default quota is zero"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        proj_quotas \u003d project_quotas or db.quota_get_all_by_project("}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_fd6faac1","line":808,"range":{"start_line":808,"start_character":62,"end_line":808,"end_character":64},"updated":"2015-07-28 21:36:53.000000000","message":"Need a space here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":806,"context_line":"        # Note(sajeesh) : In DbQuotaDriver, default user quota is"},{"line_number":807,"context_line":"        # the project quota. But in case of NestedQuotaDriver, that"},{"line_number":808,"context_line":"        # behavior is retained only for users in root projects.For"},{"line_number":809,"context_line":"        # users in sub-projects , the default quota is zero"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        proj_quotas \u003d project_quotas or db.quota_get_all_by_project("},{"line_number":812,"context_line":"            context, project_id)"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_9d69c6c0","line":809,"range":{"start_line":809,"start_character":31,"end_line":809,"end_character":32},"updated":"2015-07-28 21:36:53.000000000","message":"Remove this extra space","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":838,"context_line":"        :param context: The request context, for access checks."},{"line_number":839,"context_line":"        :param resources: A dictionary of the registered resources."},{"line_number":840,"context_line":"        :param project_id: The ID of the project to return quotas for."},{"line_number":841,"context_line":"        :param parent_id: The ID of the parent of the project"},{"line_number":842,"context_line":"        :param quota_class: If project_id !\u003d context.project_id, the"},{"line_number":843,"context_line":"                            quota class cannot be determined.  This"},{"line_number":844,"context_line":"                            parameter allows it to be specified.  It"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_5dc1fe2d","line":841,"updated":"2015-07-28 21:36:53.000000000","message":"This should match the param ordering in the function signature","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":861,"context_line":"            project_usages \u003d db.quota_usage_get_all_by_project(context,"},{"line_number":862,"context_line":"                                                               project_id)"},{"line_number":863,"context_line":"        return self._process_quotas(context, resources, project_id,"},{"line_number":864,"context_line":"                                     project_quotas, quota_class,"},{"line_number":865,"context_line":"                                     parent_id\u003dparent_id,"},{"line_number":866,"context_line":"                                     defaults\u003ddefaults,"},{"line_number":867,"context_line":"                                     usages\u003dproject_usages,"},{"line_number":868,"context_line":"                                     remains\u003dremains)"},{"line_number":869,"context_line":""},{"line_number":870,"context_line":""},{"line_number":871,"context_line":"class NoopQuotaDriver(object):"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_ddfaee76","line":868,"range":{"start_line":864,"start_character":37,"end_line":868,"end_character":53},"updated":"2015-07-28 21:36:53.000000000","message":"This indentation is off by one","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":1318,"context_line":"            return self._resources[key]"},{"line_number":1319,"context_line":""},{"line_number":1320,"context_line":"    def is_nested(self):"},{"line_number":1321,"context_line":""},{"line_number":1322,"context_line":"        # Checks the type of quota driver being used"},{"line_number":1323,"context_line":"        # Note(sajeesh): This is  required only because NestedQuotaDriver"},{"line_number":1324,"context_line":"        # is proposed as an optional driver in the first release."}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_7d1abac7","line":1321,"updated":"2015-07-28 21:36:53.000000000","message":"You don\u0027t need a blank line here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":1320,"context_line":"    def is_nested(self):"},{"line_number":1321,"context_line":""},{"line_number":1322,"context_line":"        # Checks the type of quota driver being used"},{"line_number":1323,"context_line":"        # Note(sajeesh): This is  required only because NestedQuotaDriver"},{"line_number":1324,"context_line":"        # is proposed as an optional driver in the first release."},{"line_number":1325,"context_line":"        # Once it becomes the default quota driver, this check will"},{"line_number":1326,"context_line":"        # become obsolete"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_1d9616f0","line":1323,"updated":"2015-07-28 21:36:53.000000000","message":"Format for a note is # NOTE(name) and you have an extra space between \"is\" and \"required\"","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":1360,"context_line":"    def get_defaults(self, context, parent_id\u003dNone):"},{"line_number":1361,"context_line":"        \"\"\"Retrieve the default quotas."},{"line_number":1362,"context_line":""},{"line_number":1363,"context_line":"        :param context: The request context, for access checks."},{"line_number":1364,"context_line":"        \"\"\""},{"line_number":1365,"context_line":"        if self.is_nested():"},{"line_number":1366,"context_line":"            return self._driver.get_defaults(context, self._resources,"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_1dc85621","line":1363,"updated":"2015-07-28 21:36:53.000000000","message":"You need to add parent_id param in the docstring","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":1389,"context_line":""},{"line_number":1390,"context_line":"        :param context: The request context, for access checks."},{"line_number":1391,"context_line":"        :param project_id: The ID of the project to return quotas for."},{"line_number":1392,"context_line":"        :param user_id: The ID of the user to return quotas for."},{"line_number":1393,"context_line":"        :param quota_class: If project_id !\u003d context.project_id, the"},{"line_number":1394,"context_line":"                            quota class cannot be determined.  This"},{"line_number":1395,"context_line":"                            parameter allows it to be specified."}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_7d8ddad1","line":1392,"updated":"2015-07-28 21:36:53.000000000","message":"You need to add parent_id param in the docstring","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":1402,"context_line":"        \"\"\""},{"line_number":1403,"context_line":"        if self.is_nested():"},{"line_number":1404,"context_line":"            return self._driver.get_user_quotas(context, self._resources,"},{"line_number":1405,"context_line":"                                            project_id, user_id,"},{"line_number":1406,"context_line":"                                            parent_id\u003dparent_id,"},{"line_number":1407,"context_line":"                                            quota_class\u003dquota_class,"},{"line_number":1408,"context_line":"                                            defaults\u003ddefaults,"},{"line_number":1409,"context_line":"                                            usages\u003dusages)"},{"line_number":1410,"context_line":"        else:"},{"line_number":1411,"context_line":"            return self._driver.get_user_quotas(context, self._resources,"},{"line_number":1412,"context_line":"                                            project_id, user_id,"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_9db1c691","line":1409,"range":{"start_line":1405,"start_character":44,"end_line":1409,"end_character":58},"updated":"2015-07-28 21:36:53.000000000","message":"The alignment is off here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":1409,"context_line":"                                            usages\u003dusages)"},{"line_number":1410,"context_line":"        else:"},{"line_number":1411,"context_line":"            return self._driver.get_user_quotas(context, self._resources,"},{"line_number":1412,"context_line":"                                            project_id, user_id,"},{"line_number":1413,"context_line":"                                            quota_class\u003dquota_class,"},{"line_number":1414,"context_line":"                                            defaults\u003ddefaults,"},{"line_number":1415,"context_line":"                                            usages\u003dusages)"},{"line_number":1416,"context_line":""},{"line_number":1417,"context_line":"    def get_project_quotas(self, context, project_id,"},{"line_number":1418,"context_line":"                           parent_id\u003dNone, quota_class\u003dNone,"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_5da7be4f","line":1415,"range":{"start_line":1412,"start_character":44,"end_line":1415,"end_character":58},"updated":"2015-07-28 21:36:53.000000000","message":"The alignment is off here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":1420,"context_line":"        \"\"\"Retrieve the quotas for the given project."},{"line_number":1421,"context_line":""},{"line_number":1422,"context_line":"        :param context: The request context, for access checks."},{"line_number":1423,"context_line":"        :param project_id: The ID of the project to return quotas for."},{"line_number":1424,"context_line":"        :param quota_class: If project_id !\u003d context.project_id, the"},{"line_number":1425,"context_line":"                            quota class cannot be determined.  This"},{"line_number":1426,"context_line":"                            parameter allows it to be specified."}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_bd75a2cb","line":1423,"updated":"2015-07-28 21:36:53.000000000","message":"You need to add parent_id param in the docstring","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":1435,"context_line":"        \"\"\""},{"line_number":1436,"context_line":"        if self.is_nested():"},{"line_number":1437,"context_line":"            return self._driver.get_project_quotas(context, self._resources,"},{"line_number":1438,"context_line":"                                              project_id,"},{"line_number":1439,"context_line":"                                              parent_id\u003dparent_id,"},{"line_number":1440,"context_line":"                                              quota_class\u003dquota_class,"},{"line_number":1441,"context_line":"                                              defaults\u003ddefaults,"},{"line_number":1442,"context_line":"                                              usages\u003dusages,"},{"line_number":1443,"context_line":"                                              remains\u003dremains)"},{"line_number":1444,"context_line":"        else:"},{"line_number":1445,"context_line":"            return self._driver.get_project_quotas(context, self._resources,"},{"line_number":1446,"context_line":"                                              project_id,"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_1d4b7688","line":1443,"range":{"start_line":1438,"start_character":46,"end_line":1443,"end_character":62},"updated":"2015-07-28 21:36:53.000000000","message":"The alignment is off here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":1443,"context_line":"                                              remains\u003dremains)"},{"line_number":1444,"context_line":"        else:"},{"line_number":1445,"context_line":"            return self._driver.get_project_quotas(context, self._resources,"},{"line_number":1446,"context_line":"                                              project_id,"},{"line_number":1447,"context_line":"                                              quota_class\u003dquota_class,"},{"line_number":1448,"context_line":"                                              defaults\u003ddefaults,"},{"line_number":1449,"context_line":"                                              usages\u003dusages,"},{"line_number":1450,"context_line":"                                              remains\u003dremains)"},{"line_number":1451,"context_line":""},{"line_number":1452,"context_line":"    def get_settable_quotas(self, context, project_id, user_id\u003dNone):"},{"line_number":1453,"context_line":"        \"\"\"Given a list of resources, retrieve the range of settable quotas for"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_5d557e1b","line":1450,"range":{"start_line":1446,"start_character":46,"end_line":1450,"end_character":62},"updated":"2015-07-28 21:36:53.000000000","message":"The alignment is off here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"dcc2b3a235f1d47e3e61d53d9c5025181466c091","unresolved":false,"context_lines":[{"line_number":756,"context_line":"                usage \u003d usages.get(resource.name, {})"},{"line_number":757,"context_line":"                modified_quotas[resource.name].update("},{"line_number":758,"context_line":"                    in_use\u003dusage.get(\u0027in_use\u0027, 0),"},{"line_number":759,"context_line":"                    reserved\u003dusage.get(\u0027reserved\u0027, 0),"},{"line_number":760,"context_line":"                    )"},{"line_number":761,"context_line":"            # Initialize remains quotas."},{"line_number":762,"context_line":"            if remains:"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a50d1a3_6a00fd66","line":759,"updated":"2015-08-01 00:01:09.000000000","message":"I think you have to update allocated value, here, as well.","commit_id":"296ea046a0bed92e582b96212463aeb79e8248b7"}],"nova/tests/unit/api/openstack/compute/contrib/test_quotas.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        self.controller \u003d self.plugin.QuotaSetsController(self.ext_mgr)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    def fake_get_quotas(self, context, id, parent_id\u003dNone,"},{"line_number":335,"context_line":"                              user_id\u003dNone, usages\u003dFalse):"},{"line_number":336,"context_line":"        if usages:"},{"line_number":337,"context_line":"            return self.fake_quotas"},{"line_number":338,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_fd132a63","line":335,"range":{"start_line":335,"start_character":30,"end_line":335,"end_character":58},"updated":"2015-07-28 21:36:53.000000000","message":"The alignment is off here","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"}],"nova/tests/unit/test_quota.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":1839,"context_line":"        def fake_process_quotas_in_get_user_quotas(context, resources,"},{"line_number":1840,"context_line":"                                                   project_id, quotas,"},{"line_number":1841,"context_line":"                                                   quota_class\u003dNone,"},{"line_number":1842,"context_line":"                                                   user_id\u003dNone,"},{"line_number":1843,"context_line":"                                                   defaults\u003dTrue, usages\u003dNone,"},{"line_number":1844,"context_line":"                                                   remains\u003dFalse):"},{"line_number":1845,"context_line":"            self.calls.append(\u0027_process_quotas\u0027)"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_788ac865","line":1842,"updated":"2015-07-28 21:36:53.000000000","message":"Don\u0027t you need to add parent_id\u003dNone also?","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27fd9a0eb723f56e72d0b1477033d94b6226a69b","unresolved":false,"context_lines":[{"line_number":2892,"context_line":"                             \u0027in_use\u0027: in_use, \u0027reserved\u0027: reserved}"},{"line_number":2893,"context_line":"            return result"},{"line_number":2894,"context_line":""},{"line_number":2895,"context_line":"        def fake_qgabpau(context, project_id, user_id):"},{"line_number":2896,"context_line":"            self.calls.append(\u0027quota_get_all_by_project_and_user\u0027)"},{"line_number":2897,"context_line":"            return {\u0027instances\u0027: 2, \u0027cores\u0027: -1}"},{"line_number":2898,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_78c2c854","line":2895,"range":{"start_line":2895,"start_character":12,"end_line":2895,"end_character":24},"updated":"2015-07-28 21:36:53.000000000","message":"Can we use a better name than this? fake_quota_get_all_by_project_and_user isn\u0027t longer than fake_process_quotas_in_get_user_quotas that we already have, I think","commit_id":"49a72515a7f2fa89f918110492587ddc55f1c5cd"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"8157785b85f091adf5ba5867670d23193f868e7d","unresolved":false,"context_lines":[{"line_number":1856,"context_line":"                result[k] \u003d {\u0027limit\u0027: v.default,"},{"line_number":1857,"context_line":"                             \u0027in_use\u0027: in_use, \u0027reserved\u0027: reserved}"},{"line_number":1858,"context_line":"            return result"},{"line_number":1859,"context_line":""},{"line_number":1860,"context_line":"        def fake_qgabpau(context, project_id, user_id):"},{"line_number":1861,"context_line":"            self.calls.append(\u0027quota_get_all_by_project_and_user\u0027)"},{"line_number":1862,"context_line":"            return {\u0027instances\u0027: 2, \u0027cores\u0027: -1}"}],"source_content_type":"text/x-python","patch_set":32,"id":"3a50d1a3_4d80d48b","line":1859,"updated":"2015-07-31 14:33:21.000000000","message":"You need to update the method name here too","commit_id":"46287e10b7594dd6491af0499f9a8982d41cac77"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"dcc2b3a235f1d47e3e61d53d9c5025181466c091","unresolved":false,"context_lines":[{"line_number":2837,"context_line":"                server_group_members\u003d0,"},{"line_number":2838,"context_line":"                ))"},{"line_number":2839,"context_line":""},{"line_number":2840,"context_line":"    def _stub_get_settable_quotas(self):"},{"line_number":2841,"context_line":""},{"line_number":2842,"context_line":"        def fake_quota_get_all_by_project(context, project_id):"},{"line_number":2843,"context_line":"            self.calls.append(\u0027quota_get_all_by_project\u0027)"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a50d1a3_ea8dedd3","line":2840,"updated":"2015-08-01 00:01:09.000000000","message":"Since this method already exists in this class (see line 1806), why create it again?","commit_id":"296ea046a0bed92e582b96212463aeb79e8248b7"}]}
