)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32755,"name":"Christian Rohmann","email":"christian.rohmann@inovex.de","username":"frittentheke"},"change_message_id":"9a522fca5ed166ee1007c44257c6533223a4d08f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"23d93039_e16f7dc9","updated":"2024-01-30 07:15:27.000000000","message":"I greatly appreciate all the work that goes into cleaning up and modernizing the quota system!\n\nJust one remark for your list of \"todos\":\n\n* Review and update database models\n** drop now redundant columns / indexes\n** add indexes where beneficial / required for the new quota queries","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"}],"cinder/api/contrib/admin_actions.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2eccbc8fc69e8c876a74fdd4a5b8704e0dd8d0a6","unresolved":true,"context_lines":[{"line_number":133,"context_line":"                                               message)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def _update(self, *args, **kwargs):"},{"line_number":136,"context_line":"        with quota.driver.reservations_clean_cm(context, volume_id):"},{"line_number":137,"context_line":"            db.volume_update(*args, **kwargs)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def _get(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"b8daf0b6_bb2913b7","line":136,"updated":"2024-02-07 20:40:02.000000000","message":"missing context and volume_id fields","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"}],"cinder/api/contrib/quota_classes.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2eccbc8fc69e8c876a74fdd4a5b8704e0dd8d0a6","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":39,"context_line":"        context.authorize(policy.GET_POLICY)"},{"line_number":40,"context_line":"        if id !\u003d \u0027default\u0027:"},{"line_number":41,"context_line":"            raise ValueError(f\u0027Unsupported quota class {id}\u0027)"},{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            db.sqlalchemy.api.authorize_quota_class_context(context, id)"},{"line_number":44,"context_line":"        except exception.NotAuthorized:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ad8dd22c_bbbd6c82","line":41,"range":{"start_line":41,"start_character":18,"end_line":41,"end_character":61},"updated":"2024-02-07 20:40:02.000000000","message":"should raise 400 BadRequest and also log an error","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2eccbc8fc69e8c876a74fdd4a5b8704e0dd8d0a6","unresolved":true,"context_lines":[{"line_number":54,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":55,"context_line":"        context.authorize(policy.UPDATE_POLICY)"},{"line_number":56,"context_line":"        if id !\u003d \u0027default\u0027:"},{"line_number":57,"context_line":"            raise ValueError(f\u0027Unsupported quota class {id}\u0027)"},{"line_number":58,"context_line":"        self.validate_string_length(id, \u0027quota_class_name\u0027,"},{"line_number":59,"context_line":"                                    min_length\u003d1, max_length\u003d255)"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"534c249a_a856cad6","line":57,"range":{"start_line":57,"start_character":18,"end_line":57,"end_character":28},"updated":"2024-02-07 20:40:02.000000000","message":"same","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"}],"cinder/api/contrib/quotas.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2eccbc8fc69e8c876a74fdd4a5b8704e0dd8d0a6","unresolved":true,"context_lines":[{"line_number":59,"context_line":"        \"\"\""},{"line_number":60,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":61,"context_line":"        params \u003d req.params"},{"line_number":62,"context_line":"        target_project_id \u003d id"},{"line_number":63,"context_line":"        context.authorize(policy.SHOW_POLICY,"},{"line_number":64,"context_line":"                          target\u003d{\u0027project_id\u0027: target_project_id})"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"0d0c298a_9a3be892","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":30},"updated":"2024-02-07 20:40:02.000000000","message":"we should validate if the passed value is an id and it is a valid keystone project\n\nsame for update, defaults, delete operations","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"}],"cinder/api/contrib/used_limits.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2eccbc8fc69e8c876a74fdd4a5b8704e0dd8d0a6","unresolved":true,"context_lines":[{"line_number":60,"context_line":"    \"\"\"Provide data on limited resources that are being used.\"\"\""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    name \u003d \"UsedLimits\""},{"line_number":63,"context_line":"    alias \u003d \u0027os-used-limits\u0027"},{"line_number":64,"context_line":"    updated \u003d \"2013-10-03T00:00:00+00:00\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def get_controller_extensions(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5b844997_a06c8dde","line":63,"range":{"start_line":63,"start_character":13,"end_line":63,"end_character":27},"updated":"2024-02-07 20:40:02.000000000","message":"could not confirm this since it\u0027s a v1 API with no cinderclient commands","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"}],"cinder/api/v2/limits.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2eccbc8fc69e8c876a74fdd4a5b8704e0dd8d0a6","unresolved":true,"context_lines":[{"line_number":52,"context_line":"    def index(self, req):"},{"line_number":53,"context_line":"        \"\"\"Return all global and rate limit information.\"\"\""},{"line_number":54,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":55,"context_line":"        # TODO: Not sure this is doing the same thing it did before"},{"line_number":56,"context_line":"        quotas \u003d quota.driver.get_limits_and_usage(context,"},{"line_number":57,"context_line":"                                                   usages\u003dFalse)"},{"line_number":58,"context_line":"        # Check if this line is needed or not"}],"source_content_type":"text/x-python","patch_set":1,"id":"d36e2253_11ff9380","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":67},"updated":"2024-02-07 20:40:02.000000000","message":"it is doing the right thing","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2eccbc8fc69e8c876a74fdd4a5b8704e0dd8d0a6","unresolved":true,"context_lines":[{"line_number":53,"context_line":"        \"\"\"Return all global and rate limit information.\"\"\""},{"line_number":54,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":55,"context_line":"        # TODO: Not sure this is doing the same thing it did before"},{"line_number":56,"context_line":"        quotas \u003d quota.driver.get_limits_and_usage(context,"},{"line_number":57,"context_line":"                                                   usages\u003dFalse)"},{"line_number":58,"context_line":"        # Check if this line is needed or not"},{"line_number":59,"context_line":"        abs_limits \u003d {k: v[\u0027limit\u0027] for k, v in quotas.items()}"}],"source_content_type":"text/x-python","patch_set":1,"id":"c1eee8d5_35e6ebe7","line":56,"range":{"start_line":56,"start_character":8,"end_line":56,"end_character":14},"updated":"2024-02-07 20:40:02.000000000","message":"this should be abs_limits","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2eccbc8fc69e8c876a74fdd4a5b8704e0dd8d0a6","unresolved":true,"context_lines":[{"line_number":55,"context_line":"        # TODO: Not sure this is doing the same thing it did before"},{"line_number":56,"context_line":"        quotas \u003d quota.driver.get_limits_and_usage(context,"},{"line_number":57,"context_line":"                                                   usages\u003dFalse)"},{"line_number":58,"context_line":"        # Check if this line is needed or not"},{"line_number":59,"context_line":"        abs_limits \u003d {k: v[\u0027limit\u0027] for k, v in quotas.items()}"},{"line_number":60,"context_line":"        rate_limits \u003d req.environ.get(\"cinder.limits\", [])"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        builder \u003d self._get_view_builder(req)"}],"source_content_type":"text/x-python","patch_set":1,"id":"eac68de2_e19ee196","line":59,"range":{"start_line":58,"start_character":8,"end_line":59,"end_character":63},"updated":"2024-02-07 20:40:02.000000000","message":"remote this","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"}],"cinder/api/v3/limits.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2eccbc8fc69e8c876a74fdd4a5b8704e0dd8d0a6","unresolved":true,"context_lines":[{"line_number":41,"context_line":"        project_id \u003d params.get("},{"line_number":42,"context_line":"            \u0027project_id\u0027, params.get(\u0027tenant_id\u0027, context.project_id))"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        quotas \u003d quota.driver.get_limits_and_usage(context,"},{"line_number":45,"context_line":"                                                   project_id,"},{"line_number":46,"context_line":"                                                   usages\u003dFalse)"},{"line_number":47,"context_line":"        # TODO: Check if the following line is needed or not"}],"source_content_type":"text/x-python","patch_set":1,"id":"b8fd553e_d8d1b2a3","line":44,"range":{"start_line":44,"start_character":8,"end_line":44,"end_character":14},"updated":"2024-02-07 20:40:02.000000000","message":"abs_limits","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2eccbc8fc69e8c876a74fdd4a5b8704e0dd8d0a6","unresolved":true,"context_lines":[{"line_number":44,"context_line":"        quotas \u003d quota.driver.get_limits_and_usage(context,"},{"line_number":45,"context_line":"                                                   project_id,"},{"line_number":46,"context_line":"                                                   usages\u003dFalse)"},{"line_number":47,"context_line":"        # TODO: Check if the following line is needed or not"},{"line_number":48,"context_line":"        abs_limits \u003d {k: v[\u0027limit\u0027] for k, v in quotas.items()}"},{"line_number":49,"context_line":"        rate_limits \u003d req.environ.get(\"cinder.limits\", [])"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        builder \u003d self._get_view_builder(req)"}],"source_content_type":"text/x-python","patch_set":1,"id":"88bbe284_e43b6e4f","line":48,"range":{"start_line":47,"start_character":8,"end_line":48,"end_character":63},"updated":"2024-02-07 20:40:02.000000000","message":"not needed","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"}],"cinder/api/validation/validators.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2eccbc8fc69e8c876a74fdd4a5b8704e0dd8d0a6","unresolved":true,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"@jsonschema.FormatChecker.cls_checks(\u0027quota_set\u0027)"},{"line_number":235,"context_line":"def _validate_quota_set(quota_set):"},{"line_number":236,"context_line":"    # This is not 100% accurate, since we\u0027ll also be checking against"},{"line_number":237,"context_line":"    # innacessible private type resources"},{"line_number":238,"context_line":"    defaults \u003d quota.driver.get_defaults(context\u003dcontext.get_admin_context(),"},{"line_number":239,"context_line":"                                         project_id\u003dNone)"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"a4d06ec3_f32cb45a","line":237,"range":{"start_line":236,"start_character":4,"end_line":237,"end_character":41},"updated":"2024-02-07 20:40:02.000000000","message":"maybe add a new field \u0027private\u0027 to quotas table to filter out private type quotas?","commit_id":"c4d0e40e6ad52c18a1bb8ff4c64399040d843371"}]}
