)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":34373,"name":"Jason Paroly","email":"jparoly@redhat.com","username":"jparoly"},"change_message_id":"d332c43fe801e2f3f4dd18255975ea8b02547fc0","unresolved":true,"context_lines":[{"line_number":9,"context_line":"This test validates behavior when object count quota is exceeded on the"},{"line_number":10,"context_line":"account level by uploading a single object. Sets quota_count\u003d0 to"},{"line_number":11,"context_line":"workaround eventual consistency limitations and ensure the system"},{"line_number":12,"context_line":"correctly raises an OverLimit exception on the upload attempt.Version"},{"line_number":13,"context_line":"check is also added if version is greater or equal than 2.34 then the"},{"line_number":14,"context_line":"test will execute otherwise skipped."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"76ceb97e_0d1ceccb","line":12,"range":{"start_line":12,"start_character":54,"end_line":12,"end_character":69},"updated":"2026-03-17 20:30:59.000000000","message":"Add space(s) after period","commit_id":"493c22d6b7f1fa078be5a4e7465fd183a47feade"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"09252b078c8bd110baa9b96b54a3fadfd9bf784f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This test validates behavior when object count quota is exceeded on the"},{"line_number":10,"context_line":"account level by uploading a single object. Sets quota_count\u003d0 to"},{"line_number":11,"context_line":"workaround eventual consistency limitations and ensure the system"},{"line_number":12,"context_line":"correctly raises an OverLimit exception on the upload attempt.Version"},{"line_number":13,"context_line":"check is also added if version is greater or equal than 2.34 then the"},{"line_number":14,"context_line":"test will execute otherwise skipped."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f1260cd_5dd129f2","line":12,"range":{"start_line":12,"start_character":54,"end_line":12,"end_character":69},"in_reply_to":"76ceb97e_0d1ceccb","updated":"2026-03-23 20:09:41.000000000","message":"Acknowledged","commit_id":"493c22d6b7f1fa078be5a4e7465fd183a47feade"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"0dc50a7eddd044e0e823867f3dab3622d328e871","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b2c45db6_cf645372","updated":"2025-07-18 15:09:48.000000000","message":"The CI 2024.1 test fails because that release did not include the tested feature. We therefore need a version check to decide if the test should be skipped or not. Please see my inline comments.\n\n@Ghanshyam: what do you think about this proposal?","commit_id":"5e2cd0135519a3243275b83077071b9b4196582e"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"852b6d55ac4f3052eeda064c022cdba6c1b4221d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"65360e88_19a4095c","updated":"2025-09-11 06:46:24.000000000","message":"This looks pretty good!\n\nThe CI behaves exactly as intended - the test is executed and passes tempest-full-2025-1:\n\n    2025-09-10 14:04:19.856014 | controller | {1} tempest.api.object_storage.test_account_quotas.AccountQuotasTest.test_upload_too_many_objects [0.074318s] ... ok\n\nIn tempest-full-2024-1 it is skipped:\n\n    2025-09-10 13:58:56.077829 | controller | {1} tempest.api.object_storage.test_account_quotas.AccountQuotasTest.test_upload_too_many_objects ... SKIPPED: Account object count quota not supported\n    \nPlease see my two minor nits in the comments; apart from that it looks good to me.","commit_id":"48c0648624ffe8c4ba97b089e8638a9a44fda84d"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"1a6393eb4349f5ba13b00c8aa298cd0f34a21423","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a3aa24a2_9f7633f6","updated":"2025-09-12 13:03:31.000000000","message":"LGTM, thx!","commit_id":"da8a40604702f71205c27304864b1902e1cce172"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"b0cdd50b06e35376ba07c08d70bdfe6f6e59ee4e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"077a78c2_ff57dd6e","updated":"2025-09-18 11:17:01.000000000","message":"recheck","commit_id":"da8a40604702f71205c27304864b1902e1cce172"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"d1a7481ce9b6d8851751586c41e2f397cb8dd7e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"645d9caa_6e7ab8b2","updated":"2026-04-02 09:13:28.000000000","message":"Hi reviewers, this change is ready. All feedback has been addressed and everything is working fine.\nIf there are no further comments, please provide a Code-Review +2 and Workflow +1 so it can be merged. @jparoly@redhat.com, @gmaan.os14@gmail.com, @ashigupt@redhat.com, @alfrgarc@redhat.com\nThank you!","commit_id":"7d4d4a8e2e1abf21224f2ba32ff6d357db846887"},{"author":{"_account_id":32704,"name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc"},"change_message_id":"f8e636d763002b0ed81c4235d2b0c93af80b57f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8af2d65d_d668e38f","updated":"2026-03-31 12:14:48.000000000","message":"Well commented and well written, LGTM","commit_id":"7d4d4a8e2e1abf21224f2ba32ff6d357db846887"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"14467ad3f3496603ca17fa4dc0e552a6a938efa0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e7320e96_85090ce3","updated":"2026-05-08 17:37:09.000000000","message":"it seems 2024-2 jobs are broken as it is EOL, let me fix that, please avoid re run the test","commit_id":"7d4d4a8e2e1abf21224f2ba32ff6d357db846887"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"dd28d5c240e35baea3eb86e6c0f65b3bef7ce4bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"073a33f3_f1f3b9ab","updated":"2026-03-30 15:26:09.000000000","message":"recheck","commit_id":"7d4d4a8e2e1abf21224f2ba32ff6d357db846887"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"351238ac08b313eabf0a75ccd19129017d07b0af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c07bb366_a3d0a163","updated":"2026-05-08 10:24:11.000000000","message":"recheck","commit_id":"7d4d4a8e2e1abf21224f2ba32ff6d357db846887"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"56f9a7e1a88755439c522b20cbee4f9359c41ca9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"390e9338_28f2cb2a","updated":"2026-05-10 22:52:21.000000000","message":"recheck\n\nFour jobs failed in the gate queue (grenade-skip-level-always, tempest-full-enforce-scope-new-defaults, nova-ceph-multistore, nova-live-migration) but at least for 3 of them the failure happened while installing from pip (transient issue) and one failed in an unrelated tempest tests. Since then, all 4 jobs have been quiet stable","commit_id":"7d4d4a8e2e1abf21224f2ba32ff6d357db846887"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"41cb1c40470ce17ba2164b424a9e4900ac5075f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8372b5e6_095cead1","updated":"2026-03-24 11:44:13.000000000","message":"recheck (failures due to Nova build issues and Neutron policy)","commit_id":"7d4d4a8e2e1abf21224f2ba32ff6d357db846887"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"735b5772f9f5bcb1dbd6a1bee1940aced0698345","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8378843f_068459e1","updated":"2026-05-09 00:24:20.000000000","message":"recheck gate fix is merged\n\nnew test is passing https://zuul.opendev.org/t/openstack/build/ceff20d18e9542c1bd6f387eb82ea8b1/log/job-output.txt#24128","commit_id":"7d4d4a8e2e1abf21224f2ba32ff6d357db846887"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bc01a5ee74e155ce2be3e1e225f55c2cc299209a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5e9c67c8_6c0c4486","updated":"2026-05-07 19:05:08.000000000","message":"recheck refresh test log","commit_id":"7d4d4a8e2e1abf21224f2ba32ff6d357db846887"}],"tempest/api/object_storage/test_account_quotas.py":[{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"0dc50a7eddd044e0e823867f3dab3622d328e871","unresolved":true,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from tempest.api.object_storage import base"},{"line_number":16,"context_line":"from tempest.common import utils"},{"line_number":17,"context_line":"from tempest import config"},{"line_number":18,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":19,"context_line":"from tempest.lib import decorators"},{"line_number":20,"context_line":"from tempest.lib import exceptions as lib_exc"}],"source_content_type":"text/x-python","patch_set":2,"id":"3d20af99_362c4806","line":17,"updated":"2025-07-18 15:09:48.000000000","message":"The sketched idea below needs this:\n\n    from tempest.lib.common import api_version_request","commit_id":"5e2cd0135519a3243275b83077071b9b4196582e"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"852b6d55ac4f3052eeda064c022cdba6c1b4221d","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from tempest.api.object_storage import base"},{"line_number":16,"context_line":"from tempest.common import utils"},{"line_number":17,"context_line":"from tempest import config"},{"line_number":18,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":19,"context_line":"from tempest.lib import decorators"},{"line_number":20,"context_line":"from tempest.lib import exceptions as lib_exc"}],"source_content_type":"text/x-python","patch_set":2,"id":"44d71b2b_72f3fc0f","line":17,"in_reply_to":"3d20af99_362c4806","updated":"2025-09-11 06:46:24.000000000","message":"Done","commit_id":"5e2cd0135519a3243275b83077071b9b4196582e"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"0dc50a7eddd044e0e823867f3dab3622d328e871","unresolved":true,"context_lines":[{"line_number":66,"context_line":"        self.os_roles_operator.account_client.request("},{"line_number":67,"context_line":"            \"POST\", url\u003d\"\", headers\u003dheaders, body\u003d\"\""},{"line_number":68,"context_line":"        )"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def tearDown(self):"},{"line_number":71,"context_line":"        # Set the reselleradmin auth in headers for next account_client"},{"line_number":72,"context_line":"        # request"}],"source_content_type":"text/x-python","patch_set":2,"id":"f3173905_328eb559","line":69,"updated":"2025-07-18 15:09:48.000000000","message":"One possibility is to use Swift capabilities[1] to get the cluster version. For example, calling _get_version in setUp:\n\n    def _get_version(self):\n        swift_version \u003d \"latest\"\n\n        if CONF.object_storage_feature_enabled.discoverability:\n            body \u003d self.capabilities_client.list_capabilities()\n            _version \u003d body.get(\u0027swift\u0027, {}).get(\u0027version\u0027, \"latest\")\n            swift_version \u003d \".\".join(_version.split(\u0027.\u0027)[:2])\n\n        self.swift_version \u003d api_version_request.APIVersionRequest(\n                swift_version)\n\n[1] https://docs.openstack.org/api-ref/object-store/?expanded\u003dlist-activated-capabilities-detail#list-activated-capabilities","commit_id":"5e2cd0135519a3243275b83077071b9b4196582e"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"852b6d55ac4f3052eeda064c022cdba6c1b4221d","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.os_roles_operator.account_client.request("},{"line_number":67,"context_line":"            \"POST\", url\u003d\"\", headers\u003dheaders, body\u003d\"\""},{"line_number":68,"context_line":"        )"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def tearDown(self):"},{"line_number":71,"context_line":"        # Set the reselleradmin auth in headers for next account_client"},{"line_number":72,"context_line":"        # request"}],"source_content_type":"text/x-python","patch_set":2,"id":"5c69b0d3_a5968c5c","line":69,"in_reply_to":"f3173905_328eb559","updated":"2025-09-11 06:46:24.000000000","message":"Done","commit_id":"5e2cd0135519a3243275b83077071b9b4196582e"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"0dc50a7eddd044e0e823867f3dab3622d328e871","unresolved":true,"context_lines":[{"line_number":104,"context_line":"    @utils.requires_ext(extension\u003d\u0027account_quotas\u0027, service\u003d\u0027object\u0027)"},{"line_number":105,"context_line":"    def test_upload_too_many_objects(self):"},{"line_number":106,"context_line":"        \"\"\"Attempts to upload one object that exceeds the count quota\"\"\""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self._set_quota(quota_count\u003d0)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        # Try uploading one more object to exceed the quota"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aeba2ee_5f684a0e","line":107,"updated":"2025-07-18 15:09:48.000000000","message":"This test could then skipped based on the version, for example:\n\n        if self.swift_version \u003c api_version_request.APIVersionRequest(\u00272.40\u0027):\n            raise self.skipException(\u0027Account object count quota not supported\u0027)","commit_id":"5e2cd0135519a3243275b83077071b9b4196582e"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"c9793113101add20cbfddf277a283bb698ffa9ce","unresolved":true,"context_lines":[{"line_number":104,"context_line":"    @utils.requires_ext(extension\u003d\u0027account_quotas\u0027, service\u003d\u0027object\u0027)"},{"line_number":105,"context_line":"    def test_upload_too_many_objects(self):"},{"line_number":106,"context_line":"        \"\"\"Attempts to upload one object that exceeds the count quota\"\"\""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self._set_quota(quota_count\u003d0)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        # Try uploading one more object to exceed the quota"}],"source_content_type":"text/x-python","patch_set":2,"id":"d405494c_f0c2cf98","line":107,"in_reply_to":"9aeba2ee_5f684a0e","updated":"2025-07-18 15:10:31.000000000","message":"\u003e This test could then skipped based on the version, for example:\n\u003e \n\u003e         if self.swift_version \u003c api_version_request.APIVersionRequest(\u00272.36\u0027):\n\u003e             raise self.skipException(\u0027Account object count quota not supported\u0027)\n\n2.36, not 2.40.","commit_id":"5e2cd0135519a3243275b83077071b9b4196582e"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"852b6d55ac4f3052eeda064c022cdba6c1b4221d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    @utils.requires_ext(extension\u003d\u0027account_quotas\u0027, service\u003d\u0027object\u0027)"},{"line_number":105,"context_line":"    def test_upload_too_many_objects(self):"},{"line_number":106,"context_line":"        \"\"\"Attempts to upload one object that exceeds the count quota\"\"\""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self._set_quota(quota_count\u003d0)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        # Try uploading one more object to exceed the quota"}],"source_content_type":"text/x-python","patch_set":2,"id":"e9352b0b_48c9f653","line":107,"in_reply_to":"d405494c_f0c2cf98","updated":"2025-09-11 06:46:24.000000000","message":"Done","commit_id":"5e2cd0135519a3243275b83077071b9b4196582e"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"852b6d55ac4f3052eeda064c022cdba6c1b4221d","unresolved":true,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        self.swift_version \u003d api_version_request.APIVersionRequest("},{"line_number":80,"context_line":"            swift_version)"},{"line_number":81,"context_line":"        print(f\"Parsed Swift version: {self.swift_version}\")"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def tearDown(self):"},{"line_number":84,"context_line":"        # Set the reselleradmin auth in headers for next account_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"1607b76f_20e774aa","line":81,"updated":"2025-09-11 06:46:24.000000000","message":"Please remove the two print() statements here.\n\nIf you change this, you could also move this method to base.BaseObjectTest in object_storage/base.py. All object_storage test classes inherit this one, thus it will be available for all (future) test cases, if needed.","commit_id":"48c0648624ffe8c4ba97b089e8638a9a44fda84d"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"1a6393eb4349f5ba13b00c8aa298cd0f34a21423","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        self.swift_version \u003d api_version_request.APIVersionRequest("},{"line_number":80,"context_line":"            swift_version)"},{"line_number":81,"context_line":"        print(f\"Parsed Swift version: {self.swift_version}\")"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def tearDown(self):"},{"line_number":84,"context_line":"        # Set the reselleradmin auth in headers for next account_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"02c6fe66_d185a74e","line":81,"in_reply_to":"1607b76f_20e774aa","updated":"2025-09-12 13:03:31.000000000","message":"Done","commit_id":"48c0648624ffe8c4ba97b089e8638a9a44fda84d"},{"author":{"_account_id":34373,"name":"Jason Paroly","email":"jparoly@redhat.com","username":"jparoly"},"change_message_id":"d332c43fe801e2f3f4dd18255975ea8b02547fc0","unresolved":true,"context_lines":[{"line_number":48,"context_line":"        super(AccountQuotasTest, self).setUp()"},{"line_number":49,"context_line":"        self._set_quota()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _set_quota(self, quota_bytes\u003d20, quota_count\u003d5):"},{"line_number":52,"context_line":"        # Set the reselleradmin auth in headers for next account_client"},{"line_number":53,"context_line":"        # request"},{"line_number":54,"context_line":"        self.account_client.auth_provider.set_alt_auth_data("}],"source_content_type":"text/x-python","patch_set":6,"id":"e1dcc6cf_1ba72fc0","line":51,"updated":"2026-03-17 20:30:59.000000000","message":"Now that you are changing the default to 5, will this impact other test cases negatively?\n\ncheck: \n - test_upload_valid_object\n - test_overlimit_upload\n - test_storage_policy_quota_limit\n - test_admin_modify_quota","commit_id":"493c22d6b7f1fa078be5a4e7465fd183a47feade"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"09252b078c8bd110baa9b96b54a3fadfd9bf784f","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        super(AccountQuotasTest, self).setUp()"},{"line_number":49,"context_line":"        self._set_quota()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _set_quota(self, quota_bytes\u003d20, quota_count\u003d5):"},{"line_number":52,"context_line":"        # Set the reselleradmin auth in headers for next account_client"},{"line_number":53,"context_line":"        # request"},{"line_number":54,"context_line":"        self.account_client.auth_provider.set_alt_auth_data("}],"source_content_type":"text/x-python","patch_set":6,"id":"8a23149f_f1c84d1d","line":51,"in_reply_to":"e1dcc6cf_1ba72fc0","updated":"2026-03-23 20:09:41.000000000","message":"Good question.\n\nThe default quota_count\u003d5 is intended as a safe upper bound so that existing tests are not unintentionally constrained. I reviewed the impacted tests:\n\ntest_upload_valid_object -\u003e uploads a single object, well within the limit\ntest_overlimit_upload -\u003e validates byte quota, only attempts one upload\ntest_storage_policy_quota_limit -\u003e creates a small number of objects/containers, remains within the count limit\ntest_admin_modify_quota -\u003e does not upload objects\n\nSo none of these tests should be negatively impacted by the default value.\n\nAdditionally, the new test explicitly overrides the quota with quota_count\u003d0 to ensure deterministic OverLimit behavior.","commit_id":"493c22d6b7f1fa078be5a4e7465fd183a47feade"},{"author":{"_account_id":34373,"name":"Jason Paroly","email":"jparoly@redhat.com","username":"jparoly"},"change_message_id":"d332c43fe801e2f3f4dd18255975ea8b02547fc0","unresolved":true,"context_lines":[{"line_number":73,"context_line":"        if CONF.object_storage_feature_enabled.discoverability:"},{"line_number":74,"context_line":"            body \u003d self.capabilities_client.list_capabilities()"},{"line_number":75,"context_line":"            _version \u003d body.get(\u0027swift\u0027, {}).get(\u0027version\u0027, \"latest\")"},{"line_number":76,"context_line":"            swift_version \u003d \".\".join(_version.split(\u0027.\u0027)[:2])"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        self.swift_version \u003d api_version_request.APIVersionRequest("},{"line_number":79,"context_line":"            swift_version)"}],"source_content_type":"text/x-python","patch_set":6,"id":"56e9d574_79548f88","line":76,"updated":"2026-03-17 20:30:59.000000000","message":"will swift_version ever be \"latest\" or will it always be a number?","commit_id":"493c22d6b7f1fa078be5a4e7465fd183a47feade"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"09252b078c8bd110baa9b96b54a3fadfd9bf784f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        if CONF.object_storage_feature_enabled.discoverability:"},{"line_number":74,"context_line":"            body \u003d self.capabilities_client.list_capabilities()"},{"line_number":75,"context_line":"            _version \u003d body.get(\u0027swift\u0027, {}).get(\u0027version\u0027, \"latest\")"},{"line_number":76,"context_line":"            swift_version \u003d \".\".join(_version.split(\u0027.\u0027)[:2])"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        self.swift_version \u003d api_version_request.APIVersionRequest("},{"line_number":79,"context_line":"            swift_version)"}],"source_content_type":"text/x-python","patch_set":6,"id":"6a37a58a_1db39234","line":76,"in_reply_to":"56e9d574_79548f88","updated":"2026-03-23 20:09:41.000000000","message":"The reason for introducing 2.34 as the number in the code because: The account object count quota feature in Swift was only implemented from a specific version -\u003e2.34\n\nSo:\n\nVersions below 2.34 -\u003e the feature does not exist, so the test must be skipped to avoid false failures.\nVersions ≥2.34 -\u003e the feature is supported, so the test can safely run.","commit_id":"493c22d6b7f1fa078be5a4e7465fd183a47feade"},{"author":{"_account_id":34373,"name":"Jason Paroly","email":"jparoly@redhat.com","username":"jparoly"},"change_message_id":"d332c43fe801e2f3f4dd18255975ea8b02547fc0","unresolved":true,"context_lines":[{"line_number":86,"context_line":"            auth_data\u003dself.reselleradmin_auth_data"},{"line_number":87,"context_line":"        )"},{"line_number":88,"context_line":"        # remove the quota from the container"},{"line_number":89,"context_line":"        headers \u003d {\"X-Remove-Account-Meta-Quota-Bytes\": \"x\"}"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.os_roles_operator.account_client.request("},{"line_number":92,"context_line":"            \"POST\", url\u003d\"\", headers\u003dheaders, body\u003d\"\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"ee1c84b3_2b1b7c16","line":89,"updated":"2026-03-17 20:30:59.000000000","message":"should the teardown also remove the the quota count? Since you are adding that in the setup now?\n\nheaders \u003d {\n      \"X-Remove-Account-Meta-Quota-Bytes\": \"x\",\n      \"X-Remove-Account-Quota-Count\": \"x\"\n  }","commit_id":"493c22d6b7f1fa078be5a4e7465fd183a47feade"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"09252b078c8bd110baa9b96b54a3fadfd9bf784f","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            auth_data\u003dself.reselleradmin_auth_data"},{"line_number":87,"context_line":"        )"},{"line_number":88,"context_line":"        # remove the quota from the container"},{"line_number":89,"context_line":"        headers \u003d {\"X-Remove-Account-Meta-Quota-Bytes\": \"x\"}"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.os_roles_operator.account_client.request("},{"line_number":92,"context_line":"            \"POST\", url\u003d\"\", headers\u003dheaders, body\u003d\"\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"51bc1afa_ec007404","line":89,"in_reply_to":"82452aff_fa35f71a","updated":"2026-03-23 20:09:41.000000000","message":"Done","commit_id":"493c22d6b7f1fa078be5a4e7465fd183a47feade"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"0db5167850314e1600ea4d300fde02b20b544aab","unresolved":true,"context_lines":[{"line_number":86,"context_line":"            auth_data\u003dself.reselleradmin_auth_data"},{"line_number":87,"context_line":"        )"},{"line_number":88,"context_line":"        # remove the quota from the container"},{"line_number":89,"context_line":"        headers \u003d {\"X-Remove-Account-Meta-Quota-Bytes\": \"x\"}"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.os_roles_operator.account_client.request("},{"line_number":92,"context_line":"            \"POST\", url\u003d\"\", headers\u003dheaders, body\u003d\"\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"82452aff_fa35f71a","line":89,"in_reply_to":"ee1c84b3_2b1b7c16","updated":"2026-03-19 20:17:17.000000000","message":"+1 it should be added to the cleanup so that it doesn\u0027t affect other tests","commit_id":"493c22d6b7f1fa078be5a4e7465fd183a47feade"},{"author":{"_account_id":34373,"name":"Jason Paroly","email":"jparoly@redhat.com","username":"jparoly"},"change_message_id":"d332c43fe801e2f3f4dd18255975ea8b02547fc0","unresolved":true,"context_lines":[{"line_number":182,"context_line":"    @decorators.idempotent_id(\u0027b1e73f75-6905-4021-9d0b-796cd42ce279\u0027)"},{"line_number":183,"context_line":"    @utils.requires_ext(extension\u003d\u0027account_quotas\u0027, service\u003d\u0027object\u0027)"},{"line_number":184,"context_line":"    def test_upload_too_many_objects(self):"},{"line_number":185,"context_line":"        \"\"\"Attempts to upload one object that exceeds the count quota\"\"\""},{"line_number":186,"context_line":"        self._get_version()"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        if self.swift_version \u003c api_version_request.APIVersionRequest(\u00272.34\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"0be05005_d61826c1","line":185,"range":{"start_line":185,"start_character":11,"end_line":185,"end_character":69},"updated":"2026-03-17 20:30:59.000000000","message":"could be more clear: \"Test that uploading objects is blocked when account object count quota is exceeded\"","commit_id":"493c22d6b7f1fa078be5a4e7465fd183a47feade"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"09252b078c8bd110baa9b96b54a3fadfd9bf784f","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    @decorators.idempotent_id(\u0027b1e73f75-6905-4021-9d0b-796cd42ce279\u0027)"},{"line_number":183,"context_line":"    @utils.requires_ext(extension\u003d\u0027account_quotas\u0027, service\u003d\u0027object\u0027)"},{"line_number":184,"context_line":"    def test_upload_too_many_objects(self):"},{"line_number":185,"context_line":"        \"\"\"Attempts to upload one object that exceeds the count quota\"\"\""},{"line_number":186,"context_line":"        self._get_version()"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        if self.swift_version \u003c api_version_request.APIVersionRequest(\u00272.34\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"67635c09_871aa290","line":185,"range":{"start_line":185,"start_character":11,"end_line":185,"end_character":69},"in_reply_to":"0be05005_d61826c1","updated":"2026-03-23 20:09:41.000000000","message":"Done","commit_id":"493c22d6b7f1fa078be5a4e7465fd183a47feade"}]}
