)]}'
{"id":"openstack%2Fswift~956193","triplet_id":"openstack%2Fswift~stable%2F2025.1~Ic0c55e307ce10b56b569c9fee728c445a2300cbd","project":"openstack/swift","branch":"stable/2025.1","topic":"aws-chunked-backport","attention_set":{},"removed_from_attention_set":{"15343":{"account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"last_update":"2025-08-05 16:15:03.000000000","reason":"\u003cGERRIT_ACCOUNT_15343\u003e replied on the change","reason_account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}}},"hashtags":[],"change_id":"Ic0c55e307ce10b56b569c9fee728c445a2300cbd","subject":"utils: Add CRCHasher and crc32c implementation","status":"MERGED","created":"2025-07-30 20:18:08.000000000","updated":"2025-08-06 23:12:57.000000000","submitted":"2025-08-06 23:12:57.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"956193-aws-chunked-backport","meta_rev_id":"b97eee583b7701f0a098a48e38243452f3f1b7fe","_number":956193,"virtual_id_number":956193,"owner":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-08-06 23:12:56.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2025-08-06 21:56:35.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2025-08-06 21:56:35.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-07-30 22:00:23.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"2a9aeaee5abf3ea987eac0b2d89dbd8bebac8adb","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2025-07-30 20:18:08.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f6185f5e1f3104f5d28a2279ea32fa02193f341e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2025-07-30 20:51:05.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.","accounts_in_message":[],"_revision_number":2},{"id":"13d7b7557b7545869427d7a399bd43ca29361f0c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-30 22:00:23.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/149fd1aaf9e0475eaa9fae83ce4d5765\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b60fb822bc0a44ff957cfec11c14dc24 : SUCCESS in 5m 11s\n- grenade https://zuul.opendev.org/t/openstack/build/45ec045f47f648588383aca467469e1e : SUCCESS in 48m 18s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/4a3fa88debd84bffb37a41bf48a2df05 : SUCCESS in 1h 02m 19s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/e845a8a3f0124ad589e257e945fbb1bd : SUCCESS in 40m 02s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/b159926ef01b41b2b9f35c393e3fa186 : SUCCESS in 54m 07s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4029636852924a2e93cd0c3a1046e0d2 : SUCCESS in 14m 26s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1bab531ed07e4012990fbea56c33e033 : SUCCESS in 18m 03s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6cfcc8bfacdb4085b933f97b4fd4e26e : SUCCESS in 20m 02s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/7196c905e1e64f2388ffa8a134196d5f : SUCCESS in 5m 32s (non-voting)\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/5ad373e7ed9b411c8fd73d12890aa832 : SUCCESS in 15m 01s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/e0e2d559ad81453c982376d0c5ba310e : SUCCESS in 18m 50s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/6d93aa9d2d1244238f4a1f1f71bf486d : SUCCESS in 43m 05s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/c03723e9c118483287d072f355e0900c : SUCCESS in 17m 12s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/92566f5943ba4c6b86617d2bb8894ae9 : SUCCESS in 12m 30s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/d59d1770e47741c1a6187ac55b6fc99c : SUCCESS in 15m 58s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/dfae9b5c05064e258c804d6274081759 : SUCCESS in 5m 39s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/0ad8ba60371e4e5daa36aa59aaea093e : SUCCESS in 7m 59s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/429e2de052974d63b98577facd08d69e : SUCCESS in 7m 23s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/4b033f60aa8d422b9762fe6adcd4b8c0 : SUCCESS in 56m 11s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6210589f2fb04ffeae94e7cd532649ca : SUCCESS in 31m 20s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/2db235343be0477799f93ed420c3d1a5 : SUCCESS in 39m 00s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/ff53903d437f4a859223e54b7541b38b : SUCCESS in 19m 39s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/caae77e09e7340118a7a0f68ef86209c : SUCCESS in 4m 38s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/c1d598dd231d4905ae5aaf234e893946 : FAILURE in 8m 25s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/114ee5434d114601a3520f146d1382e3 : SUCCESS in 28m 23s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/2a315dcffa0441db990a4c14728e1a2d : SUCCESS in 49m 33s","accounts_in_message":[],"_revision_number":2},{"id":"21762dbc51325426f2bf7f87b10d0160da8179ea","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-30 22:08:04.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0bf95480551c4eacbc52427e76aadb4f\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/ecec533317b045d19ea240f81b6cf8aa : SUCCESS in 1h 04m 32s","accounts_in_message":[],"_revision_number":2},{"id":"5debbc888c6e4cd3a6036f69128517c58a61f295","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2025-08-05 16:15:03.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"b7601d99ecba7567ebfee05dbc31e3b1a4df8cfa","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-05 17:24:57.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7a58be7c0d7748bda96489e046d1468d\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c4861aa8e4614a4d9f74d76f9f3ed146 : SUCCESS in 11m 16s\n- grenade https://zuul.opendev.org/t/openstack/build/8e2b1adbd4cd43bdb910f6c300142ad7 : SUCCESS in 1h 04m 03s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/93618458bb514cc39df00ed4f5169bc0 : SUCCESS in 32m 02s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/eb08e6122e1545de81cd1c22021f9c59 : SUCCESS in 28m 16s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/8a1393182ac046a795384b99f1950b75 : SUCCESS in 57m 53s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/2d96ce09f0c74e128171ab73817f21bb : SUCCESS in 20m 18s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/29a07347d8164564940dce03e12ab272 : SUCCESS in 19m 41s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cc8287e664b84c91afa1ee2e55858ce3 : SUCCESS in 26m 47s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/14fda2ad34e24163ad911ba92da1e2e9 : SUCCESS in 5m 11s (non-voting)\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/4cdd4aa040d244ac97a75bb49bb91f5f : SUCCESS in 18m 41s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/5610bc913c16467cba8e9f07efe6d20e : SUCCESS in 22m 12s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/ab2b9cb77d664762be47de50142b25cb : SUCCESS in 25m 33s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/a225954d99aa4b92bba101eed5160777 : SUCCESS in 12m 32s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/79be3b6473794903b6f33ea47c2fe3d8 : SUCCESS in 7m 37s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/f26202289fc2479eba9871c8a4b8eb72 : SUCCESS in 14m 39s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e4f623edc17246f79576abc85fc8f364 : SUCCESS in 6m 08s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/122f04c9d3b9491985e646de82f775ed : SUCCESS in 15m 09s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/cbd3df0e4a3940df820be0a0a0316365 : SUCCESS in 7m 01s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/8851fec8f3a540728652422926dcd3b4 : SUCCESS in 55m 13s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/1c528567479d405ab0f547461720b23a : SUCCESS in 32m 05s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4f71e1183abf47deab508ebb147724f7 : SUCCESS in 52m 34s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/181c63ec48ec4f9d94cb0bc3ad5ab7fc : SUCCESS in 7m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/86c56143de50402992ef0fdd52489e8b : SUCCESS in 4m 37s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a4730375a2be4960869d77bbe99355e5 : SUCCESS in 10m 57s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/5220f14612cb4283bd4d6c2bfc26f19a : SUCCESS in 56m 24s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/9bcf07df5f0340048ea71a9e83e7bb21 : SUCCESS in 52m 35s","accounts_in_message":[],"_revision_number":2},{"id":"08f56c1c012655f84e794f055ddd382181a45b6b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-05 17:47:09.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7d37c0df028641ba9d08025392cb820e\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/6637cb1d62384e3a8586dfc9a5c67cb9 : SUCCESS in 1h 30m 10s","accounts_in_message":[],"_revision_number":2},{"id":"2e6b89233255a085e32cc4f82170d6b9504e7f60","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2025-08-06 21:56:35.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"3844610add8f6de32b3aa6bc7631f222850dac9d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-06 21:57:09.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"d6c26fd6cfd1f00dd022d72cfcfe4270319c7ae8","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-06 23:12:56.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c403e934572b449a901131431f7d76b5\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ef174daabb4c47e7819b5ba0b0ac9783 : SUCCESS in 10m 14s\n- grenade https://zuul.opendev.org/t/openstack/build/fd0e3885f4d44f3f99c573b02a06e90f : SUCCESS in 56m 02s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/d4e0370962fc43458dffdf11821f1dbb : SUCCESS in 1h 01m 03s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/47806911366342639d3ff6d7d2777045 : SUCCESS in 57m 41s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/0d7bd59d440b4f44abfd80a942f33883 : SUCCESS in 1h 05m 10s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/6e7e70e708964d2d8fc6b9b4b538871f : SUCCESS in 5m 19s (non-voting)\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/029edc8a9fdd4ec0800349c4a309cd00 : SUCCESS in 18m 12s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/c4350f2ff030403e9b8b0f3a51ca7347 : SUCCESS in 26m 38s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/1df28b807be6471b819bffba492e8ae4 : SUCCESS in 27m 10s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/f10b68471678453f9ab04154dfa79f5f : SUCCESS in 12m 44s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/a9f7e560df7f4415a5a3e315c90d33b2 : SUCCESS in 14m 39s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/3383d32f20b64970892aa421cfacc715 : SUCCESS in 14m 16s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/9e72fa52d417460cb8ec965cc0bf69c7 : SUCCESS in 7m 52s\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/2915ccacff714d85acdf217d8eae6d28 : SUCCESS in 8m 58s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/8e4d50d20ff84b1e9554d998a4ef454e : SUCCESS in 58m 00s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/55599096b7cf4c65a499d25553d915b2 : SUCCESS in 46m 04s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4411acae794445efad1a3305ffedba4e : SUCCESS in 47m 44s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8f309b0168ef420095101065053118cb : SUCCESS in 9m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/47ae7f6437924f6daa81a9aff9536c83 : SUCCESS in 3m 55s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/20a772dc012b4eff95013988974ea80a : SUCCESS in 24m 14s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/296337540c8c4d949cf8124ddc70c78b : SUCCESS in 52m 13s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/afadffafb78541c186573c9404ab0f78 : SUCCESS in 43m 12s","accounts_in_message":[],"_revision_number":2},{"id":"b97eee583b7701f0a098a48e38243452f3f1b7fe","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-06 23:12:57.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"02d5833cd992eff954f72e305bb2623aab108c66","revisions":{"419633e52c9201f041d4403f368d255e35ac4443":{"kind":"REWORK","_number":1,"created":"2025-07-30 20:18:08.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/93/956193/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/93/956193/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/93/956193/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/93/956193/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/93/956193/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/93/956193/1"}}},"commit":{"parents":[{"commit":"75eaa7cdc8e1a85ee8bda5c390e522ea2b0474fe","subject":"Add support of Sigv4-streaming","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/75eaa7cdc8e1a85ee8bda5c390e522ea2b0474fe"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2024-02-16 06:32:03.000000000","tz":-480},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2025-07-30 20:17:29.000000000","tz":-420},"subject":"utils: Add CRCHasher and crc32c implementation","message":"utils: Add CRCHasher and crc32c implementation\n\nA new CRCHasher class wraps crc functions to mimic the hashlib\nhasher interface.\n\nFor crc32, use the zlib implementation.\n\nFor crc32c, use ISA-L if we can find it; on py38+ this includes the\nISA-L bundled in pyeclib\u0027s binary wheels.\n\nIf ISA-L is not available, check for kernel crypto API support for crc32c;\nuse it if available. Otherwise, raise a NotImplementedError.\n\nNo callers yet, but these will be used by s3api in a later patch.\n\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\nChange-Id: Ic0c55e307ce10b56b569c9fee728c445a2300cbd\n(cherry picked from commit b65855d7153cde393752c28c2516eeeb7d1a10e1)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/419633e52c9201f041d4403f368d255e35ac4443"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/419633e52c9201f041d4403f368d255e35ac4443"}]},"branch":"refs/heads/stable/2025.1"},"02d5833cd992eff954f72e305bb2623aab108c66":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2025-07-30 20:51:05.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/93/956193/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/93/956193/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/93/956193/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/93/956193/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/93/956193/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/93/956193/2"}}},"commit":{"parents":[{"commit":"68ef96d4424517d3dc7273e4b24994e72341fb7f","subject":"Add support of Sigv4-streaming","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/68ef96d4424517d3dc7273e4b24994e72341fb7f"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2024-02-16 06:32:03.000000000","tz":-480},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2025-07-30 20:50:58.000000000","tz":-420},"subject":"utils: Add CRCHasher and crc32c implementation","message":"utils: Add CRCHasher and crc32c implementation\n\nA new CRCHasher class wraps crc functions to mimic the hashlib\nhasher interface.\n\nFor crc32, use the zlib implementation.\n\nFor crc32c, use ISA-L if we can find it; on py38+ this includes the\nISA-L bundled in pyeclib\u0027s binary wheels.\n\nIf ISA-L is not available, check for kernel crypto API support for crc32c;\nuse it if available. Otherwise, raise a NotImplementedError.\n\nNo callers yet, but these will be used by s3api in a later patch.\n\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\nChange-Id: Ic0c55e307ce10b56b569c9fee728c445a2300cbd\n(cherry picked from commit b65855d7153cde393752c28c2516eeeb7d1a10e1)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/02d5833cd992eff954f72e305bb2623aab108c66"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/02d5833cd992eff954f72e305bb2623aab108c66"}]},"branch":"refs/heads/stable/2025.1"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
