)]}'
{"zun/common/exception.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f13467329bd17e101ecbc32507e3ce66b38d2726","unresolved":false,"context_lines":[{"line_number":684,"context_line":""},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"class QuotaNotFound(NotFound):"},{"line_number":687,"context_line":"    message \u003d _(\"Unknow for project %(project_id)s could not be found.\")"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"class ProjectQuotaNotFound(QuotaNotFound):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_f9274f11","line":687,"range":{"start_line":687,"start_character":17,"end_line":687,"end_character":23},"updated":"2018-04-12 03:42:47.000000000","message":"Not sure what it means.","commit_id":"a8d346ca3bca56f615945d7778be83bbf650a970"}],"zun/db/api.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f13467329bd17e101ecbc32507e3ce66b38d2726","unresolved":false,"context_lines":[{"line_number":907,"context_line":""},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"@profiler.trace(\"db\")"},{"line_number":910,"context_line":"def quota_get_all_by_project(context, project_id):"},{"line_number":911,"context_line":"    \"\"\"Retrieve all quotas associated with a given project\"\"\""},{"line_number":912,"context_line":"    return _get_dbdriver_instance().quota_get_all_by_project(context,"},{"line_number":913,"context_line":"                                                             project_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_6b360606","line":910,"range":{"start_line":910,"start_character":4,"end_line":910,"end_character":28},"updated":"2018-04-12 03:42:47.000000000","message":"It looks this method doesn\u0027t have unit test coverage?","commit_id":"a8d346ca3bca56f615945d7778be83bbf650a970"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f13467329bd17e101ecbc32507e3ce66b38d2726","unresolved":false,"context_lines":[{"line_number":921,"context_line":""},{"line_number":922,"context_line":""},{"line_number":923,"context_line":"@profiler.trace(\"db\")"},{"line_number":924,"context_line":"def quota_destroy_all_by_project(context, project_id):"},{"line_number":925,"context_line":"    \"\"\"Destroy all quotas associated with a given project\"\"\""},{"line_number":926,"context_line":"    return _get_dbdriver_instance().quota_destroy_all_by_project("},{"line_number":927,"context_line":"        context, project_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_8b2a7a8e","line":924,"range":{"start_line":924,"start_character":4,"end_line":924,"end_character":32},"updated":"2018-04-12 03:42:47.000000000","message":"Ditto.","commit_id":"a8d346ca3bca56f615945d7778be83bbf650a970"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f13467329bd17e101ecbc32507e3ce66b38d2726","unresolved":false,"context_lines":[{"line_number":949,"context_line":""},{"line_number":950,"context_line":""},{"line_number":951,"context_line":"@profiler.trace(\"db\")"},{"line_number":952,"context_line":"def quota_class_get_default(context):"},{"line_number":953,"context_line":"    \"\"\"Retrieve all default quota\"\"\""},{"line_number":954,"context_line":"    return _get_dbdriver_instance().quota_class_get_default(context)"},{"line_number":955,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_ab273ec7","line":952,"range":{"start_line":952,"start_character":4,"end_line":952,"end_character":27},"updated":"2018-04-12 03:42:47.000000000","message":"It looks this method doesn\u0027t have unit test coverage?","commit_id":"a8d346ca3bca56f615945d7778be83bbf650a970"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f13467329bd17e101ecbc32507e3ce66b38d2726","unresolved":false,"context_lines":[{"line_number":955,"context_line":""},{"line_number":956,"context_line":""},{"line_number":957,"context_line":"@profiler.trace(\"db\")"},{"line_number":958,"context_line":"def quota_class_get_all_by_name(context, class_name):"},{"line_number":959,"context_line":"    \"\"\"Retrieve all quotas associated with a given quota class\"\"\""},{"line_number":960,"context_line":"    return _get_dbdriver_instance().quota_class_get_all_by_name("},{"line_number":961,"context_line":"        context, class_name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_cb0dd23e","line":958,"range":{"start_line":958,"start_character":4,"end_line":958,"end_character":31},"updated":"2018-04-12 03:42:47.000000000","message":"Ditto","commit_id":"a8d346ca3bca56f615945d7778be83bbf650a970"}],"zun/db/sqlalchemy/api.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f13467329bd17e101ecbc32507e3ce66b38d2726","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"    def quota_get_all_by_project(self, context, project_id):"},{"line_number":1074,"context_line":"        session \u003d get_session()"},{"line_number":1075,"context_line":"        with session.begin():"},{"line_number":1076,"context_line":"            rows \u003d model_query(models.Quota, read_deleted\u003d\u0027no\u0027,"},{"line_number":1077,"context_line":"                               session\u003dsession).\\"},{"line_number":1078,"context_line":"                filter_by(project_id\u003dproject_id).\\"},{"line_number":1079,"context_line":"                all()"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_4ba1c2a8","line":1076,"range":{"start_line":1076,"start_character":45,"end_line":1076,"end_character":57},"updated":"2018-04-12 03:42:47.000000000","message":"It seems this is for reading a soft-deleted quota? Are you going to use soft deletion in quota?","commit_id":"a8d346ca3bca56f615945d7778be83bbf650a970"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f13467329bd17e101ecbc32507e3ce66b38d2726","unresolved":false,"context_lines":[{"line_number":1105,"context_line":"    def quota_destroy_all_by_project(self, context, project_id):"},{"line_number":1106,"context_line":"        model_query(models.Quota, read_deleted\u003d\u0027no\u0027).\\"},{"line_number":1107,"context_line":"            filter_by(project_id\u003dproject_id).\\"},{"line_number":1108,"context_line":"            soft_delete(synchronize_session\u003dFalse)"},{"line_number":1109,"context_line":""},{"line_number":1110,"context_line":"    def quota_class_create(self, context, class_name, resource, limit):"},{"line_number":1111,"context_line":"        quota_class_ref \u003d models.QuotaClass()"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_cbf95280","line":1108,"range":{"start_line":1108,"start_character":12,"end_line":1108,"end_character":23},"updated":"2018-04-12 03:42:47.000000000","message":"Several questions:\n\n* Zun doesn\u0027t use soft deletion in before. Do you intend to use it?\n* What are the advantages of using soft deletion?\n* If you want to enable soft deletion, do it require to introduce the SoftDeleteMixin https://github.com/openstack/oslo.db/blob/0a035933c813631f0c523bcc3b603dbd6ebf031e/oslo_db/sqlalchemy/session.py#L142 ?","commit_id":"a8d346ca3bca56f615945d7778be83bbf650a970"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f13467329bd17e101ecbc32507e3ce66b38d2726","unresolved":false,"context_lines":[{"line_number":1120,"context_line":"    def quota_class_get(self, context, class_name, resource):"},{"line_number":1121,"context_line":"        session \u003d get_session()"},{"line_number":1122,"context_line":"        with session.begin():"},{"line_number":1123,"context_line":"            result \u003d model_query(models.QuotaClass, read_deleted\u003d\u0027no\u0027,"},{"line_number":1124,"context_line":"                                 session\u003dsession).\\"},{"line_number":1125,"context_line":"                filter_by(class_name\u003dclass_name).\\"},{"line_number":1126,"context_line":"                filter_by(resource\u003dresource).\\"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_4b8a221b","line":1123,"range":{"start_line":1123,"start_character":52,"end_line":1123,"end_character":64},"updated":"2018-04-12 03:42:47.000000000","message":"Ditto","commit_id":"a8d346ca3bca56f615945d7778be83bbf650a970"}]}
