)]}'
{"api-ref/source/v3/parameters.yaml":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":234,"context_line":"  required: false"},{"line_number":235,"context_line":"  type: string"},{"line_number":236,"context_line":"  min_version: 3.60"},{"line_number":237,"context_line":"fix_allocated_quotas:"},{"line_number":238,"context_line":"  description: |"},{"line_number":239,"context_line":"    Whether to fix all the non-leaf projects\u0027 ``allocation``"},{"line_number":240,"context_line":"    attribute or raise 400 error if ``allocation`` doesn\u0027t match"},{"line_number":241,"context_line":"    the current quota usage information. Default is ``false``."},{"line_number":242,"context_line":"  in: query"},{"line_number":243,"context_line":"  required: false"},{"line_number":244,"context_line":"  type: boolean"},{"line_number":245,"context_line":"force_del_qos:"},{"line_number":246,"context_line":"  description: |"},{"line_number":247,"context_line":"    To delete a QoS specification even if it is in-"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"85431225_d6fdbc6e","line":244,"range":{"start_line":237,"start_character":0,"end_line":244,"end_character":15},"updated":"2020-12-02 19:19:48.000000000","message":"need to remove or add a note depending on what we decide to do in quota-sets.inc","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":234,"context_line":"  required: false"},{"line_number":235,"context_line":"  type: string"},{"line_number":236,"context_line":"  min_version: 3.60"},{"line_number":237,"context_line":"fix_allocated_quotas:"},{"line_number":238,"context_line":"  description: |"},{"line_number":239,"context_line":"    Whether to fix all the non-leaf projects\u0027 ``allocation``"},{"line_number":240,"context_line":"    attribute or raise 400 error if ``allocation`` doesn\u0027t match"},{"line_number":241,"context_line":"    the current quota usage information. Default is ``false``."},{"line_number":242,"context_line":"  in: query"},{"line_number":243,"context_line":"  required: false"},{"line_number":244,"context_line":"  type: boolean"},{"line_number":245,"context_line":"force_del_qos:"},{"line_number":246,"context_line":"  description: |"},{"line_number":247,"context_line":"    To delete a QoS specification even if it is in-"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"c114cd76_e5e77dd0","line":244,"range":{"start_line":237,"start_character":0,"end_line":244,"end_character":15},"in_reply_to":"85431225_d6fdbc6e","updated":"2020-12-04 08:45:16.000000000","message":"Makes sense to remove this now.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":648,"context_line":"  type: integer"},{"line_number":649,"context_line":"backup_gigabytes_usage:"},{"line_number":650,"context_line":"  description: |"},{"line_number":651,"context_line":"    The size (GB) usage information of backup for this project, including ``in_use``,"},{"line_number":652,"context_line":"    ``limit``, ``reserved`` and ``allocated`` attributes."},{"line_number":653,"context_line":"    Note: ``allocated`` attribute is available only when nested quota is enabled."},{"line_number":654,"context_line":"  in: body"},{"line_number":655,"context_line":"  required: true"},{"line_number":656,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"92675381_c5646cca","line":653,"range":{"start_line":651,"start_character":0,"end_line":653,"end_character":81},"updated":"2020-12-02 19:19:48.000000000","message":"need to figure out what to do about this (also lines 698, 1226, 1234, 1340, 2221, 2675, 2683, 3182, 3190)","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":648,"context_line":"  type: integer"},{"line_number":649,"context_line":"backup_gigabytes_usage:"},{"line_number":650,"context_line":"  description: |"},{"line_number":651,"context_line":"    The size (GB) usage information of backup for this project, including ``in_use``,"},{"line_number":652,"context_line":"    ``limit``, ``reserved`` and ``allocated`` attributes."},{"line_number":653,"context_line":"    Note: ``allocated`` attribute is available only when nested quota is enabled."},{"line_number":654,"context_line":"  in: body"},{"line_number":655,"context_line":"  required: true"},{"line_number":656,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"07d2b00f_5b7fb39a","line":653,"range":{"start_line":651,"start_character":0,"end_line":653,"end_character":81},"in_reply_to":"92675381_c5646cca","updated":"2020-12-04 08:45:16.000000000","message":"Updated since allocated attribute won\u0027t be visible now with quotas.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"}],"api-ref/source/v3/quota-sets.inc":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"eecb40a5_f81216b9","line":283,"range":{"start_line":253,"start_character":0,"end_line":283,"end_character":0},"updated":"2020-12-02 19:19:48.000000000","message":"We should either remove or add a note that nested quota support was deprecated in Train and removed in Wallaby.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"41b311ed_e68b4e9f","line":283,"range":{"start_line":253,"start_character":0,"end_line":283,"end_character":0},"in_reply_to":"eecb40a5_f81216b9","updated":"2020-12-04 08:45:16.000000000","message":"Removing makes sense to me since nested quotas were already deprecated and after removing the code supporting this, i don\u0027t see any point to keep it in the api-ref.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"}],"cinder/api/contrib/quotas.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":66,"context_line":"        else:"},{"line_number":67,"context_line":"            return {k: v[\u0027limit\u0027] for k, v in values.items()}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def _authorize_update_or_delete(self, context_project,"},{"line_number":70,"context_line":"                                    target_project_id,"},{"line_number":71,"context_line":"                                    parent_id):"},{"line_number":72,"context_line":"        \"\"\"Checks if update or delete are allowed in the current hierarchy."}],"source_content_type":"text/x-python","patch_set":2,"id":"2d7d2cbc_fc19ec6b","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":35},"updated":"2020-12-02 19:19:48.000000000","message":"I think this function is no longer used.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        else:"},{"line_number":67,"context_line":"            return {k: v[\u0027limit\u0027] for k, v in values.items()}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def _authorize_update_or_delete(self, context_project,"},{"line_number":70,"context_line":"                                    target_project_id,"},{"line_number":71,"context_line":"                                    parent_id):"},{"line_number":72,"context_line":"        \"\"\"Checks if update or delete are allowed in the current hierarchy."}],"source_content_type":"text/x-python","patch_set":2,"id":"3e42959b_907fb094","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":35},"in_reply_to":"2d7d2cbc_fc19ec6b","updated":"2020-12-04 08:45:16.000000000","message":"Done","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":102,"context_line":"                    \"by an admin of immediate parent or by the CLOUD admin.\")"},{"line_number":103,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def _authorize_show(self, context_project, target_project):"},{"line_number":106,"context_line":"        \"\"\"Checks if show is allowed in the current hierarchy."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        With hierarchical projects, users are allowed to perform a quota show"}],"source_content_type":"text/x-python","patch_set":2,"id":"b82e49a1_4db0eefd","line":105,"range":{"start_line":105,"start_character":4,"end_line":105,"end_character":23},"updated":"2020-12-02 19:19:48.000000000","message":"I think this function is no longer used.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                    \"by an admin of immediate parent or by the CLOUD admin.\")"},{"line_number":103,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def _authorize_show(self, context_project, target_project):"},{"line_number":106,"context_line":"        \"\"\"Checks if show is allowed in the current hierarchy."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        With hierarchical projects, users are allowed to perform a quota show"}],"source_content_type":"text/x-python","patch_set":2,"id":"1b09a324_d07b4eb5","line":105,"range":{"start_line":105,"start_character":4,"end_line":105,"end_character":23},"in_reply_to":"b82e49a1_4db0eefd","updated":"2020-12-04 08:45:16.000000000","message":"Done","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":138,"context_line":"                    \"allowed to see the quota of its parents.\")"},{"line_number":139,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _is_descendant(self, target_project_id, subtree):"},{"line_number":142,"context_line":"        if subtree is not None:"},{"line_number":143,"context_line":"            for key, value in subtree.items():"},{"line_number":144,"context_line":"                if key \u003d\u003d target_project_id:"}],"source_content_type":"text/x-python","patch_set":2,"id":"03144b4f_5b8653db","line":141,"range":{"start_line":141,"start_character":4,"end_line":141,"end_character":22},"updated":"2020-12-02 19:19:48.000000000","message":"I think this is no longer used.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                    \"allowed to see the quota of its parents.\")"},{"line_number":139,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _is_descendant(self, target_project_id, subtree):"},{"line_number":142,"context_line":"        if subtree is not None:"},{"line_number":143,"context_line":"            for key, value in subtree.items():"},{"line_number":144,"context_line":"                if key \u003d\u003d target_project_id:"}],"source_content_type":"text/x-python","patch_set":2,"id":"c3af4596_dd4053fe","line":141,"range":{"start_line":141,"start_character":4,"end_line":141,"end_character":22},"in_reply_to":"03144b4f_5b8653db","updated":"2020-12-04 08:45:16.000000000","message":"Done","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":150,"context_line":"    def show(self, req, id):"},{"line_number":151,"context_line":"        \"\"\"Show quota for a particular tenant"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        This works for hierarchical and non-hierarchical projects. For"},{"line_number":154,"context_line":"        hierarchical projects admin of current project, immediate"},{"line_number":155,"context_line":"        parent of the project or the CLOUD admin are able to perform"},{"line_number":156,"context_line":"        a show."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        :param req: request"},{"line_number":159,"context_line":"        :param id: target project id that needs to be shown"}],"source_content_type":"text/x-python","patch_set":2,"id":"088fca87_b5fad6e4","line":156,"range":{"start_line":153,"start_character":8,"end_line":156,"end_character":15},"updated":"2020-12-02 19:19:48.000000000","message":"comment needs an update","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    def show(self, req, id):"},{"line_number":151,"context_line":"        \"\"\"Show quota for a particular tenant"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        This works for hierarchical and non-hierarchical projects. For"},{"line_number":154,"context_line":"        hierarchical projects admin of current project, immediate"},{"line_number":155,"context_line":"        parent of the project or the CLOUD admin are able to perform"},{"line_number":156,"context_line":"        a show."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        :param req: request"},{"line_number":159,"context_line":"        :param id: target project id that needs to be shown"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f8fd217_a3a67915","line":156,"range":{"start_line":153,"start_character":8,"end_line":156,"end_character":15},"in_reply_to":"088fca87_b5fad6e4","updated":"2020-12-04 08:45:16.000000000","message":"Removed this since it only describes the functionality for hierarchical projects.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":176,"context_line":"    def update(self, req, id, body):"},{"line_number":177,"context_line":"        \"\"\"Update Quota for a particular tenant"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        This works for hierarchical and non-hierarchical projects. For"},{"line_number":180,"context_line":"        hierarchical projects only immediate parent admin or the"},{"line_number":181,"context_line":"        CLOUD admin are able to perform an update."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        :param req: request"},{"line_number":184,"context_line":"        :param id: target project id that needs to be updated"}],"source_content_type":"text/x-python","patch_set":2,"id":"e9c20e6d_14129d79","line":181,"range":{"start_line":179,"start_character":8,"end_line":181,"end_character":50},"updated":"2020-12-02 19:19:48.000000000","message":"this comment needs to be updated","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":176,"context_line":"    def update(self, req, id, body):"},{"line_number":177,"context_line":"        \"\"\"Update Quota for a particular tenant"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        This works for hierarchical and non-hierarchical projects. For"},{"line_number":180,"context_line":"        hierarchical projects only immediate parent admin or the"},{"line_number":181,"context_line":"        CLOUD admin are able to perform an update."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        :param req: request"},{"line_number":184,"context_line":"        :param id: target project id that needs to be updated"}],"source_content_type":"text/x-python","patch_set":2,"id":"0fa42af5_b91ccfeb","line":181,"range":{"start_line":179,"start_character":8,"end_line":181,"end_character":50},"in_reply_to":"e9c20e6d_14129d79","updated":"2020-12-04 08:45:16.000000000","message":"Done","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":188,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":189,"context_line":"        target_project_id \u003d id"},{"line_number":190,"context_line":"        context.authorize(policy.UPDATE_POLICY,"},{"line_number":191,"context_line":"                          target\u003d{\u0027project_id\u0027: target_project_id})"},{"line_number":192,"context_line":"        self.validate_string_length(id, \u0027quota_set_name\u0027,"},{"line_number":193,"context_line":"                                    min_length\u003d1, max_length\u003d255)"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"41d255c4_a3b70516","line":191,"range":{"start_line":191,"start_character":26,"end_line":191,"end_character":66},"updated":"2020-12-02 19:19:48.000000000","message":"do we still need this target after hierarchical quotas are removed?","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":true,"context_lines":[{"line_number":188,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":189,"context_line":"        target_project_id \u003d id"},{"line_number":190,"context_line":"        context.authorize(policy.UPDATE_POLICY,"},{"line_number":191,"context_line":"                          target\u003d{\u0027project_id\u0027: target_project_id})"},{"line_number":192,"context_line":"        self.validate_string_length(id, \u0027quota_set_name\u0027,"},{"line_number":193,"context_line":"                                    min_length\u003d1, max_length\u003d255)"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"414dcf39_aa1b1eac","line":191,"range":{"start_line":191,"start_character":26,"end_line":191,"end_character":66},"in_reply_to":"41d255c4_a3b70516","updated":"2020-12-04 08:45:16.000000000","message":"Makes sense to remove it since it\u0027s an admin only but i prefer to do it in followup patch so to properly test if it doesn\u0027t have any regression.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":244,"context_line":"    def delete(self, req, id):"},{"line_number":245,"context_line":"        \"\"\"Delete Quota for a particular tenant."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        This works for hierarchical and non-hierarchical projects. For"},{"line_number":248,"context_line":"        hierarchical projects only immediate parent admin or the"},{"line_number":249,"context_line":"        CLOUD admin are able to perform a delete."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        :param req: request"},{"line_number":252,"context_line":"        :param id: target project id that needs to be deleted"}],"source_content_type":"text/x-python","patch_set":2,"id":"65ee78db_66c992de","line":249,"range":{"start_line":247,"start_character":8,"end_line":249,"end_character":49},"updated":"2020-12-02 19:19:48.000000000","message":"this comment needs to be updated","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":244,"context_line":"    def delete(self, req, id):"},{"line_number":245,"context_line":"        \"\"\"Delete Quota for a particular tenant."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        This works for hierarchical and non-hierarchical projects. For"},{"line_number":248,"context_line":"        hierarchical projects only immediate parent admin or the"},{"line_number":249,"context_line":"        CLOUD admin are able to perform a delete."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        :param req: request"},{"line_number":252,"context_line":"        :param id: target project id that needs to be deleted"}],"source_content_type":"text/x-python","patch_set":2,"id":"69747cb9_769ae6cf","line":249,"range":{"start_line":247,"start_character":8,"end_line":249,"end_character":49},"in_reply_to":"65ee78db_66c992de","updated":"2020-12-04 08:45:16.000000000","message":"Done","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"}],"cinder/cmd/status.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":253,"context_line":"        # added in Train"},{"line_number":254,"context_line":"        (\u0027Periodic Interval Use\u0027, _check_periodic_interval),"},{"line_number":255,"context_line":"        (\u0027Service UUIDs\u0027, _check_service_uuid),"},{"line_number":256,"context_line":"        (\u0027Attachment specs\u0027, _check_attachment_specs),"},{"line_number":257,"context_line":"    )"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"f489c5e2_ef83167b","line":256,"updated":"2020-12-02 19:19:48.000000000","message":"Instead of removing the check, how about moving it down here to \"# added in Wallaby\" and then editing the message in the function to say something like \"The NestedDbQuotaDriver, which was deprecated in Train, has been been removed in this release.\"\n\nI guess it should also return FAILURE instead of WARNING.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        # added in Train"},{"line_number":254,"context_line":"        (\u0027Periodic Interval Use\u0027, _check_periodic_interval),"},{"line_number":255,"context_line":"        (\u0027Service UUIDs\u0027, _check_service_uuid),"},{"line_number":256,"context_line":"        (\u0027Attachment specs\u0027, _check_attachment_specs),"},{"line_number":257,"context_line":"    )"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"6f47f4b0_f4f49885","line":256,"in_reply_to":"f489c5e2_ef83167b","updated":"2020-12-04 08:45:16.000000000","message":"Done","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3dc99662f683db938556702fcbd228aa5542832a","unresolved":true,"context_lines":[{"line_number":273,"context_line":"        (\u0027Service UUIDs\u0027, _check_service_uuid),"},{"line_number":274,"context_line":"        (\u0027Attachment specs\u0027, _check_attachment_specs),"},{"line_number":275,"context_line":"        # added in Wallaby"},{"line_number":276,"context_line":"        (\u0027Use of Nest Quota Driver\u0027, _check_nested_quota),"},{"line_number":277,"context_line":"    )"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"2e5d1647_fc83f044","line":276,"range":{"start_line":276,"start_character":17,"end_line":276,"end_character":22},"updated":"2021-01-13 22:07:50.000000000","message":"Should say \"Nested\" instead of \"Nest\".","commit_id":"2a9983172da45f87bd075aa4759a8a6fd866aea6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"81042e0126554e3604d2f3071d9982b1ed69352b","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        (\u0027Service UUIDs\u0027, _check_service_uuid),"},{"line_number":274,"context_line":"        (\u0027Attachment specs\u0027, _check_attachment_specs),"},{"line_number":275,"context_line":"        # added in Wallaby"},{"line_number":276,"context_line":"        (\u0027Use of Nest Quota Driver\u0027, _check_nested_quota),"},{"line_number":277,"context_line":"    )"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"2253dfad_0b821b8c","line":276,"range":{"start_line":276,"start_character":17,"end_line":276,"end_character":22},"in_reply_to":"2e5d1647_fc83f044","updated":"2021-01-18 06:09:58.000000000","message":"Done","commit_id":"2a9983172da45f87bd075aa4759a8a6fd866aea6"}],"cinder/quota_utils.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":92,"context_line":"                          parents_as_ids\u003dFalse, is_admin_project\u003dFalse):"},{"line_number":93,"context_line":"    \"\"\"A Helper method to get the project hierarchy."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    Along with hierarchical multitenancy in keystone API v3, projects can be"},{"line_number":96,"context_line":"    hierarchically organized. Therefore, we need to know the project"},{"line_number":97,"context_line":"    hierarchy, if any, in order to do nested quota operations properly."},{"line_number":98,"context_line":"    If the domain is being used as the top most parent, it is filtered out from"},{"line_number":99,"context_line":"    the parent tree and parent_id."},{"line_number":100,"context_line":"    \"\"\""},{"line_number":101,"context_line":"    keystone \u003d _keystone_client(context)"},{"line_number":102,"context_line":"    generic_project \u003d GenericProjectInfo(project_id, keystone.version)"},{"line_number":103,"context_line":"    if keystone.version \u003d\u003d \u0027v3\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"c26c9d48_a80866ee","line":100,"range":{"start_line":95,"start_character":0,"end_line":100,"end_character":0},"updated":"2020-12-02 19:19:48.000000000","message":"need to update this comment--I think you are still using this function for the project-level default_types?  You may want to replace this with a more specific function for the default_types in a follow-up patch.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                          parents_as_ids\u003dFalse, is_admin_project\u003dFalse):"},{"line_number":93,"context_line":"    \"\"\"A Helper method to get the project hierarchy."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    Along with hierarchical multitenancy in keystone API v3, projects can be"},{"line_number":96,"context_line":"    hierarchically organized. Therefore, we need to know the project"},{"line_number":97,"context_line":"    hierarchy, if any, in order to do nested quota operations properly."},{"line_number":98,"context_line":"    If the domain is being used as the top most parent, it is filtered out from"},{"line_number":99,"context_line":"    the parent tree and parent_id."},{"line_number":100,"context_line":"    \"\"\""},{"line_number":101,"context_line":"    keystone \u003d _keystone_client(context)"},{"line_number":102,"context_line":"    generic_project \u003d GenericProjectInfo(project_id, keystone.version)"},{"line_number":103,"context_line":"    if keystone.version \u003d\u003d \u0027v3\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"2e343e29_1db477c6","line":100,"range":{"start_line":95,"start_character":0,"end_line":100,"end_character":0},"in_reply_to":"c26c9d48_a80866ee","updated":"2020-12-04 08:45:16.000000000","message":"I\u0027ve updated the comment to not mention nested quota driver here.\nI will replace this with a function that only verifies the existence of a project in keystone DB since we don\u0027t deal with hierarchy anymore anywhere, will do it in a different patch.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":123,"context_line":"    return generic_project"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"def get_parent_project_id(context, project_id):"},{"line_number":127,"context_line":"    return get_project_hierarchy(context, project_id).parent_id"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"def get_all_projects(context):"},{"line_number":131,"context_line":"    # Right now this would have to be done as cloud admin with Keystone v3"},{"line_number":132,"context_line":"    return _keystone_client(context, (3, 0)).projects.list()"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"def get_all_root_project_ids(context):"},{"line_number":136,"context_line":"    project_list \u003d get_all_projects(context)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    # Find every project which does not have a parent, meaning it is the"},{"line_number":139,"context_line":"    # root of the tree"},{"line_number":140,"context_line":"    project_roots \u003d [project.id for project in project_list"},{"line_number":141,"context_line":"                     if not project.parent_id]"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    return project_roots"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"def update_alloc_to_next_hard_limit(context, resources, deltas, res,"},{"line_number":147,"context_line":"                                    expire, project_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ce76bc26_c20b01f4","line":144,"range":{"start_line":126,"start_character":0,"end_line":144,"end_character":0},"updated":"2020-12-02 19:19:48.000000000","message":"I think these aren\u0027t used any more.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    return generic_project"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"def get_parent_project_id(context, project_id):"},{"line_number":127,"context_line":"    return get_project_hierarchy(context, project_id).parent_id"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"def get_all_projects(context):"},{"line_number":131,"context_line":"    # Right now this would have to be done as cloud admin with Keystone v3"},{"line_number":132,"context_line":"    return _keystone_client(context, (3, 0)).projects.list()"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"def get_all_root_project_ids(context):"},{"line_number":136,"context_line":"    project_list \u003d get_all_projects(context)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    # Find every project which does not have a parent, meaning it is the"},{"line_number":139,"context_line":"    # root of the tree"},{"line_number":140,"context_line":"    project_roots \u003d [project.id for project in project_list"},{"line_number":141,"context_line":"                     if not project.parent_id]"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    return project_roots"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"def update_alloc_to_next_hard_limit(context, resources, deltas, res,"},{"line_number":147,"context_line":"                                    expire, project_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"e1b8484c_bb053787","line":144,"range":{"start_line":126,"start_character":0,"end_line":144,"end_character":0},"in_reply_to":"ce76bc26_c20b01f4","updated":"2020-12-04 08:45:16.000000000","message":"Done","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[{"line_number":143,"context_line":"    return project_roots"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"def update_alloc_to_next_hard_limit(context, resources, deltas, res,"},{"line_number":147,"context_line":"                                    expire, project_id):"},{"line_number":148,"context_line":"    from cinder import quota"},{"line_number":149,"context_line":"    QUOTAS \u003d quota.QUOTAS"}],"source_content_type":"text/x-python","patch_set":2,"id":"5edc385b_c3ce4d98","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":35},"updated":"2020-12-02 19:19:48.000000000","message":"I don\u0027t think this function is used any more.","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    return project_roots"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"def update_alloc_to_next_hard_limit(context, resources, deltas, res,"},{"line_number":147,"context_line":"                                    expire, project_id):"},{"line_number":148,"context_line":"    from cinder import quota"},{"line_number":149,"context_line":"    QUOTAS \u003d quota.QUOTAS"}],"source_content_type":"text/x-python","patch_set":2,"id":"d7203e1e_7566a898","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":35},"in_reply_to":"5edc385b_c3ce4d98","updated":"2020-12-04 08:45:16.000000000","message":"Done","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"}],"cinder/tests/unit/cmd/test_status.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"40c7f2c382141b4b54972fb7fe0c0118ffaa2d5c","unresolved":true,"context_lines":[{"line_number":155,"context_line":"    @ddt.data([\u0027cinder.quota.DbQuotaDriver\u0027, True],"},{"line_number":156,"context_line":"              [\u0027cinder.quota.NestedDbQuotaDriver\u0027, False])"},{"line_number":157,"context_line":"    @ddt.unpack"},{"line_number":158,"context_line":"    def test_nested_quota_driver(self, driver, should_pass):"},{"line_number":159,"context_line":"        self._set_config(\u0027quota_driver\u0027, driver)"},{"line_number":160,"context_line":"        result \u003d self.checks._check_nested_quota()"},{"line_number":161,"context_line":"        if should_pass:"}],"source_content_type":"text/x-python","patch_set":5,"id":"cf79ad3e_a0608108","side":"PARENT","line":158,"updated":"2021-01-19 14:31:54.000000000","message":"Just noticed that you forgot to restore this test when you updated the status check code.","commit_id":"0f2eff2ec3ab5f94ddb63f63d18d66ba99934867"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7bf92597b5e13faaa0aea57ba0082690b7423490","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    @ddt.data([\u0027cinder.quota.DbQuotaDriver\u0027, True],"},{"line_number":156,"context_line":"              [\u0027cinder.quota.NestedDbQuotaDriver\u0027, False])"},{"line_number":157,"context_line":"    @ddt.unpack"},{"line_number":158,"context_line":"    def test_nested_quota_driver(self, driver, should_pass):"},{"line_number":159,"context_line":"        self._set_config(\u0027quota_driver\u0027, driver)"},{"line_number":160,"context_line":"        result \u003d self.checks._check_nested_quota()"},{"line_number":161,"context_line":"        if should_pass:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1280c610_42065351","side":"PARENT","line":158,"in_reply_to":"cf79ad3e_a0608108","updated":"2021-01-19 17:47:05.000000000","message":"Done","commit_id":"0f2eff2ec3ab5f94ddb63f63d18d66ba99934867"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"40c7f2c382141b4b54972fb7fe0c0118ffaa2d5c","unresolved":true,"context_lines":[{"line_number":161,"context_line":"        if should_pass:"},{"line_number":162,"context_line":"            expected \u003d uc.Code.SUCCESS"},{"line_number":163,"context_line":"        else:"},{"line_number":164,"context_line":"            expected \u003d uc.Code.WARNING"},{"line_number":165,"context_line":"        self.assertEqual(expected, result.code)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def test_check_legacy_win_conf(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"97635602_148d788a","side":"PARENT","line":164,"range":{"start_line":164,"start_character":31,"end_line":164,"end_character":38},"updated":"2021-01-19 14:31:54.000000000","message":"this will be FAILURE now","commit_id":"0f2eff2ec3ab5f94ddb63f63d18d66ba99934867"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7bf92597b5e13faaa0aea57ba0082690b7423490","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        if should_pass:"},{"line_number":162,"context_line":"            expected \u003d uc.Code.SUCCESS"},{"line_number":163,"context_line":"        else:"},{"line_number":164,"context_line":"            expected \u003d uc.Code.WARNING"},{"line_number":165,"context_line":"        self.assertEqual(expected, result.code)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def test_check_legacy_win_conf(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"10a55279_3fe920fd","side":"PARENT","line":164,"range":{"start_line":164,"start_character":31,"end_line":164,"end_character":38},"in_reply_to":"97635602_148d788a","updated":"2021-01-19 17:47:05.000000000","message":"Done","commit_id":"0f2eff2ec3ab5f94ddb63f63d18d66ba99934867"}],"doc/source/configuration/block-storage/nested-quota.rst":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd0805b5484f44bb9051e7b307f37b90133223e9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"231abb7f_175c64e1","updated":"2020-12-02 19:19:48.000000000","message":"I think you can delete this file.  (Don\u0027t forget to remove the reference from ../index.rst)","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73f4986e5995bb8c4f84d733c970a4fdbd5253c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"686a8bef_1fec5964","in_reply_to":"231abb7f_175c64e1","updated":"2020-12-04 08:45:16.000000000","message":"Done","commit_id":"48a453478fb88c71ab50cc29ea9dd8dbb473bba8"}]}
