)]}'
{"id":"openstack%2Fswift~973672","triplet_id":"openstack%2Fswift~master~I9e319b75c557d5ab971182adb4aa10ad27a14d0b","project":"openstack/swift","branch":"master","topic":"s3api-object-expiration","attention_set":{},"removed_from_attention_set":{"34930":{"account":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"last_update":"2026-01-30 18:02:18.000000000","reason":"Change was submitted"},"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2026-01-30 14:05:57.000000000","reason":"\u003cGERRIT_ACCOUNT_7847\u003e replied on the change","reason_account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}},"1179":{"account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"last_update":"2026-01-30 15:20:04.000000000","reason":"\u003cGERRIT_ACCOUNT_1179\u003e replied on the change","reason_account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"}},"2622":{"account":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"last_update":"2026-01-30 18:02:18.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I9e319b75c557d5ab971182adb4aa10ad27a14d0b","subject":"s3api: Support for object expiration time","status":"MERGED","created":"2026-01-16 18:37:18.000000000","updated":"2026-01-30 18:03:18.000000000","submitted":"2026-01-30 18:02:18.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":33,"unresolved_comment_count":2,"has_review_started":true,"submission_id":"973672-s3api-object-expiration","meta_rev_id":"50d691a79fdcb8d594629c7840880b36c0d3dcd7","_number":973672,"virtual_id_number":973672,"owner":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-01-30 18:02:18.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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":2,"date":"2026-01-30 14:05:57.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":2,"date":"2026-01-30 15:20:04.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-01-30 16:58:39.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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-01-30 16:58:39.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":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-01-16 19:55:26.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"},{"updated":"2026-01-16 22:22:37.000000000","updated_by":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"reviewer":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"state":"CC"},{"updated":"2026-01-20 17:27:50.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"CC"},{"updated":"2026-01-20 17:36:18.000000000","updated_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"reviewer":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"state":"CC"},{"updated":"2026-01-22 12:53:52.000000000","updated_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"reviewer":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"state":"REVIEWER"},{"updated":"2026-01-30 15:20:04.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"},{"updated":"2026-01-30 16:58:39.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"}],"messages":[{"id":"8a4a47f3f09267ad7761f4194d9a6cf8697f4707","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-16 18:37:18.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c5df0b78e1841c88615ef411a942f3dfac5feb27","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-16 18:37:53.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":1},{"id":"644ce89c4178196be207b8c9d2e980ef20384dc2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-16 19:55:26.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8b7c7a2ea30a475398988771623d5a13\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/023850fd953b49418545afb491dfec01 : SUCCESS in 11m 13s\n- grenade https://zuul.opendev.org/t/openstack/build/84cdf87a8af045bd8f4ee5ded7e957ba : SUCCESS in 1h 00m 44s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/90a91070706c43ddbda8f7a6ff19bbc8 : SUCCESS in 1h 00m 40s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/4f0aaae65efe4ee7aee84717fe7c5ed2 : SUCCESS in 53m 28s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/78355e4bc4684d4d9bd5d00c29bf3a66 : SUCCESS in 1h 00m 55s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/99c207e82ae748f0b8b455eda9207192 : SUCCESS in 15m 37s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6ec297c00e0e4662a0806a5ae2a9f6fc : SUCCESS in 19m 30s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/958787d40d1344468efec92d30c1dd20 : SUCCESS in 17m 52s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/9070646cde7542fc83a4f56ca9077ed5 : SUCCESS in 5m 03s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/73ee98f205da47ef8d335fd3c66ec1fa : SUCCESS in 23m 56s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/9e0c610136764773b0d8d1448c4ee09d : SUCCESS in 10m 05s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/7656eba4fe5947ae9ba1850465e089c3 : SUCCESS in 13m 25s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/e3be4be0731948aeb62d493ade499fd1 : SUCCESS in 13m 41s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/52bb16907502458bb29a6756ceb90aa5 : SUCCESS in 8m 03s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/74f00467cf9d426d967962d093f17fd4 : SUCCESS in 13m 34s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/1b92143a4a764097a5090a51c60948ae : SUCCESS in 13m 49s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/2721d67346a544bda60c061a50bf685f : SUCCESS in 3m 31s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/bb5c1a9fdd2742858785e153b406adc0 : SUCCESS in 17m 41s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/212d7e5c3197491da20f06e801fdf041 : SUCCESS in 8m 02s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/6c9d8c99123f43ea92ccdc6dcd454f99 : SUCCESS in 1h 12m 05s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/9e4bbe7f7c8d406fa310cf3a431a44a5 : SUCCESS in 49m 45s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4d0693468f7f497599c5b3bab8dfe5ce : SUCCESS in 53m 56s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8635f32c8ed249c5aff43a29e3afaa64 : SUCCESS in 28m 41s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5eadb1e197a24fd3a4a2b42bec2a9650 : SUCCESS in 2m 51s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/2f657e1e7a214bc4899b5755d04ebe3f : SUCCESS in 11m 39s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/d59e26b129874c9f8b6889aef47f13a3 : SUCCESS in 29m 42s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/cf1b42848f724f99baad2c5e7e93a4f1 : SUCCESS in 57m 00s","accounts_in_message":[],"_revision_number":1},{"id":"eb59773ef4aca19787df872bef0cd34a8f34a859","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-16 19:58:42.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/61703cfbdcfd4f80864cd7d5a9beda0a\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/95d7a905a3ff4bc18cd41b267146f121 : SUCCESS in 50m 37s","accounts_in_message":[],"_revision_number":1},{"id":"8e6165d814291ab2a7ad434bc1a007ba8c445c08","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2026-01-16 22:22:37.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"338b92db7344df086658cd13837939664d1a64d4","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-19 02:14:11.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"f8851937948bac13540ed5671942774e2ae73263","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-19 02:14:33.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"a7997196e2e62fbc7db5dfbd9606bc4f02813dc9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-19 03:50:57.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/509f2b107a9c4aaabf38e9b8858390f4\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5306e355f6e14f6f971cc3499c60a81e : SUCCESS in 9m 31s\n- grenade https://zuul.opendev.org/t/openstack/build/bbb03d1cbcb040e2a6b8718323826794 : SUCCESS in 54m 40s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/2bfadc0c1e374cc988e1bf52fd23defe : SUCCESS in 59m 07s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/b4272fd224a04d0fa103030cf50cfb22 : SUCCESS in 51m 46s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/1a59b7fe24d645d18390aa9d261ca20c : SUCCESS in 56m 25s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0f5993b437d74b32854a9a29a9c54aaa : SUCCESS in 12m 30s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/2b1fd6e2daf145f683543e8fcce8d4ef : SUCCESS in 20m 54s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f478dd2ee1a94e5aa7bb60697c647caa : SUCCESS in 20m 41s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/b3ff521fc71f4ae7afd8771ef58a268b : SUCCESS in 6m 02s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c909c3f7c8df49ff8d951df24b9a2083 : SUCCESS in 26m 04s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/db780d7e4b5e46ecafc6251f49ebe2e0 : SUCCESS in 12m 57s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/98508357d93a430db9b0f5f75beb6eca : SUCCESS in 13m 38s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/edd1293f60e24689b09256ad9f215afc : SUCCESS in 28m 12s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/aa819e44ff7649619e24554a205ee3a6 : SUCCESS in 9m 43s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/c6d8c5615a534ac6aa28e69277f6292c : SUCCESS in 15m 25s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/0af8d42623a54d4e8b5ca6de4a6df5c6 : SUCCESS in 15m 32s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/ce2ef743578649918449844e2e5d147a : SUCCESS in 8m 00s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/0f885efe72c34973bc0ebaa4ce6aa8fc : SUCCESS in 18m 10s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/a864a23cea944e5087cc21e08b28f461 : SUCCESS in 9m 18s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/d86943c9175e43a0b55ec40ead40529b : SUCCESS in 36m 00s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d3d77e20c3dd446ea01a4c3f4581dfd4 : SUCCESS in 48m 14s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/1e35c360c8884436b516a642e9b73ad2 : SUCCESS in 47m 19s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/74d27632a0584dccadaa7456378a94c6 : SUCCESS in 22m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/388fc54b06df428cb9d7c4d107232a8b : SUCCESS in 4m 50s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/c3c25d5af2584615b13aa3b34100ac77 : SUCCESS in 18m 14s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/9ec77aa59f414c7ea125edf8cbcdce90 : SUCCESS in 47m 19s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/5399e7a45f7e48dca2a552a1f44237f8 : SUCCESS in 57m 46s","accounts_in_message":[],"_revision_number":2},{"id":"0c350e3321ba4612485e74536b881d26a987f4f7","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-19 04:34:16.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/327ab45d83f24b959c2dadbf529395f9\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/039441b054094e46811b69353e28f20c : SUCCESS in 46m 12s","accounts_in_message":[],"_revision_number":2},{"id":"1e5a946e4a9cd12a19b51f1ca4e4f39692518acf","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-01-20 17:27:50.000000000","message":"Patch Set 2:\n\n(1 comment)\n\nThis change is ready for review.","accounts_in_message":[],"_revision_number":2},{"id":"61139873be61bd9518eb32c94ea3e0ac6d93dadc","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-20 17:36:18.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"0ea1fdeff110d0f7447f1b68cec9bfe0c5dfb8bc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-20 18:07:09.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":3},{"id":"f27b8956a3c3ff5cc98fca3873b65e4be52fd978","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-20 19:18:37.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b4e06b9392634a7f984e9bcfc65f4566\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ff93d5b2bbdf4e93b18dc6f37558936b : SUCCESS in 8m 16s\n- grenade https://zuul.opendev.org/t/openstack/build/7cca6d7c8b1241ed95196d6317d059b5 : SUCCESS in 57m 41s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/1e7eef5be58846449d9366aadeb17771 : SUCCESS in 1h 02m 08s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/c9fdce3584d1464da7edeeeb2246a7b5 : SUCCESS in 38m 55s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/6e140bbd0c614a678c2db0ce656cd60a : SUCCESS in 45m 45s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/26ad61b4c0484f77b82d03884fd458ba : SUCCESS in 20m 11s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/787693418a4543f99c49d258eb7ad7c0 : SUCCESS in 18m 52s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/63b1fd8dea3f43299f4baf7aad37cc04 : SUCCESS in 19m 50s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/ea760408b0f64cc49be2c2b1a4dbd7a2 : SUCCESS in 8m 27s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/7b82b4db499749308616bc329be2ae7c : SUCCESS in 16m 14s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/53b074cd193140c49a96f83c72865ac7 : SUCCESS in 21m 25s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/31181ab4415a41dd945d4046ddee5d57 : SUCCESS in 21m 28s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/6f150e44c9f644cc9ee5cf3046bbfc90 : SUCCESS in 30m 36s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/a04fadd26c234a19859c521b48a2fb57 : SUCCESS in 15m 42s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/55805b4cbca249c1b459f70cd0b829bf : SUCCESS in 14m 44s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/ce8e4fc9ba5345bb9aefeed353718c8d : SUCCESS in 15m 17s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/1fab8a5643704293a1d4bfadce201967 : SUCCESS in 6m 31s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/b53a9869dbbc4038866d2e4b486e13aa : SUCCESS in 16m 43s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/636efa1969fa42fdac7b0fc17c02c287 : SUCCESS in 8m 55s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/06198f650df941f8a25ee9aa78ce53fa : SUCCESS in 56m 22s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d2d924d879ac417694bc3727db0ee29f : SUCCESS in 1h 02m 49s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e97daaef26f042cdaf0aed8f385ea917 : SUCCESS in 56m 57s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/89c1c85733f349a183a5e845487b059d : SUCCESS in 35m 58s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/05be5cfe9be54268ae788083420b78fd : SUCCESS in 4m 11s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/8a33edb328014db4bd3fd9d93dda0bb6 : SUCCESS in 20m 28s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/a703afa8fb364138ab944324acc7d0b3 : SUCCESS in 32m 14s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/07c545de9f274ac68bdb910f0f17461c : SUCCESS in 44m 45s","accounts_in_message":[],"_revision_number":3},{"id":"7a145c9a030c329bee2113f11aacbe7703351a86","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-20 20:36:01.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/661df4166c254ca2a75ffe7745455b81\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/8faba7f4fed241b6aef0975f7ebc5418 : SUCCESS in 1h 02m 22s","accounts_in_message":[],"_revision_number":3},{"id":"f72aa4fb67d46703bf80f2d93cd537cbb6fd0087","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-22 00:49:05.000000000","message":"Patch Set 3:\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"a62370b38373311e33dd43e1c2c0eb7720c76ffc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-22 05:29:34.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":4},{"id":"a7297f8853bf3a860d0471c3e513f0bd439b1e28","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-22 06:34:40.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a877f52ccff8465a95b4f852432217ad\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/be427278c7fc4c428cc2a2b40da7095d : SUCCESS in 5m 44s\n- grenade https://zuul.opendev.org/t/openstack/build/e76cb68ac87944d08b1de90a00108a5c : SUCCESS in 36m 46s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3b3043db99cd46ac932fcd8aad997f19 : SUCCESS in 30m 53s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/cf8bc94d8f714bba9d30c788b04817c1 : SUCCESS in 35m 57s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/031e4769856841d7904799eb40e668cd : SUCCESS in 44m 38s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d71c596568924df48b6aeb33b76800ac : SUCCESS in 16m 11s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/964c77ebf5204e61a6ae5c8456338bc4 : SUCCESS in 15m 10s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/11e66c47d2a043988761f148c0c32b98 : SUCCESS in 18m 47s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/35043f3b6d7a4f67adbb7345938dfc3e : SUCCESS in 4m 04s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/becbe41e73a64e8fa7750bf1b32c8847 : SUCCESS in 16m 26s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/b4cbbc288a7348b9809eb5185e4d27a7 : SUCCESS in 15m 41s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/1f9a0fa771814d388d3e6ca07de86b20 : SUCCESS in 19m 36s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/2ffc62602584439dad516aa8a515b742 : SUCCESS in 10m 59s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/e0f46d49d2514b61bdffb894fb0b6080 : SUCCESS in 14m 24s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/1b463b0a954540369fc8eeb67c9049b4 : SUCCESS in 8m 02s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/b6619c69e89645b2b85180fb3ad36fa0 : SUCCESS in 8m 12s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/b92600963db24d24ac46d993d1162378 : SUCCESS in 8m 33s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/a545fbee547548f1935f7104dcd78738 : SUCCESS in 7m 37s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/2b233c90f4a74ddfa5598d5b0c9fbab6 : SUCCESS in 8m 04s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/bbb799bf57f8437fa3253a37641939e1 : SUCCESS in 34m 42s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/65ae559c753b426eb109cd4320280c00 : SUCCESS in 59m 25s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/1f027451f72247b2af93fbace3d2e82f : SUCCESS in 52m 19s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/c7b5eacdd0a5416580b373371636145f : SUCCESS in 28m 03s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/882eea4d9c7c4a958949fe8a8287e25b : SUCCESS in 3m 32s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/d804149127b643c3a3e4d46cf0d14562 : SUCCESS in 10m 18s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/9ecfc7d366184aa390b522d8307c2295 : SUCCESS in 55m 14s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/101ab80ce6c94edb835e8297d48cf7ba : SUCCESS in 46m 29s","accounts_in_message":[],"_revision_number":4},{"id":"ae3d452eeda8d46bd97629b11798a30febfe9d48","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-22 06:37:43.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c8f3f46a2a464df192a6424439218e54\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/398f4ff76a274439882a7353050f73f4 : SUCCESS in 1h 06m 28s","accounts_in_message":[],"_revision_number":4},{"id":"b0f97e9b8a18976dd4fc054c9f77e82bed78929e","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-22 12:53:18.000000000","message":"Patch Set 4:\n\n(8 comments)","accounts_in_message":[],"_revision_number":4},{"id":"7931e2bb33bf1fba50df0566ab682db06fc2d92f","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-22 12:53:52.000000000","message":"Patch Set 4: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"4a43370511736b9ad2f61b7d2483bf504e6d363d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-28 17:43:55.000000000","message":"Uploaded patch set 5: Commit message was updated.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":5},{"id":"46f6471a5e43d282f3d723b7affa4f55d9b4fe2f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-28 19:13:26.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/13a6691a693b481399573f86d0ef720b\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8b5867b6953442b9bed0c13c17518047 : SUCCESS in 10m 11s\n- grenade https://zuul.opendev.org/t/openstack/build/6713481c7e7244139137074ed2df71cf : SUCCESS in 1h 03m 28s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5484e244b4084552b46711019cd0e2d2 : SUCCESS in 1h 05m 23s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/c0fff782b54c42debbcb0e31da85f6fe : SUCCESS in 57m 55s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/5c37f19af11d440e99bda49f6cd1c0f8 : SUCCESS in 1h 10m 29s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e44d19a0a118485ab46820f06ff3be5e : SUCCESS in 19m 55s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/fa94ce42ff504792842e80fac28609b9 : SUCCESS in 20m 32s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/eda49c33e5e04a2fa1d13070e0172693 : SUCCESS in 20m 06s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/7be0c27913d644f493423992af9d2ece : SUCCESS in 7m 25s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/38b1b52791c24ac591f450f7dfc814fc : SUCCESS in 24m 09s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/235243d9e03d45a9aaf97740ed673e3b : SUCCESS in 21m 22s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/28175187ab5a40799507e07372205f4a : SUCCESS in 29m 30s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/2f917563c68746c38baab3c035c6a4d4 : SUCCESS in 29m 53s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/1152ccd020924366b437640023cc78f1 : SUCCESS in 8m 36s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/2e50bb730bd047f792c36c2e546c525c : SUCCESS in 16m 01s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/0442b0ebc38742c2aaf066216c49ecff : SUCCESS in 16m 35s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/3a5cde8a0e484bc98ad37407dd70fd88 : SUCCESS in 9m 55s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/e2efe7c3c3e84c2facdd2cc49bfc5b41 : SUCCESS in 15m 11s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/42a59defbbf74715835f9be4bca96f4f : SUCCESS in 5m 08s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/2d2b3714ff3d46b9aa6fef0310214420 : SUCCESS in 51m 48s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c3d2c6a37ec74f9592fee60a780a8252 : SUCCESS in 1h 04m 26s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/d1d252edf52147bf891daee6def44f9f : SUCCESS in 57m 11s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/af0326162fe5476e8b9c50e846cbe016 : SUCCESS in 28m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/da88d065473a47ac9e689aa6ac94b084 : SUCCESS in 6m 12s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/866b3c271fdb48a2b5064f209a6fcbd3 : SUCCESS in 16m 48s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/03853bd5333d44c98829bd3262f86c8d : SUCCESS in 40m 02s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/7c2f41f0f3a54b54a47f496307db2d20 : SUCCESS in 1h 01m 04s","accounts_in_message":[],"_revision_number":5},{"id":"f7343375dd052277fa537be32de5a04543a18123","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-28 21:10:35.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":6},{"id":"b40ebdbfd77ed3d6d4bb25aa420022bbcb840307","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-28 21:13:15.000000000","message":"Patch Set 6:\n\n(9 comments)","accounts_in_message":[],"_revision_number":6},{"id":"6b48d80c1665db230ef79378a9d8af9fe3e6a1ae","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-28 22:20:44.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cfb308b542974b0888c75af481553237\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/472965ff48d3400ea3c5e7e9e097e18b : SUCCESS in 6m 10s\n- grenade https://zuul.opendev.org/t/openstack/build/72f26fb1ce0e4a5a952927434fa28a7f : SUCCESS in 48m 19s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3bee0383a3e1401dbffda3e5f6169fc2 : SUCCESS in 34m 47s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/c0752030f62542438ff5ed3b2422a752 : SUCCESS in 40m 42s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7b542d003d1a41a9b70a699fd932edd5 : SUCCESS in 1h 08m 22s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f5add886364d441da1932cfae7e95d06 : SUCCESS in 19m 15s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8d1ff14915c64388a3714a3784ac11a4 : SUCCESS in 12m 05s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/7bc385431175410a904b3c6165711f8f : SUCCESS in 10m 31s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/6d780afa4d67400d83c71c9d89b2dd45 : SUCCESS in 10m 30s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b4b6d68e5ea44b1287e649a52ff18ecc : SUCCESS in 18m 11s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/5a4f5685e250470b8b748ce84d21e6de : SUCCESS in 18m 34s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/9739d47ad8df4e37853047eb3245c9f0 : SUCCESS in 12m 47s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/dea8e43e6ca5471e82874a971e1cee9b : SUCCESS in 12m 49s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/e8216f92a5e54a6da60ffb5fb9d2affc : SUCCESS in 16m 38s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/e2a92880cfcc419c91ab06861a58cb0d : SUCCESS in 7m 55s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/00d29dd3b36c454cad10be60975a2dfd : SUCCESS in 16m 06s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/657bdfb8cbc04ec48e7a0815086ade35 : SUCCESS in 4m 16s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/85404c8bb3974e1db5e2753aa27c4410 : SUCCESS in 18m 33s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/3289684b95e14a98addabb0236b3f8db : SUCCESS in 5m 53s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/3d1c3d7d77354ecebd98ac4cb9c2fb32 : SUCCESS in 37m 25s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/b53b1950c6744fc281968f8526257991 : SUCCESS in 50m 05s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/00c6cddf8b4941548e7d492576f47dbf : SUCCESS in 52m 07s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/7fc1c2c0e64447c8be4171cbc1f9aead : SUCCESS in 24m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/26ac8e31adae4116a3e89b8813b00d76 : SUCCESS in 2m 18s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/fd25e4a3dd5146a3b9bbdc3a10ef2b02 : SUCCESS in 15m 22s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/79912acf3dfc46e09fc426cf0de8ed56 : SUCCESS in 56m 41s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/7aeeaa3b020c4e438b22599cc8eb0465 : SUCCESS in 35m 38s","accounts_in_message":[],"_revision_number":6},{"id":"d9755151bad8fb8c795e38fd8e52cfc59fe5fc15","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-29 10:22:31.000000000","message":"Patch Set 6:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/83a083da7cdb41c3a7b64f76c1c3f917\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/571a3d17fce843d1ab843130510a8f18 : SUCCESS in 1h 02m 31s","accounts_in_message":[],"_revision_number":6},{"id":"011fd62e1efcf4df8340fc3b89d0ee8fb0d6b3cf","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-30 14:05:57.000000000","message":"Patch Set 6: Code-Review+2\n\n(2 comments)","accounts_in_message":[],"_revision_number":6},{"id":"2e545629adc39c37fb9e5a5d7af93463b1276831","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-01-30 15:20:04.000000000","message":"Patch Set 6: Code-Review+2\n\n(5 comments)","accounts_in_message":[],"_revision_number":6},{"id":"aa4bed3c3151599988debc5b42134dd9507eef5e","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-01-30 16:58:39.000000000","message":"Patch Set 6: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":6},{"id":"6e246261cd1335de4f1e7d64672a499b99301970","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-30 16:59:06.000000000","message":"Patch Set 6: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":6},{"id":"a78b7b825905c2353e79771b1d2f5504bfafe276","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-30 18:02:18.000000000","message":"Patch Set 6: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b435344ad950453298ef93959a17f90c\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e5e5a46f4310480ca2d172f5add2ab29 : SUCCESS in 5m 01s\n- grenade https://zuul.opendev.org/t/openstack/build/7adcc5d80bec4ccaa3294811ce5018dd : SUCCESS in 34m 28s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/2edc69696caf48cf923a9bb644f58035 : SUCCESS in 33m 16s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/40d80dc50971426f8247bbb6f628936e : SUCCESS in 31m 54s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/eb9d90444ff047ceb26a8cefc77b931f : SUCCESS in 32m 13s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/a2da31de398c4f12a168d302bfc2bf77 : SUCCESS in 7m 39s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/8a3ff3a9a64c4a0c9ec63e81387c9977 : SUCCESS in 19m 23s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/9a644648a9dd49fb9135d26392f9ebe7 : SUCCESS in 17m 35s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/fe50ab95c1794674a2ccf5b2a9aaf80d : SUCCESS in 20m 01s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/e3eb0ef77cf843b688b9b94ad86dc0d3 : SUCCESS in 20m 49s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/d913a2be688b410799189452d1a7c875 : SUCCESS in 12m 52s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/fbf8f4047367415490daab5fc2214a1f : SUCCESS in 8m 08s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/949355cc271541b2825bfa5f0a65da4a : SUCCESS in 15m 55s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/b1a67a9cb8af4a9e83ebe408d3fcb634 : SUCCESS in 6m 20s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/fb39c3d026fa4d65a8f64fedd05b98fa : SUCCESS in 5m 13s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/1ea0e73edbf5475c9a1ac6de2bd217d3 : SUCCESS in 34m 26s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/33995ae5b0094a63910c0623c7a6413f : SUCCESS in 50m 58s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ef56875cf17c480db809c9a963346310 : SUCCESS in 21m 26s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/57971a46fd6f42aeb0179267de48d31f : SUCCESS in 10m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5687d7b063be49c79e08cf16e7c5498d : SUCCESS in 4m 02s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/36777030c3e740f6a676a1b5c4730ca2 : SUCCESS in 18m 26s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/677c8468068243949e5833fae20338ee : SUCCESS in 55m 24s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3dd81eba6c244a148ca0fff928218581 : SUCCESS in 1h 01m 53s","accounts_in_message":[],"_revision_number":6},{"id":"b7165183f0bda1701692174e03eb255c60767ac6","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-30 18:02:18.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":6},{"id":"50d691a79fdcb8d594629c7840880b36c0d3dcd7","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-30 18:03:18.000000000","message":"Patch Set 6:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a9d56630f3ca4a24a36881c600ba5494\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/19d47ff9e15f433dba4f576f53ef69de : SUCCESS in 48s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/0c016438db764447bde35e19d6193fab : SUCCESS in 43s (non-voting)","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"7ddc6ef4d92d390cb9696aedc3c183254ef72704","revisions":{"7bd2194ef40931888941b9996c8fcb6143974f26":{"kind":"REWORK","_number":1,"created":"2026-01-16 18:37:18.000000000","uploader":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"ref":"refs/changes/72/973672/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/72/973672/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/72/973672/1"}}},"commit":{"parents":[{"commit":"86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0","subject":"Update dockerhub secret","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0"}]}],"author":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-16 18:24:23.000000000","tz":-480},"committer":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-16 18:29:56.000000000","tz":-480},"subject":"s3api: Support for object expiration time","message":"s3api: Support for object expiration time\n\nS3 and Swift both support expiring objects in some form, but the\nsemantics are entirely different.\n\nIn S3, expiration policy is at the bucket level. A client calls\nPutBucketLifecycleConfiguration to specify bucket lifecycle rules;\nsome of these rules enable object expiration. After that API call,\nthe rules take effect within a few hours for all objects in the bucket.\n\nIn Swift, expiration policy is at the object level. When uploading an\nobject, a client can add the header “X-Delete-At: T” or\n“X-Delete-After: D”, where T is a Unix timestamp and D is a duration\nin seconds. That object will then expire at either time T or at\nD seconds after the PUT request was made.\n\nS3 object GET and HEAD responses for expiring objects contain the time\nat which the object will expire based on the current bucket configuration\nas well as the rule responsible. This is in the “X-Amz-Expiration” header.\nExample:\nx-amz-expiration: expiry-date\u003d\"Fri, 16 Jan 2026 00:00:00 GMT\",\n                  rule-id\u003d\"logs-expiration\"\n\nThis patch adds this support into Swift’s S3API for expiring objects.\n\nAdds Sam, who came up with this approach, as co-author.\n\nChange-Id: I9e319b75c557d5ab971182adb4aa10ad27a14d0b\nCo-authored-by: Sam Merritt \u003csmerritt@nvidia.com\u003e\nSigned-off-by: Jianjian Huo \u003cjhuo@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7bd2194ef40931888941b9996c8fcb6143974f26"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7bd2194ef40931888941b9996c8fcb6143974f26"}]},"branch":"refs/heads/master"},"b8e44c8ab1844d7b87ada8ae1733ebcab9cd60c0":{"kind":"REWORK","_number":2,"created":"2026-01-19 02:14:11.000000000","uploader":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"ref":"refs/changes/72/973672/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/72/973672/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/72/973672/2"}}},"commit":{"parents":[{"commit":"86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0","subject":"Update dockerhub secret","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0"}]}],"author":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-16 18:24:23.000000000","tz":-480},"committer":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-19 02:13:51.000000000","tz":-480},"subject":"WIP: s3api: Support for object expiration time","message":"WIP: s3api: Support for object expiration time\n\nS3 and Swift both support expiring objects in some form, but the\nsemantics are entirely different.\n\nIn S3, expiration policy is at the bucket level. A client calls\nPutBucketLifecycleConfiguration to specify bucket lifecycle rules;\nsome of these rules enable object expiration. After that API call,\nthe rules take effect within a few hours for all objects in the bucket.\n\nIn Swift, expiration policy is at the object level. When uploading an\nobject, a client can add the header “X-Delete-At: T” or\n“X-Delete-After: D”, where T is a Unix timestamp and D is a duration\nin seconds. That object will then expire at either time T or at\nD seconds after the PUT request was made.\n\nS3 object GET and HEAD responses for expiring objects contain the time\nat which the object will expire based on the current bucket configuration\nas well as the rule responsible. This is in the “X-Amz-Expiration” header.\nExample:\nx-amz-expiration: expiry-date\u003d\"Fri, 16 Jan 2026 00:00:00 GMT\",\n                  rule-id\u003d\"logs-expiration\"\n\nThis patch adds this support into Swift’s S3API for expiring objects.\n\nAdds Sam, who came up with this approach, as co-author.\n\nChange-Id: I9e319b75c557d5ab971182adb4aa10ad27a14d0b\nCo-authored-by: Sam Merritt \u003csmerritt@nvidia.com\u003e\nSigned-off-by: Jianjian Huo \u003cjhuo@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b8e44c8ab1844d7b87ada8ae1733ebcab9cd60c0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b8e44c8ab1844d7b87ada8ae1733ebcab9cd60c0"}]},"branch":"refs/heads/master"},"b64c8f7a4433974e9e188f54f895967dc6b391ab":{"kind":"REWORK","_number":3,"created":"2026-01-20 18:07:09.000000000","uploader":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"ref":"refs/changes/72/973672/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/72/973672/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/72/973672/3"}}},"commit":{"parents":[{"commit":"86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0","subject":"Update dockerhub secret","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0"}]}],"author":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-16 18:24:23.000000000","tz":-480},"committer":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-20 17:51:41.000000000","tz":-480},"subject":"WIP: s3api: Support for object expiration time","message":"WIP: s3api: Support for object expiration time\n\nS3 and Swift both support expiring objects in some form, but the\nsemantics are entirely different.\n\nIn S3, expiration policy is at the bucket level. A client calls\nPutBucketLifecycleConfiguration to specify bucket lifecycle rules;\nsome of these rules enable object expiration. After that API call,\nthe rules take effect within a few hours for all objects in the bucket.\n\nIn Swift, expiration policy is at the object level. When uploading an\nobject, a client can add the header “X-Delete-At: T” or\n“X-Delete-After: D”, where T is a Unix timestamp and D is a duration\nin seconds. That object will then expire at either time T or at\nD seconds after the PUT request was made.\n\nS3 object GET and HEAD responses for expiring objects contain the time\nat which the object will expire based on the current bucket configuration\nas well as the rule responsible. This is in the “X-Amz-Expiration” header.\nExample:\n    x-amz-expiration: expiry-date\u003d\"Fri, 16 Jan 2026 00:00:00 GMT\",\n                      rule-id\u003d\"logs-expiration\"\n\nThis patch adds this support into Swift’s S3API for expiring objects.\n\nAdds Sam, who came up with this approach, as co-author.\n\nChange-Id: I9e319b75c557d5ab971182adb4aa10ad27a14d0b\nCo-authored-by: Sam Merritt \u003csmerritt@nvidia.com\u003e\nSigned-off-by: Jianjian Huo \u003cjhuo@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b64c8f7a4433974e9e188f54f895967dc6b391ab"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b64c8f7a4433974e9e188f54f895967dc6b391ab"}]},"branch":"refs/heads/master"},"8f7561e10fa987cd20c182fb757748598f517b46":{"kind":"REWORK","_number":4,"created":"2026-01-22 05:29:34.000000000","uploader":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"ref":"refs/changes/72/973672/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/72/973672/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/72/973672/4"}}},"commit":{"parents":[{"commit":"86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0","subject":"Update dockerhub secret","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0"}]}],"author":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-16 18:24:23.000000000","tz":-480},"committer":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-22 05:29:15.000000000","tz":-480},"subject":"WIP: s3api: Support for object expiration time","message":"WIP: s3api: Support for object expiration time\n\nS3 and Swift both support expiring objects in some form, but the\nsemantics are entirely different.\n\nIn S3, expiration policy is at the bucket level. A client calls\nPutBucketLifecycleConfiguration to specify bucket lifecycle rules;\nsome of these rules enable object expiration. After that API call,\nthe rules take effect within a few hours for all objects in the bucket.\n\nIn Swift, expiration policy is at the object level. When uploading an\nobject, a client can add the header “X-Delete-At: T” or\n“X-Delete-After: D”, where T is a Unix timestamp and D is a duration\nin seconds. That object will then expire at either time T or at\nD seconds after the PUT request was made.\n\nS3 object GET and HEAD responses for expiring objects contain the time\nat which the object will expire based on the current bucket configuration\nas well as the rule responsible. This is in the “X-Amz-Expiration” header.\nExample:\n    x-amz-expiration: expiry-date\u003d\"Fri, 16 Jan 2026 00:00:00 GMT\",\n                      rule-id\u003d\"logs-expiration\"\n\nThis patch adds this support into Swift’s S3API for expiring objects.\n\nAdds Sam, who came up with this approach, as co-author.\n\nChange-Id: I9e319b75c557d5ab971182adb4aa10ad27a14d0b\nCo-authored-by: Sam Merritt \u003csmerritt@nvidia.com\u003e\nSigned-off-by: Jianjian Huo \u003cjhuo@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8f7561e10fa987cd20c182fb757748598f517b46"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8f7561e10fa987cd20c182fb757748598f517b46"}]},"branch":"refs/heads/master"},"86a75d8159d990a58ba6c555de09168a7bdb2c63":{"kind":"NO_CODE_CHANGE","_number":5,"created":"2026-01-28 17:43:55.000000000","uploader":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"ref":"refs/changes/72/973672/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/72/973672/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/72/973672/5"}}},"commit":{"parents":[{"commit":"86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0","subject":"Update dockerhub secret","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0"}]}],"author":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-16 18:24:23.000000000","tz":-480},"committer":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-28 17:42:57.000000000","tz":-480},"subject":"s3api: Support for object expiration time","message":"s3api: Support for object expiration time\n\nS3 and Swift both support expiring objects in some form, but the\nsemantics are entirely different.\n\nIn S3, expiration policy is at the bucket level. A client calls\nPutBucketLifecycleConfiguration to specify bucket lifecycle rules;\nsome of these rules enable object expiration. After that API call,\nthe rules take effect within a few hours for all objects in the bucket.\n\nIn Swift, expiration policy is at the object level. When uploading an\nobject, a client can add the header “X-Delete-At: T” or\n“X-Delete-After: D”, where T is a Unix timestamp and D is a duration\nin seconds. That object will then expire at either time T or at\nD seconds after the PUT request was made.\n\nS3 object GET and HEAD responses for expiring objects contain the time\nat which the object will expire based on the current bucket configuration\nas well as the rule responsible. This is in the “X-Amz-Expiration” header.\nExample:\n    x-amz-expiration: expiry-date\u003d\"Fri, 16 Jan 2026 00:00:00 GMT\",\n                      rule-id\u003d\"logs-expiration\"\n\nThis patch adds this support into Swift’s S3API for expiring objects.\n\nAdds Sam, who came up with this approach, as co-author.\n\nChange-Id: I9e319b75c557d5ab971182adb4aa10ad27a14d0b\nCo-authored-by: Samuel Merritt \u003csmerritt@nvidia.com\u003e\nSigned-off-by: Jianjian Huo \u003cjhuo@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/86a75d8159d990a58ba6c555de09168a7bdb2c63"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/86a75d8159d990a58ba6c555de09168a7bdb2c63"}]},"branch":"refs/heads/master"},"7ddc6ef4d92d390cb9696aedc3c183254ef72704":{"kind":"REWORK","_number":6,"created":"2026-01-28 21:10:35.000000000","uploader":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"ref":"refs/changes/72/973672/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/72/973672/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/72/973672/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/72/973672/6"}}},"commit":{"parents":[{"commit":"86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0","subject":"Update dockerhub secret","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/86d1dee2ad13772989e0d0e0ccfe3fdcf7fcf3b0"}]}],"author":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-16 18:24:23.000000000","tz":-480},"committer":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-01-28 21:10:01.000000000","tz":-480},"subject":"s3api: Support for object expiration time","message":"s3api: Support for object expiration time\n\nS3 and Swift both support expiring objects in some form, but the\nsemantics are entirely different.\n\nIn S3, expiration policy is at the bucket level. A client calls\nPutBucketLifecycleConfiguration to specify bucket lifecycle rules;\nsome of these rules enable object expiration. After that API call,\nthe rules take effect within a few hours for all objects in the bucket.\n\nIn Swift, expiration policy is at the object level. When uploading an\nobject, a client can add the header “X-Delete-At: T” or\n“X-Delete-After: D”, where T is a Unix timestamp and D is a duration\nin seconds. That object will then expire at either time T or at\nD seconds after the PUT request was made.\n\nS3 object GET and HEAD responses for expiring objects contain the time\nat which the object will expire based on the current bucket configuration\nas well as the rule responsible. This is in the “X-Amz-Expiration” header.\nExample:\n    x-amz-expiration: expiry-date\u003d\"Fri, 16 Jan 2026 00:00:00 GMT\",\n                      rule-id\u003d\"logs-expiration\"\n\nThis patch adds this support into Swift’s S3API for expiring objects.\nSwift\u0027s S3API does not currently support expiration via bucket lifecycle\npolicies, so the x-delete-at header is the only possible source of\nexpiration time to be returned in the x-amz-expiration header. However,\nif bucket lifecycle expiration were to be implemented then the\nx-amz-expiration header could return the lowest of the bucket expiration\ntime or the x-delete-at time.\n\nAdds Sam, who came up with this approach, as co-author.\n\nChange-Id: I9e319b75c557d5ab971182adb4aa10ad27a14d0b\nCo-authored-by: Samuel Merritt \u003csmerritt@nvidia.com\u003e\nSigned-off-by: Jianjian Huo \u003cjhuo@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7ddc6ef4d92d390cb9696aedc3c183254ef72704"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7ddc6ef4d92d390cb9696aedc3c183254ef72704"}]},"branch":"refs/heads/master"}},"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":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"}},{"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":{}}}]}
