)]}'
{"id":"openstack%2Fpython-swiftclient~310075","triplet_id":"openstack%2Fpython-swiftclient~master~I2f7aed81906c2093a3c2aa9b9bcdb6eb2eb4554a","project":"openstack/python-swiftclient","branch":"master","topic":"bug/1514606","hashtags":[],"change_id":"I2f7aed81906c2093a3c2aa9b9bcdb6eb2eb4554a","subject":"Expire segments when expiring large objects","status":"ABANDONED","created":"2016-04-25 23:11:18.000000000","updated":"2024-12-02 22:43:08.000000000","total_comment_count":7,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"473fe00da305a3393e22d650c6308d997289eac9","_number":310075,"virtual_id_number":310075,"owner":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"_account_id":12050,"name":"Charles Hsu","email":"charles0126@gmail.com","username":"charz"},{"value":1,"date":"2016-04-28 22:43:26.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"disliked":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":-1,"date":"2016-12-17 23:13:49.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":12050,"name":"Charles Hsu","email":"charles0126@gmail.com","username":"charz"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"}],"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":"","value":-1,"default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":-1,"date":"2016-12-21 00:24:26.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"value":0,"date":"2016-12-14 03:52:01.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"date":"2016-12-02 01:13:29.000000000","_account_id":12050,"name":"Charles Hsu","email":"charles0126@gmail.com","username":"charz"},{"_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"_account_id":12050,"name":"Charles Hsu","email":"charles0126@gmail.com","username":"charz"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2016-04-28 22:43:26.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"},{"updated":"2016-12-02 01:13:29.000000000","updated_by":{"_account_id":12050,"name":"Charles Hsu","email":"charles0126@gmail.com","username":"charz"},"reviewer":{"_account_id":12050,"name":"Charles Hsu","email":"charles0126@gmail.com","username":"charz"},"state":"REVIEWER"},{"updated":"2016-12-14 03:52:01.000000000","updated_by":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"reviewer":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"state":"REVIEWER"},{"updated":"2016-12-17 23:13:49.000000000","updated_by":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"reviewer":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"state":"REVIEWER"}],"messages":[{"id":"e8cd9e955b0da52ed140266dba1396ce0110b0bd","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-04-25 23:11:18.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f36c658f197b486047495d9ae2dbbf2ea27e61a2","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-04-25 23:13:20.000000000","message":"Patch Set 1: Workflow-1\n\nNeeds tests; need to add an arg to _get_chunk_data to prevent recursing into SLOs.","accounts_in_message":[],"_revision_number":1},{"id":"081d5b38df3c76d117a55354d5de6963dd1381b5","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-04-26 00:10:55.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/75/310075/1/check/gate-python-swiftclient-docs/fdc2333//doc/build/html/ : SUCCESS in 2m 10s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/75/310075/1/check/gate-python-swiftclient-pep8/1a25a9c/ : FAILURE in 1m 53s\n- gate-python-swiftclient-python27 http://logs.openstack.org/75/310075/1/check/gate-python-swiftclient-python27/eec11d5/ : SUCCESS in 1m 56s\n- gate-python-swiftclient-python34 http://logs.openstack.org/75/310075/1/check/gate-python-swiftclient-python34/cf98df9/ : SUCCESS in 3m 06s\n- gate-python-swiftclient-pypy http://logs.openstack.org/75/310075/1/check/gate-python-swiftclient-pypy/f7a9675/ : SUCCESS in 2m 57s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/75/310075/1/check/gate-tempest-dsvm-neutron-src-python-swiftclient/6b5ff89/ : SUCCESS in 59m 08s\n- gate-swift-dsvm-functional http://logs.openstack.org/75/310075/1/check/gate-swift-dsvm-functional/c090d3f/ : SUCCESS in 22m 43s\n- gate-swiftclient-dsvm-functional http://logs.openstack.org/75/310075/1/check/gate-swiftclient-dsvm-functional/91ec293/ : SUCCESS in 11m 05s","accounts_in_message":[],"_revision_number":1},{"id":"bf06ce9d62f69ec8ac24a53918fc3ee97853dcd0","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-04-28 21:46:15.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"e6de3315e55b9ed9dad456d284881385e29f202d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-04-28 22:43:26.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/75/310075/2/check/gate-python-swiftclient-docs/2e591a9//doc/build/html/ : SUCCESS in 2m 48s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/75/310075/2/check/gate-python-swiftclient-pep8/5312d5d/ : SUCCESS in 2m 33s\n- gate-python-swiftclient-python27 http://logs.openstack.org/75/310075/2/check/gate-python-swiftclient-python27/5a61956/ : SUCCESS in 2m 37s\n- gate-python-swiftclient-python34 http://logs.openstack.org/75/310075/2/check/gate-python-swiftclient-python34/44ac3fb/ : SUCCESS in 3m 28s\n- gate-python-swiftclient-pypy http://logs.openstack.org/75/310075/2/check/gate-python-swiftclient-pypy/928e5d7/ : SUCCESS in 3m 10s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/75/310075/2/check/gate-tempest-dsvm-neutron-src-python-swiftclient/2908cdb/ : SUCCESS in 54m 37s\n- gate-swift-dsvm-functional http://logs.openstack.org/75/310075/2/check/gate-swift-dsvm-functional/645bcac/ : SUCCESS in 23m 03s\n- gate-swiftclient-dsvm-functional http://logs.openstack.org/75/310075/2/check/gate-swiftclient-dsvm-functional/f346d76/ : SUCCESS in 18m 47s","accounts_in_message":[],"_revision_number":2},{"id":"922e20280d2cc9c7f31cce8b21bd00dfed348808","author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"date":"2016-12-17 23:13:49.000000000","message":"Patch Set 2: Code-Review-1\n\nThis doesn\u0027t seem to work for me - POSTing an X-Delete-At header to an SLO doesn\u0027t seem to update/add those headers to segments. I\u0027ll have a play with it tomorrow, although assuming I\u0027m not going mad, this also highlights some missing tests...","accounts_in_message":[],"_revision_number":2},{"id":"0611abab4ae448dddfd2c606e4666002cbae2824","author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"date":"2016-12-18 22:59:44.000000000","message":"Patch Set 2:\n\n(4 comments)\n\nSome more comments - I\u0027m still trying to work out why this doesn\u0027t seem to work for me (POST does not add the X-Delete-At headers, despite the segments having the correct content-type). We clearly need some tests to confirm that POST operations descend into SLOs and POST the appropriate headers to segments uploaded by the swiftclient and leaves segments alone otherwise.","accounts_in_message":[],"_revision_number":2},{"id":"718a82addb32ff2aa26edc30ff3c68a6e9b12d8c","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-12-21 00:24:26.000000000","message":"Patch Set 2: Workflow-1\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"473fe00da305a3393e22d650c6308d997289eac9","tag":"autogenerated:gerrit:abandon","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2024-12-02 22:43:08.000000000","message":"Abandoned\n\nI don\u0027t know that this is actually going to be tenable. Fingers crossed for feature/mpu!","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"fbced480165a173632cc3905bb816eca67f1201e","revisions":{"f71711593fee47efc4a0a5bb4603a4455da22079":{"kind":"REWORK","_number":1,"created":"2016-04-25 23:11:18.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/75/310075/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/75/310075/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/75/310075/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/75/310075/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/75/310075/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/75/310075/1"}}},"commit":{"parents":[{"commit":"4a6fa02c2832086d3ea5f7fff694c844da980928","subject":"Identify segments uploaded via swiftclient","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/4a6fa02c2832086d3ea5f7fff694c844da980928"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-04-25 16:09:15.000000000","tz":-300},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-04-25 22:57:49.000000000","tz":-300},"subject":"Expire segments when expiring large objects","message":"Expire segments when expiring large objects\n\n...but only segments that were uploaded via swiftclient.\n\nIn general, there is a many-to-many relationship between large objects\nand segments. That is, a single segment may be used by multiple large\nobjects, or even used directly. As a result, when POSTing a new\nexpiration date to a large object, we should not in general also POST to\nthe segments.\n\nHowever, when the large object was created through swiftclient, each\nsegment should only be used by a single large object. As a result,\n\n* During large object creation, we can include the same X-Delete-At /\n  X-Delete-After headers on the segments that we used for the manifest.\n\n* Following a POST that includes X-(Remove-)Delete-(At|After) headers,\n  we can check whether the target was a manifest and if so, apply the\n  same headers to segments which seem to have been created by\n  swiftclient.\n\nRelated-Bug: 1514606\nRelated-Bug: 1159951\nCloses-Bug: 1478830\nChange-Id: I2f7aed81906c2093a3c2aa9b9bcdb6eb2eb4554a\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/f71711593fee47efc4a0a5bb4603a4455da22079"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/f71711593fee47efc4a0a5bb4603a4455da22079"}]},"branch":"refs/heads/master"},"fbced480165a173632cc3905bb816eca67f1201e":{"kind":"REWORK","_number":2,"created":"2016-04-28 21:46:15.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/75/310075/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/75/310075/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/75/310075/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/75/310075/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/75/310075/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/75/310075/2"}}},"commit":{"parents":[{"commit":"4a6fa02c2832086d3ea5f7fff694c844da980928","subject":"Identify segments uploaded via swiftclient","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/4a6fa02c2832086d3ea5f7fff694c844da980928"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-04-25 16:09:15.000000000","tz":-300},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-04-28 21:45:45.000000000","tz":-300},"subject":"Expire segments when expiring large objects","message":"Expire segments when expiring large objects\n\n...but only segments that were uploaded via swiftclient.\n\nIn general, there is a many-to-many relationship between large objects\nand segments. That is, a single segment may be used by multiple large\nobjects, or even used directly. As a result, when POSTing a new\nexpiration date to a large object, we should not in general also POST to\nthe segments.\n\nHowever, when the large object was created through swiftclient, each\nsegment should only be used by a single large object. As a result,\n\n* During large object creation, we can include the same X-Delete-At /\n  X-Delete-After headers on the segments that we used for the manifest.\n\n* Following a POST that includes X-(Remove-)Delete-(At|After) headers,\n  we can check whether the target was a manifest and if so, apply the\n  same headers to segments which seem to have been created by\n  swiftclient.\n\nRelated-Bug: 1514606\nRelated-Bug: 1159951\nCloses-Bug: 1478830\nChange-Id: I2f7aed81906c2093a3c2aa9b9bcdb6eb2eb4554a\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/fbced480165a173632cc3905bb816eca67f1201e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/fbced480165a173632cc3905bb816eca67f1201e"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":["label:Workflow\u003dMIN"],"failing_atoms":["label:Workflow\u003dMAX"],"atom_explanations":{}}}]}
