)]}'
{"id":"openstack%2Fswift~265015","triplet_id":"openstack%2Fswift~master~I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72","project":"openstack/swift","branch":"master","topic":"auto-vivify-versions-location","hashtags":[],"change_id":"I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72","subject":"Autovivify X-Versions-Location container","status":"ABANDONED","created":"2016-01-07 23:41:09.000000000","updated":"2020-10-01 18:58:45.000000000","total_comment_count":5,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"1c9980d850871625e2abfbf26f87f57894b05737","_number":265015,"virtual_id_number":265015,"owner":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":1,"date":"2019-08-23 00:38:24.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":25251,"name":"Alexandre Lécuyer","email":"alexandre.lecuyer@corp.ovh.com","username":"alecuyer"},{"_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":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},{"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":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},{"value":-1,"date":"2019-10-30 02:39:31.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":25251,"name":"Alexandre Lécuyer","email":"alexandre.lecuyer@corp.ovh.com","username":"alecuyer"},{"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":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":25251,"name":"Alexandre Lécuyer","email":"alexandre.lecuyer@corp.ovh.com","username":"alecuyer"},{"_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":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":25251,"name":"Alexandre Lécuyer","email":"alexandre.lecuyer@corp.ovh.com","username":"alecuyer"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2016-01-13 06:35:56.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":"2016-11-09 17:35:15.000000000","updated_by":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"reviewer":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"state":"REVIEWER"},{"updated":"2017-10-13 20:31:45.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"},{"updated":"2017-10-13 20:42:05.000000000","updated_by":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2018-08-31 18:25:38.000000000","updated_by":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"reviewer":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"state":"REVIEWER"},{"updated":"2019-02-26 11:01:50.000000000","updated_by":{"_account_id":25251,"name":"Alexandre Lécuyer","email":"alexandre.lecuyer@corp.ovh.com","username":"alecuyer"},"reviewer":{"_account_id":25251,"name":"Alexandre Lécuyer","email":"alexandre.lecuyer@corp.ovh.com","username":"alecuyer"},"state":"REVIEWER"},{"updated":"2019-08-23 00:38:24.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":"2019-10-30 02:39:31.000000000","updated_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"reviewer":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"state":"REVIEWER"}],"messages":[{"id":"bb5738abda16060cbf224d3cb94a4930eb6c9f8c","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-01-07 23:41:09.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"0513f74f2b902511951bd29e53a683f6b462f5fe","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-08 01:48:07.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-swift-pep8 http://logs.openstack.org/15/265015/1/check/gate-swift-pep8/20a51f8/ : FAILURE in 2m 07s\n- gate-swift-docs http://docs-draft.openstack.org/15/265015/1/check/gate-swift-docs/d995b99//doc/build/html/ : SUCCESS in 2m 21s\n- gate-swift-python27 http://logs.openstack.org/15/265015/1/check/gate-swift-python27/fe98541/ : SUCCESS in 4m 39s\n- gate-swift-python34 http://logs.openstack.org/15/265015/1/check/gate-swift-python34/c72c574/ : SUCCESS in 3m 42s\n- gate-swift-tox-func http://logs.openstack.org/15/265015/1/check/gate-swift-tox-func/8cf62d9/ : SUCCESS in 4m 53s\n- gate-tempest-dsvm-full http://logs.openstack.org/15/265015/1/check/gate-tempest-dsvm-full/84e5a7d/ : SUCCESS in 43m 02s\n- gate-grenade-dsvm http://logs.openstack.org/15/265015/1/check/gate-grenade-dsvm/e0b6acc/ : SUCCESS in 48m 06s\n- gate-swift-dsvm-functional http://logs.openstack.org/15/265015/1/check/gate-swift-dsvm-functional/0818f64/ : SUCCESS in 27m 41s","accounts_in_message":[],"_revision_number":1},{"id":"78cb21078c8db7ebdccd61349ea39244b2ad955a","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-01-08 01:56:15.000000000","message":"Patch Set 1:\n\nBuild succeeded \n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/1617/ : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/1335/probetests/ : SUCCESS\n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/2212/ssbench : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/3577/ : SUCCESS","accounts_in_message":[],"_revision_number":1},{"id":"4d1d4571c803728f39e2cb7b513d0b6a0518b419","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-01-08 18:21:26.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"4deb3a138763d4d15298b750664471e42c8a321a","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-01-08 19:12:02.000000000","message":"Patch Set 2:\n\nBuild Failed \n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/1631/ : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/1349/probetests/ : SUCCESS\n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/2226/ssbench : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/3591/ : FAILURE","accounts_in_message":[],"_revision_number":2},{"id":"a7ee9caff480e80ca1dabe68ca553721f5e0b61e","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-08 19:55:53.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-pep8 http://logs.openstack.org/15/265015/2/check/gate-swift-pep8/05a2853/ : SUCCESS in 1m 23s\n- gate-swift-docs http://docs-draft.openstack.org/15/265015/2/check/gate-swift-docs/c213bc0//doc/build/html/ : SUCCESS in 4m 00s\n- gate-swift-python27 http://logs.openstack.org/15/265015/2/check/gate-swift-python27/846cbfc/ : SUCCESS in 4m 35s\n- gate-swift-python34 http://logs.openstack.org/15/265015/2/check/gate-swift-python34/a678835/ : SUCCESS in 2m 28s\n- gate-swift-tox-func http://logs.openstack.org/15/265015/2/check/gate-swift-tox-func/a269ef6/ : SUCCESS in 5m 16s\n- gate-tempest-dsvm-full http://logs.openstack.org/15/265015/2/check/gate-tempest-dsvm-full/2da0cae/ : SUCCESS in 39m 20s\n- gate-grenade-dsvm http://logs.openstack.org/15/265015/2/check/gate-grenade-dsvm/58a2941/ : SUCCESS in 50m 32s\n- gate-swift-dsvm-functional http://logs.openstack.org/15/265015/2/check/gate-swift-dsvm-functional/338e68a/ : SUCCESS in 37m 27s","accounts_in_message":[],"_revision_number":2},{"id":"1052e1bd2b4a99f87cef7dfd07e77280c2bd823a","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-01-11 23:22:54.000000000","message":"Patch Set 2: Code-Review-1\n\nA change like this should be accompanied with a doc update to the Object Versioning overview [1] to reset user expectations.\n\n\"if and only if the destination container does not exist\" is a very difficult [2] guarantee to make in an eventually consistent system.  Would it be *bad* if the destination container *did* exist but perhaps was not available at the moment?  Would it be better to create the version container (with potentially the wrong storage policy for example) vs telling the client about the error and asking them retry the upload in some way (either 400 after a corrective action or 500 with an exponential backoff - whatever is most appropriate given the information we have on hand).\n\nI\u0027m confused about the existing behavior when the version location container does not exist - you say a DELETE will *succeed* ?!  How was it able to get the listing from the version location to decide what was needed to pop of the stack?\n\nI think it\u0027s quite possible we have some bugs with the existing version middleware when the target container does not exist - do you know of any open bugs for those we can reference so I can get more context?  e.g. using a 412 to indicate a error condition other than some If-X header did not match is a bit of a mis-use; unless tempest already validates that as the documented error code for a PUT to a version container when the version target does not exist we should consider changing it to a 400 with a better description.\n\n1. http://docs.openstack.org/developer/swift/overview_object_versioning.html\n2. provably impossible acctually","accounts_in_message":[],"_revision_number":2},{"id":"3840255a6f38a6ee0f85a6d2ccd3445b0de48eac","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-01-12 00:58:43.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"8b600d37e98a36afe83d1fe7bf5828613aa9ccea","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-01-12 00:58:59.000000000","message":"Patch Set 3:\n\nUpdated docs.\n\nI misspoke. Nothing terrible will happen if we try to create the container with another storage policy, though; updated the commit message to be more correct and clarify why it\u0027s OK even if the \"real\" container is just temporarily unavailable.\n\nDELETE will succeed because we assume there are *no* existing versions. So we just do the DELETE.\n\nI agree that 412 is a misuse. Haven\u0027t looked into what tests might care, though, so I\u0027m inclined to leave it be for now.","accounts_in_message":[],"_revision_number":3},{"id":"56485fcad0b46741e2c75171fc10ad64dd6320dc","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-12 01:52:24.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-pep8 http://logs.openstack.org/15/265015/3/check/gate-swift-pep8/f66d24a/ : SUCCESS in 1m 14s\n- gate-swift-docs http://docs-draft.openstack.org/15/265015/3/check/gate-swift-docs/9c8b82b//doc/build/html/ : SUCCESS in 2m 33s\n- gate-swift-python27 http://logs.openstack.org/15/265015/3/check/gate-swift-python27/8c4e5b9/ : SUCCESS in 4m 11s\n- gate-swift-python34 http://logs.openstack.org/15/265015/3/check/gate-swift-python34/be488df/ : SUCCESS in 2m 21s\n- gate-swift-tox-func http://logs.openstack.org/15/265015/3/check/gate-swift-tox-func/d46da72/ : SUCCESS in 4m 18s\n- gate-tempest-dsvm-full http://logs.openstack.org/15/265015/3/check/gate-tempest-dsvm-full/1a604c5/ : SUCCESS in 53m 29s\n- gate-grenade-dsvm http://logs.openstack.org/15/265015/3/check/gate-grenade-dsvm/9fc4559/ : SUCCESS in 39m 21s\n- gate-swift-dsvm-functional http://logs.openstack.org/15/265015/3/check/gate-swift-dsvm-functional/f620b6f/ : SUCCESS in 26m 08s","accounts_in_message":[],"_revision_number":3},{"id":"3705dc28f7ddfdaf718429f781e15671d0f9fec8","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-01-12 02:58:14.000000000","message":"Patch Set 3:\n\nBuild succeeded \n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/1663/ : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/1381/probetests/ : SUCCESS\n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/2258/ssbench : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/3623/ : SUCCESS","accounts_in_message":[],"_revision_number":3},{"id":"c6cb61a8cf77732d91d1f62dfc7006b232271484","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-01-12 21:33:51.000000000","message":"Patch Set 3: Code-Review-1\n\nI don\u0027t see any doc updates in this patch - maybe in a follow up?  could we squash here?\n\nStill don\u0027t understand how DELETE works if it can\u0027t list the target container - sounds like a bug - delete should be rewritten as a list on the target followed by a COPY, maybe our handling of the 404 case is too wide (equates container non-existence to object missing - perhaps we should not be treating those two different situations differently?)\n\nStill don\u0027t see why it\u0027s safe/better to create the target container automatically instead of returning a error.  I suppose technically if a target container *does* exist the reconciler *could* sort it out (eventually) - but if it was just a mistake, and they *ment* to keep backups in an colder/cheaper storage policy but now they automatically get a version container in the same policy as the original (without asking for this mind you) - now they\u0027re in a mess because you can\u0027t change the storage policy on the version target.\n\n... but idk if I understand the use case - maybe something swift3 compat?  Feels like it\u0027d be better to enumerate the current failure modes (via bugs) and see if we can just return better errors and document the expected behavior.","accounts_in_message":[],"_revision_number":3},{"id":"8ca081004b452434ed076bbd0b255f985fb7502a","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-01-13 06:04:17.000000000","message":"Patch Set 3:\n\nDocs are updated; they come from the module-level docstring: http://docs-draft.openstack.org/15/265015/3/check/gate-swift-docs/9c8b82b//doc/build/html/middleware.html#module-swift.common.middleware.versioned_writes\n\n\u003e If the X-Versions-Location container does not exist (or is otherwise unavailable) when an overwrite request comes in, an attempt will be made to create it using the same storage policy as the versioned container. If that fails (or the COPY of the previous version fails for other reasons), the overwrite request will be rejected.\n\nThe use-case is a forgetful user. Suppose I\u0027m administering an account that will have some containers shared between several users. However, I don\u0027t really trust my users (they\u0027re dumb and error-prone), so I want to be able to roll back changes they make. General workflow is:\n\n- A request comes in for a new shared container\n\n- I create this container with with appropriate headers: x-container-read and x-container-write for everyone who should have access, plus x-versions-location so I can do rollbacks. (Noting that rolling back a DELETE requires https://review.openstack.org/#/c/214922/ coupled with a not-yet-unwritten ability to place restrictions on the delete-mode query param.) But I\u0027ve forgotten to create the versions container.\n\n- Maybe I even do some verification that the container seems to work the way I want: PUT object, check; POST object, check; DELETE object (with the pop-version mode, so it actually goes away and I don\u0027t clutter things up with my tests), check.\n\n- I tell my users, \"OK, everything\u0027s set. Here\u0027s the container URL.\"\n\nEverything works great as my users start putting data in; it isn\u0027t until some indeterminate time later that one of them tries to overwrite something (or delete it, after the delete marker work) that someone complains about things not working. I feel like an idiot and create the versions container, but there are delays throughout the process (app breaks -\u003e user figures out *why* the app broke -\u003e user figures out that there\u0027s nothing *they* can do to fix it -\u003e user contacts *me* -\u003e I actually fix the issue) and the whole time my affected users view it as downtime.\n\nNow, it would help to break DELETEs when the versions container doesn\u0027t exist, but it would still require that I actually do that validation step. Alternatively, we could make it even more obvious and break *all* PUTs, not just overwrites, but that feels downright hostile toward the user. With this, we (generally) do what the user wanted (and already requested).","accounts_in_message":[],"_revision_number":3},{"id":"96a2654d2f797d7a8d05e6e8fa3eb9690f335cbd","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-01-13 06:35:56.000000000","message":"Patch Set 3: -Code-Review\n\nah, my mistake - thanks - let me digest and let some others chime in","accounts_in_message":[],"_revision_number":3},{"id":"1197b210d3193b68767008286a0841b4eeee1e2b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-04-21 07:37:41.000000000","message":"Patch Set 3: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":3},{"id":"ff34f6cefb687acb76384a1d219bfe0efdc3ed75","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-04-25 06:18:17.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"8d74b8cebf604d1576d95889e15cc90176d21658","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-04-25 07:18:15.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-docs http://docs-draft.openstack.org/15/265015/4/check/gate-swift-docs/8f82fb9//doc/build/html/ : SUCCESS in 3m 03s\n- gate-swift-pep8 http://logs.openstack.org/15/265015/4/check/gate-swift-pep8/6391ceb/ : SUCCESS in 2m 19s\n- gate-swift-python27 http://logs.openstack.org/15/265015/4/check/gate-swift-python27/54f5cfd/ : SUCCESS in 4m 49s\n- gate-swift-python34 http://logs.openstack.org/15/265015/4/check/gate-swift-python34/046f80f/ : SUCCESS in 4m 05s\n- gate-swift-tox-func http://logs.openstack.org/15/265015/4/check/gate-swift-tox-func/337d2cf/ : SUCCESS in 5m 09s\n- gate-swift-tox-func-in-process-fast-post http://logs.openstack.org/15/265015/4/check/gate-swift-tox-func-in-process-fast-post/312c6c2/ : SUCCESS in 6m 44s (non-voting)\n- gate-tempest-dsvm-full http://logs.openstack.org/15/265015/4/check/gate-tempest-dsvm-full/37d3ade/ : SUCCESS in 39m 55s\n- gate-tempest-dsvm-neutron-identity-v3-only-full-nv http://logs.openstack.org/15/265015/4/check/gate-tempest-dsvm-neutron-identity-v3-only-full-nv/80516d6/ : SUCCESS in 59m 49s (non-voting)\n- gate-grenade-dsvm http://logs.openstack.org/15/265015/4/check/gate-grenade-dsvm/84e826d/ : SUCCESS in 36m 53s\n- gate-swift-dsvm-functional http://logs.openstack.org/15/265015/4/check/gate-swift-dsvm-functional/5c9179a/ : SUCCESS in 13m 43s","accounts_in_message":[],"_revision_number":4},{"id":"5eace72b149a844682b22ba8f5a4e90d675d841f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-05-12 02:51:32.000000000","message":"Patch Set 4: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":4},{"id":"321abfe1fea7057fba8fc98a536f81d3122bc1e8","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-05-12 17:32:35.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"35f4b43597c0226607d0e1fbf8697fc6e1e3a7ac","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-05-12 18:44:20.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-docs http://docs-draft.openstack.org/15/265015/5/check/gate-swift-docs/eed1bd4//doc/build/html/ : SUCCESS in 4m 31s\n- gate-swift-pep8 http://logs.openstack.org/15/265015/5/check/gate-swift-pep8/a54acd4/ : SUCCESS in 3m 49s\n- gate-swift-python27 http://logs.openstack.org/15/265015/5/check/gate-swift-python27/9eafe0f/ : SUCCESS in 3m 29s\n- gate-swift-python34 http://logs.openstack.org/15/265015/5/check/gate-swift-python34/31d75cc/ : SUCCESS in 4m 22s\n- gate-swift-tox-func http://logs.openstack.org/15/265015/5/check/gate-swift-tox-func/693803a/ : SUCCESS in 3m 17s\n- gate-swift-tox-func-in-process-fast-post http://logs.openstack.org/15/265015/5/check/gate-swift-tox-func-in-process-fast-post/65f5953/ : SUCCESS in 4m 12s (non-voting)\n- gate-tempest-dsvm-full http://logs.openstack.org/15/265015/5/check/gate-tempest-dsvm-full/f271d40/ : SUCCESS in 41m 25s\n- gate-tempest-dsvm-neutron-identity-v3-only-full-nv http://logs.openstack.org/15/265015/5/check/gate-tempest-dsvm-neutron-identity-v3-only-full-nv/475cd0e/ : SUCCESS in 51m 36s (non-voting)\n- gate-grenade-dsvm http://logs.openstack.org/15/265015/5/check/gate-grenade-dsvm/b5e6899/ : SUCCESS in 37m 11s\n- gate-swift-dsvm-functional http://logs.openstack.org/15/265015/5/check/gate-swift-dsvm-functional/9d81f1f/ : SUCCESS in 29m 14s\n- gate-swift-tox-bandit http://logs.openstack.org/15/265015/5/check/gate-swift-tox-bandit/2f53c22/ : SUCCESS in 3m 50s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"91550dcef12cfaa5752f2223aa1d5458a61a5b38","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-05-13 06:17:10.000000000","message":"Patch Set 5:\n\nBuild Failed \n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/3700/ssbench : SUCCESS\n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/3106/ : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/2886/probetests/ : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/5062/ : FAILURE","accounts_in_message":[],"_revision_number":5},{"id":"52379b009156c932888e2015a6c9c72fe3e3dd3b","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-06-03 17:17:35.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"b68ea251cd40f4326bae6c70181db425c9bba7c0","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-06-03 19:06:05.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-docs http://docs-draft.openstack.org/15/265015/6/check/gate-swift-docs/3df5cd5//doc/build/html/ : SUCCESS in 1m 56s\n- gate-swift-pep8 http://logs.openstack.org/15/265015/6/check/gate-swift-pep8/cb1e7c8/ : SUCCESS in 1m 18s\n- gate-swift-python27 http://logs.openstack.org/15/265015/6/check/gate-swift-python27/5bce044/ : SUCCESS in 5m 31s\n- gate-swift-python34 http://logs.openstack.org/15/265015/6/check/gate-swift-python34/8541dec/ : SUCCESS in 4m 01s\n- gate-swift-tox-func http://logs.openstack.org/15/265015/6/check/gate-swift-tox-func/ae52932/ : SUCCESS in 4m 22s\n- gate-swift-tox-func-in-process-fast-post http://logs.openstack.org/15/265015/6/check/gate-swift-tox-func-in-process-fast-post/f6b5c82/ : SUCCESS in 4m 24s\n- gate-tempest-dsvm-full http://logs.openstack.org/15/265015/6/check/gate-tempest-dsvm-full/e469a0e/ : SUCCESS in 45m 48s\n- gate-tempest-dsvm-neutron-identity-v3-only-full-nv http://logs.openstack.org/15/265015/6/check/gate-tempest-dsvm-neutron-identity-v3-only-full-nv/657ab81/ : SUCCESS in 1h 02m 01s (non-voting)\n- gate-grenade-dsvm http://logs.openstack.org/15/265015/6/check/gate-grenade-dsvm/aec5825/ : SUCCESS in 41m 16s\n- gate-swift-dsvm-functional http://logs.openstack.org/15/265015/6/check/gate-swift-dsvm-functional/91e2245/ : SUCCESS in 14m 29s\n- gate-swift-tox-bandit http://logs.openstack.org/15/265015/6/check/gate-swift-tox-bandit/f9a4944/ : SUCCESS in 1m 08s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"e8efa6b55fc1871878d1d2b143c4d3a121e7b4ab","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-07-01 15:34:24.000000000","message":"Patch Set 6: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":6},{"id":"68546c7ab997cefb4e2d7a545bf00f07bf8e4f2a","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-07-02 08:34:18.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"abb38563b0a51ef813fb816fc729f609247179b2","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-07-02 09:37:55.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-docs http://docs-draft.openstack.org/15/265015/7/check/gate-swift-docs/8bbe052//doc/build/html/ : SUCCESS in 3m 14s\n- gate-swift-pep8 http://logs.openstack.org/15/265015/7/check/gate-swift-pep8/5c41a2c/ : SUCCESS in 1m 48s\n- gate-swift-python27 http://logs.openstack.org/15/265015/7/check/gate-swift-python27/c98486d/ : SUCCESS in 5m 05s\n- gate-swift-python34 http://logs.openstack.org/15/265015/7/check/gate-swift-python34/9fb0a48/ : SUCCESS in 2m 43s\n- gate-swift-tox-func http://logs.openstack.org/15/265015/7/check/gate-swift-tox-func/7f4b4bb/ : SUCCESS in 4m 11s\n- gate-swift-tox-func-in-process-fast-post http://logs.openstack.org/15/265015/7/check/gate-swift-tox-func-in-process-fast-post/b456ed8/ : SUCCESS in 4m 08s\n- gate-tempest-dsvm-full http://logs.openstack.org/15/265015/7/check/gate-tempest-dsvm-full/6255680/ : SUCCESS in 49m 27s\n- gate-tempest-dsvm-neutron-identity-v3-only-full-nv http://logs.openstack.org/15/265015/7/check/gate-tempest-dsvm-neutron-identity-v3-only-full-nv/2e5179e/ : SUCCESS in 1h 03m 24s (non-voting)\n- gate-grenade-dsvm http://logs.openstack.org/15/265015/7/check/gate-grenade-dsvm/abdbbe7/ : SUCCESS in 39m 45s\n- gate-swift-dsvm-functional http://logs.openstack.org/15/265015/7/check/gate-swift-dsvm-functional/aa34bc6/ : SUCCESS in 26m 32s\n- gate-swift-tox-bandit http://logs.openstack.org/15/265015/7/check/gate-swift-tox-bandit/81baa04/ : SUCCESS in 2m 31s (non-voting)\n- gate-swift-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/15/265015/7/check/gate-swift-dsvm-functional-identity-v3-only-nv/3dac965/ : SUCCESS in 46m 50s (non-voting)","accounts_in_message":[],"_revision_number":7},{"id":"739e610a43244ed8ece0fc812b55bac48d2bd66e","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-07-02 11:40:16.000000000","message":"Patch Set 7:\n\nBuild succeeded \n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/4230/ssbench : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/3537/probetests/ : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/5592/ : SUCCESS\n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/3636/ : SUCCESS","accounts_in_message":[],"_revision_number":7},{"id":"f171af8511156171a62695c565a11a1ad0b72ed3","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-08-11 14:49:20.000000000","message":"Patch Set 7: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":7},{"id":"b70013d160623868d26f77261f8b604dfd9148ef","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-08-16 02:10:21.000000000","message":"Uploaded patch set 8.","accounts_in_message":[],"_revision_number":8},{"id":"ed86c59b7d5509cfca8a32b9090fbfe80ddf4f76","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-08-16 03:01:06.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-docs-ubuntu-xenial http://docs-draft.openstack.org/15/265015/8/check/gate-swift-docs-ubuntu-xenial/88574b5//doc/build/html/ : SUCCESS in 4m 02s\n- gate-swift-pep8-ubuntu-xenial http://logs.openstack.org/15/265015/8/check/gate-swift-pep8-ubuntu-xenial/b768669/ : SUCCESS in 2m 03s\n- gate-swift-python27-ubuntu-xenial http://logs.openstack.org/15/265015/8/check/gate-swift-python27-ubuntu-xenial/998b1c7/ : SUCCESS in 5m 33s\n- gate-swift-python34 http://logs.openstack.org/15/265015/8/check/gate-swift-python34/2ed0600/ : SUCCESS in 1m 58s\n- gate-swift-python35-nv http://logs.openstack.org/15/265015/8/check/gate-swift-python35-nv/c2ad95c/ : SUCCESS in 3m 04s (non-voting)\n- gate-swift-tox-func-ubuntu-xenial http://logs.openstack.org/15/265015/8/check/gate-swift-tox-func-ubuntu-xenial/e9c56a8/ : SUCCESS in 3m 14s\n- gate-swift-tox-func-in-process-fast-post-ubuntu-xenial http://logs.openstack.org/15/265015/8/check/gate-swift-tox-func-in-process-fast-post-ubuntu-xenial/91850a2/ : SUCCESS in 3m 15s\n- gate-swift-tox-func-in-process-encryption-ubuntu-xenial http://logs.openstack.org/15/265015/8/check/gate-swift-tox-func-in-process-encryption-ubuntu-xenial/7c43906/ : SUCCESS in 6m 37s (non-voting)\n- gate-tempest-dsvm-full-ubuntu-xenial http://logs.openstack.org/15/265015/8/check/gate-tempest-dsvm-full-ubuntu-xenial/670e803/ : SUCCESS in 45m 41s\n- gate-tempest-dsvm-neutron-identity-v3-only-full-nv http://logs.openstack.org/15/265015/8/check/gate-tempest-dsvm-neutron-identity-v3-only-full-nv/08d83b5/ : FAILURE in 27m 21s (non-voting)\n- gate-grenade-dsvm-ubuntu-trusty http://logs.openstack.org/15/265015/8/check/gate-grenade-dsvm-ubuntu-trusty/a1d4373/ : SUCCESS in 47m 53s\n- gate-swift-dsvm-functional http://logs.openstack.org/15/265015/8/check/gate-swift-dsvm-functional/687f18c/ : SUCCESS in 38m 43s\n- gate-swift-tox-bandit-ubuntu-xenial http://logs.openstack.org/15/265015/8/check/gate-swift-tox-bandit-ubuntu-xenial/0b74a94/ : SUCCESS in 2m 18s (non-voting)\n- gate-swift-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/15/265015/8/check/gate-swift-dsvm-functional-identity-v3-only-nv/cf89756/ : SUCCESS in 36m 57s (non-voting)","accounts_in_message":[],"_revision_number":8},{"id":"3e2413610f617e1d5d2eca43b8c018de5a03a7a5","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-08-26 08:35:07.000000000","message":"Patch Set 8: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":8},{"id":"b5977dba79ccfccf9f3860c561f074cfca2aeee5","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-08-27 01:12:27.000000000","message":"Uploaded patch set 9.","accounts_in_message":[],"_revision_number":9},{"id":"f3534e9d3e2c4618b6f25eda8997de80d2d607a6","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-08-27 01:57:57.000000000","message":"Patch Set 9:\n\nBuild Failed \n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/4302/probetests/ : FAILURE\n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/4170/ : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/6129/ : SUCCESS","accounts_in_message":[],"_revision_number":9},{"id":"ddf3a29736725a9a1997b8e9d5de6fd042a9b8c0","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-08-27 02:01:58.000000000","message":"Patch Set 9: 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-swift-docs-ubuntu-xenial http://docs-draft.openstack.org/15/265015/9/check/gate-swift-docs-ubuntu-xenial/9ce56e0//doc/build/html/ : SUCCESS in 2m 32s\n- gate-swift-pep8-ubuntu-xenial http://logs.openstack.org/15/265015/9/check/gate-swift-pep8-ubuntu-xenial/58d4972/ : SUCCESS in 2m 29s\n- gate-swift-python27-ubuntu-xenial http://logs.openstack.org/15/265015/9/check/gate-swift-python27-ubuntu-xenial/bacf38c/ : FAILURE in 5m 09s\n- gate-swift-python34 http://logs.openstack.org/15/265015/9/check/gate-swift-python34/011624c/ : SUCCESS in 1m 42s\n- gate-swift-python35-nv http://logs.openstack.org/15/265015/9/check/gate-swift-python35-nv/712c9bc/ : SUCCESS in 2m 05s (non-voting)\n- gate-swift-tox-func-ubuntu-xenial http://logs.openstack.org/15/265015/9/check/gate-swift-tox-func-ubuntu-xenial/3d93dbe/ : FAILURE in 3m 27s\n- gate-swift-tox-func-in-process-fast-post-ubuntu-xenial http://logs.openstack.org/15/265015/9/check/gate-swift-tox-func-in-process-fast-post-ubuntu-xenial/fcf2d27/ : FAILURE in 4m 41s\n- gate-swift-tox-func-in-process-encryption-ubuntu-xenial http://logs.openstack.org/15/265015/9/check/gate-swift-tox-func-in-process-encryption-ubuntu-xenial/2606667/ : FAILURE in 3m 32s (non-voting)\n- gate-tempest-dsvm-full-ubuntu-xenial http://logs.openstack.org/15/265015/9/check/gate-tempest-dsvm-full-ubuntu-xenial/a551fc0/ : SUCCESS in 49m 13s\n- gate-tempest-dsvm-neutron-identity-v3-only-full-nv http://logs.openstack.org/15/265015/9/check/gate-tempest-dsvm-neutron-identity-v3-only-full-nv/b558896/ : FAILURE in 24m 14s (non-voting)\n- gate-grenade-dsvm-ubuntu-trusty http://logs.openstack.org/15/265015/9/check/gate-grenade-dsvm-ubuntu-trusty/6843052/ : SUCCESS in 35m 10s\n- gate-swift-dsvm-functional http://logs.openstack.org/15/265015/9/check/gate-swift-dsvm-functional/d637637/ : FAILURE in 36m 01s\n- gate-swift-tox-bandit-ubuntu-xenial http://logs.openstack.org/15/265015/9/check/gate-swift-tox-bandit-ubuntu-xenial/e1a5da8/ : SUCCESS in 3m 21s (non-voting)\n- gate-swift-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/15/265015/9/check/gate-swift-dsvm-functional-identity-v3-only-nv/975fdb3/ : FAILURE in 24m 20s (non-voting)","accounts_in_message":[],"_revision_number":9},{"id":"35e97bd457af88791095f3d309c005cc854537e2","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-11-08 21:39:51.000000000","message":"Uploaded patch set 10.","accounts_in_message":[],"_revision_number":10},{"id":"422b406a34c13ec5e413fb0264119798f469365d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-08 22:28:07.000000000","message":"Patch Set 10: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-docs-ubuntu-xenial http://docs-draft.openstack.org/15/265015/10/check/gate-swift-docs-ubuntu-xenial/b8ddf59//doc/build/html/ : SUCCESS in 3m 25s\n- gate-swift-pep8-ubuntu-xenial http://logs.openstack.org/15/265015/10/check/gate-swift-pep8-ubuntu-xenial/d5d893f/ : SUCCESS in 3m 12s\n- gate-swift-python27-ubuntu-xenial http://logs.openstack.org/15/265015/10/check/gate-swift-python27-ubuntu-xenial/33b3f7e/ : SUCCESS in 5m 18s\n- gate-swift-python34 http://logs.openstack.org/15/265015/10/check/gate-swift-python34/94e0186/ : SUCCESS in 1m 52s\n- gate-swift-python35-nv http://logs.openstack.org/15/265015/10/check/gate-swift-python35-nv/0793d79/ : SUCCESS in 2m 03s (non-voting)\n- gate-swift-tox-func-ubuntu-xenial http://logs.openstack.org/15/265015/10/check/gate-swift-tox-func-ubuntu-xenial/2bdde1e/ : SUCCESS in 5m 17s\n- gate-swift-tox-func-in-process-fast-post-ubuntu-xenial http://logs.openstack.org/15/265015/10/check/gate-swift-tox-func-in-process-fast-post-ubuntu-xenial/ee0afe5/ : SUCCESS in 3m 19s\n- gate-swift-tox-func-in-process-encryption-ubuntu-xenial http://logs.openstack.org/15/265015/10/check/gate-swift-tox-func-in-process-encryption-ubuntu-xenial/f8a42fa/ : SUCCESS in 3m 22s\n- gate-tempest-dsvm-neutron-identity-v3-only-full-ubuntu-xenial-nv http://logs.openstack.org/15/265015/10/check/gate-tempest-dsvm-neutron-identity-v3-only-full-ubuntu-xenial-nv/88871d0/ : SUCCESS in 46m 47s (non-voting)\n- gate-grenade-dsvm-ubuntu-xenial http://logs.openstack.org/15/265015/10/check/gate-grenade-dsvm-ubuntu-xenial/98e6c25/ : SUCCESS in 26m 33s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/15/265015/10/check/gate-swift-dsvm-functional-ubuntu-xenial/a54170a/ : SUCCESS in 17m 49s\n- gate-swift-tox-bandit-ubuntu-xenial http://logs.openstack.org/15/265015/10/check/gate-swift-tox-bandit-ubuntu-xenial/aa6923d/ : SUCCESS in 1m 29s (non-voting)\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/15/265015/10/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/a936193/ : SUCCESS in 17m 47s (non-voting)","accounts_in_message":[],"_revision_number":10},{"id":"ccc7bb87064b03aaed64e0ea5e399fa4f699a415","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-11-08 23:28:49.000000000","message":"Patch Set 10:\n\nBuild succeeded \n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/4754/ : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/6715/ : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/5061/probetests/ : SUCCESS","accounts_in_message":[],"_revision_number":10},{"id":"64db0559ed7ffbd97c85593ca3e8b533548ddf64","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-22 07:56:42.000000000","message":"Patch Set 10: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":10},{"id":"e94b8839310437a693e96623f068421435177bbd","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-11-30 18:24:38.000000000","message":"Uploaded patch set 11.","accounts_in_message":[],"_revision_number":11},{"id":"a59d70856045c69c7f9b8cb1c864a4e69268f1e2","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-30 19:16:51.000000000","message":"Patch Set 11: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-docs-ubuntu-xenial http://docs-draft.openstack.org/15/265015/11/check/gate-swift-docs-ubuntu-xenial/d9c8dab//doc/build/html/ : SUCCESS in 2m 24s\n- gate-swift-pep8-ubuntu-xenial http://logs.openstack.org/15/265015/11/check/gate-swift-pep8-ubuntu-xenial/8f8944f/ : SUCCESS in 2m 37s\n- gate-swift-python27-ubuntu-xenial http://logs.openstack.org/15/265015/11/check/gate-swift-python27-ubuntu-xenial/d5b21b8/ : SUCCESS in 3m 29s\n- gate-swift-python34 http://logs.openstack.org/15/265015/11/check/gate-swift-python34/d731a51/ : SUCCESS in 1m 09s\n- gate-swift-python35 http://logs.openstack.org/15/265015/11/check/gate-swift-python35/efea89d/ : SUCCESS in 2m 10s\n- gate-swift-tox-xfs-tmp-py27-ubuntu-xenial http://logs.openstack.org/15/265015/11/check/gate-swift-tox-xfs-tmp-py27-ubuntu-xenial/9922d5a/ : SUCCESS in 5m 47s\n- gate-swift-tox-xfs-tmp-py35-ubuntu-xenial http://logs.openstack.org/15/265015/11/check/gate-swift-tox-xfs-tmp-py35-ubuntu-xenial/03e8ea1/ : SUCCESS in 2m 33s\n- gate-swift-tox-xfs-tmp-func-ubuntu-xenial http://logs.openstack.org/15/265015/11/check/gate-swift-tox-xfs-tmp-func-ubuntu-xenial/0ef2731/ : SUCCESS in 3m 26s\n- gate-swift-tox-xfs-tmp-func-fast-post-ubuntu-xenial http://logs.openstack.org/15/265015/11/check/gate-swift-tox-xfs-tmp-func-fast-post-ubuntu-xenial/597d318/ : SUCCESS in 3m 23s\n- gate-swift-tox-xfs-tmp-func-encryption-ubuntu-xenial http://logs.openstack.org/15/265015/11/check/gate-swift-tox-xfs-tmp-func-encryption-ubuntu-xenial/9ce829b/ : SUCCESS in 3m 27s\n- gate-tempest-dsvm-neutron-identity-v3-only-full-ubuntu-xenial-nv http://logs.openstack.org/15/265015/11/check/gate-tempest-dsvm-neutron-identity-v3-only-full-ubuntu-xenial-nv/bebec8b/ : SUCCESS in 50m 39s (non-voting)\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/15/265015/11/check/gate-swift-dsvm-functional-ubuntu-xenial/f3bc692/ : SUCCESS in 20m 06s\n- gate-swift-tox-xfs-tmp-bandit-ubuntu-xenial http://logs.openstack.org/15/265015/11/check/gate-swift-tox-xfs-tmp-bandit-ubuntu-xenial/6ed39f9/ : SUCCESS in 1m 27s (non-voting)\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/15/265015/11/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/2638f5f/ : SUCCESS in 20m 05s (non-voting)","accounts_in_message":[],"_revision_number":11},{"id":"6757681e633013ab1faba44f3bf954a8387462ac","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-11-30 19:23:40.000000000","message":"Patch Set 11:\n\nBuild succeeded \n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/4937/ : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/6901/ : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/5277/probetests/ : SUCCESS","accounts_in_message":[],"_revision_number":11},{"id":"368b13946177c230c419fc9d5fe26047dd9adcc4","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-03-27 14:09:06.000000000","message":"Patch Set 11: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":11},{"id":"a3850d4c76b9bdd7c852574beee097583203b24b","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2017-10-13 18:59:37.000000000","message":"Uploaded patch set 12.","accounts_in_message":[],"_revision_number":12},{"id":"61875118460b63fe3dbebb527dab06e1043c1e46","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-10-13 20:31:45.000000000","message":"Patch Set 12: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-docs-ubuntu-xenial http://docs-draft.openstack.org/15/265015/12/check/gate-swift-docs-ubuntu-xenial/8a19af7//doc/build/html/ : SUCCESS in 4m 17s\n- gate-swift-pep8-ubuntu-xenial http://logs.openstack.org/15/265015/12/check/gate-swift-pep8-ubuntu-xenial/3203c57/ : SUCCESS in 3m 25s\n- gate-swift-python27-ubuntu-xenial http://logs.openstack.org/15/265015/12/check/gate-swift-python27-ubuntu-xenial/c61b34b/ : SUCCESS in 5m 29s\n- gate-swift-python35 http://logs.openstack.org/15/265015/12/check/gate-swift-python35/5c6191e/ : SUCCESS in 2m 03s\n- gate-tempest-dsvm-neutron-full-ubuntu-xenial http://logs.openstack.org/15/265015/12/check/gate-tempest-dsvm-neutron-full-ubuntu-xenial/d13dbeb/ : SUCCESS in 1h 28m 36s\n- gate-grenade-dsvm-neutron-ubuntu-xenial http://logs.openstack.org/15/265015/12/check/gate-grenade-dsvm-neutron-ubuntu-xenial/409a35f/ : SUCCESS in 47m 41s\n- gate-swift-tox-xfs-tmp-py27-ubuntu-xenial http://logs.openstack.org/15/265015/12/check/gate-swift-tox-xfs-tmp-py27-ubuntu-xenial/14674e2/ : SUCCESS in 5m 46s\n- gate-swift-tox-xfs-tmp-py35-ubuntu-xenial http://logs.openstack.org/15/265015/12/check/gate-swift-tox-xfs-tmp-py35-ubuntu-xenial/9a57ef6/ : SUCCESS in 2m 05s\n- gate-swift-tox-xfs-tmp-func-ubuntu-xenial http://logs.openstack.org/15/265015/12/check/gate-swift-tox-xfs-tmp-func-ubuntu-xenial/308abcb/ : SUCCESS in 5m 54s\n- gate-swift-tox-xfs-tmp-func-post-as-copy-ubuntu-xenial http://logs.openstack.org/15/265015/12/check/gate-swift-tox-xfs-tmp-func-post-as-copy-ubuntu-xenial/b1c84ca/ : SUCCESS in 5m 35s\n- gate-swift-tox-xfs-tmp-func-encryption-ubuntu-xenial http://logs.openstack.org/15/265015/12/check/gate-swift-tox-xfs-tmp-func-encryption-ubuntu-xenial/adc39f1/ : SUCCESS in 4m 48s\n- gate-swift-tox-xfs-tmp-func-ec-ubuntu-xenial http://logs.openstack.org/15/265015/12/check/gate-swift-tox-xfs-tmp-func-ec-ubuntu-xenial/635d510/ : SUCCESS in 5m 06s (non-voting)\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/15/265015/12/check/gate-swift-dsvm-functional-ubuntu-xenial/da423a9/ : SUCCESS in 21m 51s\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/15/265015/12/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/7f1416f/ : SUCCESS in 20m 53s (non-voting)","accounts_in_message":[],"_revision_number":12},{"id":"20480e6945e9edde7e1cd20f5fd5345b0174141d","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2017-10-13 20:42:05.000000000","message":"Patch Set 12:\n\nBuild succeeded \n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/7489/ : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/9467/ : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/265015/7853/probetests/ : SUCCESS","accounts_in_message":[],"_revision_number":12},{"id":"43771ee12a98e63119aa2204116796a1f14e4d30","author":{"_account_id":25251,"name":"Alexandre Lécuyer","email":"alexandre.lecuyer@corp.ovh.com","username":"alecuyer"},"date":"2019-02-26 11:01:50.000000000","message":"Patch Set 12:\n\n(2 comments)\n\nGeneral question, sorry if it\u0027s silly. If we want to help a forgetful admin, shouldn\u0027t this be done when setting the X-Versions-Location header? Or even, refusing to set it if the admin has not created the target container himself: that way, we make sure *he* has to do it, and pick the policy. \n\nBut that would change the current behavior, so maybe not worth considering. \n\nOtherwise, I have rebased on a current master and tested it works and will create the target container in the same policy as the \"source\" container. I have also ran the unittests, and functests","accounts_in_message":[],"_revision_number":12},{"id":"1044ee97d71dca719ed5f81ded41ad6f5fe7fe63","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-03-04 22:04:34.000000000","message":"Uploaded patch set 13.","accounts_in_message":[],"_revision_number":13},{"id":"a4c5fd187271be95f89d635a7e8708d15ff6b18d","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-03-04 22:37:46.000000000","message":"Patch Set 13:\n\n(2 comments)\n\n\u003e General question, sorry if it\u0027s silly. If we want to help a forgetful admin, shouldn\u0027t this be done when setting the X-Versions-Location header?\n\nThat\u0027s maybe not a bad idea... it would add this kind of odd side effect to the container POST, but might be tolerable. What should the order be? I guess PUT the archive container, then POST to the base one? And fail the request without attempting the POST if the PUT fails...\n\nThough creating a container (with versioning enabled) and immediately deleting it would leave the empty archive container hanging around. Or, you create a container with a particular storage policy (and versioning enabled), realize you chose the wrong policy, so you delete and recreate the container... and only later notice that the archive container still has the original policy. Hrm.\n\n\u003e Or even, refusing to set it if the admin has not created the target container himself: that way, we make sure *he* has to do it, and pick the policy.\n\nThis seems more annoying... if the archive container is temporarily unavailable (say you\u0027ve got a three-region cluster, the WAN is down, and the local copy is on a failed disk), then you can\u0027t send the POST? I guess it\u0027s not such a big thing to have the client always do an extra PUT before a POST, though...\n\n\u003e But that would change the current behavior, so maybe not worth considering.\n\nThat was part of my concern. There may be existing workflows where clients create the primary container, enable versioning on it, then create the archive container (possibly with a different storage policy). I didn\u0027t really want to break that if I could help it. *shrug*\n\nThe other big thing was that I really want this in the context of https://review.openstack.org/#/c/342857/ which adds a \"defaulter\" middleware. In particular, one of the explicit design goals is to be able to automatically enable versioning throughout an account (or even throughout a *cluster*), while requiring a minimum of client intervention.","accounts_in_message":[],"_revision_number":13},{"id":"82b2574edbc5107b513287b75d53e6506fd2b4c4","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-03-05 00:26:47.000000000","message":"Patch Set 13: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs http://logs.openstack.org/15/265015/13/check/openstack-tox-docs/eb87a7c/html/ : SUCCESS in 4m 52s\n- swift-tox-py27 http://logs.openstack.org/15/265015/13/check/swift-tox-py27/b72e039/ : SUCCESS in 13m 07s\n- swift-tox-py35 http://logs.openstack.org/15/265015/13/check/swift-tox-py35/eef29af/ : SUCCESS in 9m 14s\n- swift-tox-py36 http://logs.openstack.org/15/265015/13/check/swift-tox-py36/6bae3e4/ : SUCCESS in 9m 04s (non-voting)\n- swift-tox-func http://logs.openstack.org/15/265015/13/check/swift-tox-func/62eeaa5/ : SUCCESS in 8m 53s\n- swift-tox-func-encryption http://logs.openstack.org/15/265015/13/check/swift-tox-func-encryption/cec5281/ : SUCCESS in 9m 27s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/15/265015/13/check/swift-tox-func-domain-remap-staticweb/4f37ad1/ : SUCCESS in 9m 18s\n- swift-tox-func-ec http://logs.openstack.org/15/265015/13/check/swift-tox-func-ec/75fff8c/ : SUCCESS in 10m 18s\n- swift-tox-func-s3api http://logs.openstack.org/15/265015/13/check/swift-tox-func-s3api/c65815d/ : SUCCESS in 10m 42s\n- swift-tox-func-s3api-ceph-s3tests-tempauth http://logs.openstack.org/15/265015/13/check/swift-tox-func-s3api-ceph-s3tests-tempauth/2557ed7/ : SUCCESS in 12m 46s (non-voting)\n- swift-probetests-centos-7 http://logs.openstack.org/15/265015/13/check/swift-probetests-centos-7/59bc28d/ : SUCCESS in 38m 50s\n- swift-dsvm-functional http://logs.openstack.org/15/265015/13/check/swift-dsvm-functional/43bd9d3/ : SUCCESS in 22m 25s\n- swift-dsvm-functional-ipv6 http://logs.openstack.org/15/265015/13/check/swift-dsvm-functional-ipv6/453e876/ : SUCCESS in 29m 42s\n- swift-tox-lower-constraints http://logs.openstack.org/15/265015/13/check/swift-tox-lower-constraints/9f58fa9/ : SUCCESS in 11m 29s\n- openstack-tox-pep8 http://logs.openstack.org/15/265015/13/check/openstack-tox-pep8/cb5699b/ : SUCCESS in 5m 15s\n- swift-multinode-rolling-upgrade http://logs.openstack.org/15/265015/13/check/swift-multinode-rolling-upgrade/67565ff/ : SUCCESS in 21m 03s","accounts_in_message":[],"_revision_number":13},{"id":"b8ef22442876c4d92488fe49080aed7969c16662","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-08-22 16:23:01.000000000","message":"Uploaded patch set 14.","accounts_in_message":[],"_revision_number":14},{"id":"c9b76226049f9e531cbe761a3add59e866a30379","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-22 21:02:59.000000000","message":"Patch Set 14: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/944c6bebe3db4aa59a9bc277128058d8 : SUCCESS in 7m 44s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/c06b1a0b1a4b4906b27a74e97811a26c : SUCCESS in 55m 36s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/cfff90502578435990f61f4c95b18b82 : SUCCESS in 1h 06m 57s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/851ee9775fb4412db44ed70eb0f624bd : SUCCESS in 10m 14s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/613500d2943e49c6b0bbabb93e66f170 : SUCCESS in 10m 56s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/bf9ab30946494391adb809217c0a29a7 : FAILURE in 14m 09s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/31319598b1904d50b9f1be3d45d21914 : FAILURE in 13m 36s\n- swift-tox-func https://zuul.opendev.org/t/openstack/build/29cc09b19e6843dd906a0ecc3cb4b463 : SUCCESS in 10m 26s\n- swift-tox-func-encryption https://zuul.opendev.org/t/openstack/build/cd3fc20a3b834f3ebc73028d8f324249 : SUCCESS in 12m 02s\n- swift-tox-func-domain-remap-staticweb https://zuul.opendev.org/t/openstack/build/bb2b9275237947cdb664c03e2edc9c47 : SUCCESS in 9m 20s\n- swift-tox-func-ec https://zuul.opendev.org/t/openstack/build/6ecc7185a1344329ac2919cdc1c28fe4 : SUCCESS in 12m 45s\n- swift-tox-func-s3api https://zuul.opendev.org/t/openstack/build/e6653f9b1c5d46ffad8cfb32d460e0b6 : SUCCESS in 15m 17s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/7769005717a94c91bff5c230fc526243 : FAILURE in 12m 57s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/5feedceecd7c4f11bba518e919485a28 : FAILURE in 9m 55s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/bf6a247d316b47a1a9673a16b3b335bd : FAILURE in 11m 58s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/0409434db9954df88a7228ce559c29f8 : FAILURE in 15m 54s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/cb8987502d334d3eaa06c5a2a11e6d03 : FAILURE in 16m 27s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/9c6b10770fb34ea6bdc3b2e1ec0523a1 : SUCCESS in 12m 59s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/90b641960c5849bf9fb22cfacf8f0138 : SUCCESS in 33m 24s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/7231cbdd1444469a90be1c8766b026a8 : SUCCESS in 30m 24s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/8f1daa714d414f8986a97e73d4f2c622 : SUCCESS in 29m 31s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/11fd9896e77040b7b6a1666cf5f88904 : SUCCESS in 36m 12s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/888725798e6f46889bd50bd7bca6de1f : SUCCESS in 14m 17s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1f3d2b9646a04616b5316fdfde98606a : SUCCESS in 7m 28s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/e5aadb0643254e8a89395e7c53aedb74 : SUCCESS in 20m 42s","accounts_in_message":[],"_revision_number":14},{"id":"ffbf36929ead2ce7ed54e0277df5b7630965351f","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-08-22 22:28:33.000000000","message":"Uploaded patch set 15.","accounts_in_message":[],"_revision_number":15},{"id":"90ca2d220b07771a8df8ee8a858dea1282fcb002","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-23 00:38:24.000000000","message":"Patch Set 15: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d29857ab874741b5af43073a1b462ee0 : SUCCESS in 5m 51s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/6226eaa8c2ee4e5f96a954c2edb6734e : SUCCESS in 1h 00m 26s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/b7dcbc483b0a46be81a4e80f9dc22f2b : SUCCESS in 58m 54s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/d6c25af0d69d4ef2818e645f50f0f8df : SUCCESS in 10m 59s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/86d83122e68a4642ab0d5778c375ec74 : SUCCESS in 12m 15s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/fb9976a0d8b645c5a49e094a5758eb24 : SUCCESS in 12m 43s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/2241b2f5c26a45dea75a16afc4d57957 : SUCCESS in 12m 41s\n- swift-tox-func https://zuul.opendev.org/t/openstack/build/69f40c6074be4e95a10ef133c0e54c78 : SUCCESS in 10m 21s\n- swift-tox-func-encryption https://zuul.opendev.org/t/openstack/build/290d06fd0e2044a2b1925c3da305c538 : SUCCESS in 11m 06s\n- swift-tox-func-domain-remap-staticweb https://zuul.opendev.org/t/openstack/build/28586652a98f4c29a9cb3de82b50a3dc : SUCCESS in 10m 04s\n- swift-tox-func-ec https://zuul.opendev.org/t/openstack/build/dbfe03ece68b47d58bbaadb520254ebc : SUCCESS in 10m 51s\n- swift-tox-func-s3api https://zuul.opendev.org/t/openstack/build/664c6a0d287744bbb92f44174fbca64e : SUCCESS in 15m 06s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/e407651dd2594cadb785f262333c8b91 : SUCCESS in 11m 14s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/b19a02e7f1c74559b507d288b435bbdc : SUCCESS in 10m 14s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/37cdd9c575c74a2ca13f2d045e77858b : SUCCESS in 10m 39s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/dc47f5d4e438423cae8cb957742368e8 : SUCCESS in 10m 56s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/a489e6446e7d4e53871a18446512c34f : SUCCESS in 12m 25s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/df30167738bc4f478929791bc89f85fc : SUCCESS in 14m 44s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/af91113c1ed0402694ed7cdf8f5a4008 : SUCCESS in 32m 03s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/8d275c9f6d9941f180a542e10d08cd22 : SUCCESS in 28m 06s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/9378b3e774334e068190944c54ba78a4 : SUCCESS in 32m 03s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/a4b09dc668814eb0aa798ec93741b89a : SUCCESS in 36m 11s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/f40fe5d257344cf8bb49b9bd6d687b9a : SUCCESS in 13m 28s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3df61b2755b040ec9c4fa4afe344b88b : SUCCESS in 8m 11s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/4f6f1f441c7d4882a381664e0bbc3701 : SUCCESS in 22m 08s","accounts_in_message":[],"_revision_number":15},{"id":"77631dc386da96219c1925215e2f2d6bfc167ecb","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-10-30 02:39:31.000000000","message":"Patch Set 15: Code-Review-1\n\n(1 comment)\n\nIf this patch is already running in production then at least we know it works :P\n\nLove the idea. I do have what is probably more of a NIT inline, which is the only thing I see.\n\nHappy to be convinced otherwise though :)","accounts_in_message":[],"_revision_number":15},{"id":"eed02dc9c748f89fdfddfbfa4410c70a02c4f106","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-10-01 18:58:45.000000000","message":"Abandoned\n\nThe new object-versioning stuff is *loads* better -- people should totally just use that instead these days.","accounts_in_message":[],"_revision_number":15}],"current_revision_number":15,"current_revision":"afb7f7bea9aa9f3fb79c4d88b7f977b3b7f00942","revisions":{"88f7673789cdf8cb244fd14a40a074aeb54eb747":{"kind":"REWORK","_number":1,"created":"2016-01-07 23:41:09.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/1"}}},"commit":{"parents":[{"commit":"6786cdf036b4faabe3928c3d0dd9615d94834801","subject":"Fixing the deprecated library function.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6786cdf036b4faabe3928c3d0dd9615d94834801"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-06 03:41:09.000000000","tz":-480},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-07 23:38:58.000000000","tz":-480},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\nversions-location container, things will mostly still work. You can PUT\nnew objects, DELETE objects, GET container listings, etc. The only part\nthat (previously) wouldn\u0027t work was *overwriting* and object, which\nwould cause the server to respond with a 412 Precondition Failed when\nthe COPY fails with a 404.\n\nNow, if and only if the destination container does not exist,\nversioned_writes will attempt to create the destination container, using\nthe same storage policy as the source container and the current user\u0027s\nauthorization. If that succeeds, the COPY will be retried exactly once.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/88f7673789cdf8cb244fd14a40a074aeb54eb747"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/88f7673789cdf8cb244fd14a40a074aeb54eb747"}]},"branch":"refs/heads/master"},"ca5db9e978323a8c6d57b73e72023c32c10cc3ee":{"kind":"REWORK","_number":2,"created":"2016-01-08 18:21:26.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/2"}}},"commit":{"parents":[{"commit":"6786cdf036b4faabe3928c3d0dd9615d94834801","subject":"Fixing the deprecated library function.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6786cdf036b4faabe3928c3d0dd9615d94834801"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-06 03:41:09.000000000","tz":-480},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-08 18:20:52.000000000","tz":-480},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\nversions-location container, things will mostly still work. You can PUT\nnew objects, DELETE objects, GET container listings, etc. The only part\nthat (previously) wouldn\u0027t work was *overwriting* and object, which\nwould cause the server to respond with a 412 Precondition Failed when\nthe COPY fails with a 404.\n\nNow, if and only if the destination container does not exist,\nversioned_writes will attempt to create the destination container, using\nthe same storage policy as the source container and the current user\u0027s\nauthorization. If that succeeds, the COPY will be retried exactly once.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ca5db9e978323a8c6d57b73e72023c32c10cc3ee"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ca5db9e978323a8c6d57b73e72023c32c10cc3ee"}]},"branch":"refs/heads/master"},"35c3dab169cedf69a38f467bd53ce2a0b12943e8":{"kind":"REWORK","_number":3,"created":"2016-01-12 00:58:43.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/3"}}},"commit":{"parents":[{"commit":"6786cdf036b4faabe3928c3d0dd9615d94834801","subject":"Fixing the deprecated library function.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6786cdf036b4faabe3928c3d0dd9615d94834801"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-06 03:41:09.000000000","tz":-480},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-12 00:52:18.000000000","tz":-480},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\nversions-location container, things will mostly still work. You can PUT\nnew objects, DELETE objects, GET container listings, etc. The only part\nthat (previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the COPY\nfails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the COPY will be retried\nexactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/35c3dab169cedf69a38f467bd53ce2a0b12943e8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/35c3dab169cedf69a38f467bd53ce2a0b12943e8"}]},"branch":"refs/heads/master"},"63f125468634b3847450354b39fb13d283e75787":{"kind":"REWORK","_number":4,"created":"2016-04-25 06:18:17.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/4"}}},"commit":{"parents":[{"commit":"60c127575be0205bd5cf5f850b873675f2956e0e","subject":"Merge \"swift-[account|container]-info when disk is full\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/60c127575be0205bd5cf5f850b873675f2956e0e"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-08-19 19:17:47.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-04-24 21:10:50.000000000","tz":0},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\nversions-location container, things will mostly still work. You can PUT\nnew objects, DELETE objects, GET container listings, etc. The only part\nthat (previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the COPY\nfails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the COPY will be retried\nexactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler to ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/63f125468634b3847450354b39fb13d283e75787"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/63f125468634b3847450354b39fb13d283e75787"}]},"branch":"refs/heads/master"},"84504399a77a6518dc2806480b5493c65f5f7ca8":{"kind":"REWORK","_number":5,"created":"2016-05-12 17:32:35.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/5"}}},"commit":{"parents":[{"commit":"177e531a2e73da6381864f1c883839e4a25f5f58","subject":"Merge \"Remove unneeded setting of SO_REUSEADDR.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/177e531a2e73da6381864f1c883839e4a25f5f58"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-08-19 19:17:47.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-05-12 17:32:20.000000000","tz":-420},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\nversions-location container, things will mostly still work. You can PUT\nnew objects, DELETE objects, GET container listings, etc. The only part\nthat (previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the COPY\nfails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the COPY will be retried\nexactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler to ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/84504399a77a6518dc2806480b5493c65f5f7ca8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/84504399a77a6518dc2806480b5493c65f5f7ca8"}]},"branch":"refs/heads/master"},"9ec26cc17c1b71e1716f78efd6811234ea9a6414":{"kind":"REWORK","_number":6,"created":"2016-06-03 17:17:35.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/6"}}},"commit":{"parents":[{"commit":"177e531a2e73da6381864f1c883839e4a25f5f58","subject":"Merge \"Remove unneeded setting of SO_REUSEADDR.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/177e531a2e73da6381864f1c883839e4a25f5f58"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-08-19 19:17:47.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-06-03 17:17:04.000000000","tz":-420},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\nversions-location container, things will mostly still work. You can PUT\nnew objects, DELETE objects, GET container listings, etc. The only part\nthat (previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the COPY\nfails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the COPY will be retried\nexactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler to ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9ec26cc17c1b71e1716f78efd6811234ea9a6414"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9ec26cc17c1b71e1716f78efd6811234ea9a6414"}]},"branch":"refs/heads/master"},"8a0c0fd4916f073a8819787338d5ca0ac8da9e28":{"kind":"REWORK","_number":7,"created":"2016-07-02 08:34:18.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/7"}}},"commit":{"parents":[{"commit":"9045f338693474303f209a4909bca64031afbe9d","subject":"Merge at-rest encryption feature into master","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9045f338693474303f209a4909bca64031afbe9d"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-08-19 19:17:47.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-07-02 08:33:17.000000000","tz":-420},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\nversions-location container, things will mostly still work. You can PUT\nnew objects, DELETE objects, GET container listings, etc. The only part\nthat (previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the COPY\nfails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the COPY will be retried\nexactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler to ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8a0c0fd4916f073a8819787338d5ca0ac8da9e28"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8a0c0fd4916f073a8819787338d5ca0ac8da9e28"}]},"branch":"refs/heads/master"},"49b79ee49e4f2ceeb0b95a9bd64c34af7b25e26a":{"kind":"REWORK","_number":8,"created":"2016-08-16 02:10:21.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/8"}}},"commit":{"parents":[{"commit":"9c859ccfeeb0a3e11ba01d770d704a5c9ccda612","subject":"Merge \"add reminder how to run debug func tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9c859ccfeeb0a3e11ba01d770d704a5c9ccda612"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-08-19 19:17:47.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-08-16 02:09:35.000000000","tz":-420},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\nversions-location container, things will mostly still work. You can PUT\nnew objects, DELETE objects, GET container listings, etc. The only part\nthat (previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the COPY\nfails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the COPY will be retried\nexactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler to ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/49b79ee49e4f2ceeb0b95a9bd64c34af7b25e26a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/49b79ee49e4f2ceeb0b95a9bd64c34af7b25e26a"}]},"branch":"refs/heads/master"},"c118e9a978b50488c8cc36a4ca13801b5299bbce":{"kind":"REWORK","_number":9,"created":"2016-08-27 01:12:27.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/9"}}},"commit":{"parents":[{"commit":"9d08d17b4fbbc9efce007b2379016af23793d98c","subject":"Merge \"Add \"history\" mode to versioned_writes middleware\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9d08d17b4fbbc9efce007b2379016af23793d98c"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-08-19 19:17:47.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-08-27 01:12:29.000000000","tz":-420},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\nversions-location container, things will mostly still work. You can PUT\nnew objects, DELETE objects, GET container listings, etc. The only part\nthat (previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the PUT\nto the archive container fails with a 404.\n\nNow, if the PUT fails with a 404 because the archive container\ndoes not exist (and the operator has enabled the off-by-default\n``autovivify_archive_container`` option), versioned_writes will attempt\nto create the archive container, using the same storage policy as\nthe versioned container and the current user\u0027s authorization. If that\nsucceeds, the PUT will be retried exactly once.\n\nIf the archive container already exists but is currently unavailable,\nwe\u0027ll rely on the container-replicator to ensure the archive container\nhas the correct policy and the container-reconciler to ensure the old\nversion is eventually stored with the correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c118e9a978b50488c8cc36a4ca13801b5299bbce"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c118e9a978b50488c8cc36a4ca13801b5299bbce"}]},"branch":"refs/heads/master"},"c2596e2a257edc89439a801beb681b33cdec0ac5":{"kind":"REWORK","_number":10,"created":"2016-11-08 21:39:51.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/10"}}},"commit":{"parents":[{"commit":"78527aaf7a900bfbb8c8a88e7e84d79257e37f5c","subject":"Merge \"EC: reconstruct using non-durable fragments\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/78527aaf7a900bfbb8c8a88e7e84d79257e37f5c"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-06 03:41:09.000000000","tz":-480},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-11-08 21:36:24.000000000","tz":-480},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\narchive container, things will mostly still work. You can PUT new\nobjects, DELETE objects, GET container listings, etc. The only part that\n(previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the PUT\nof the archive data fails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the archiving of the\nprevious version will be retried exactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c2596e2a257edc89439a801beb681b33cdec0ac5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c2596e2a257edc89439a801beb681b33cdec0ac5"}]},"branch":"refs/heads/master"},"e2c4e1c2871e7701ad17351ca966621c6cb53338":{"kind":"REWORK","_number":11,"created":"2016-11-30 18:24:38.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/11"}}},"commit":{"parents":[{"commit":"a92836074cdcbdc1f763df82f0452ab23d5ceac8","subject":"Merge \"add byteorder information and logic to ring files\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a92836074cdcbdc1f763df82f0452ab23d5ceac8"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-06 03:41:09.000000000","tz":-480},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-11-30 18:24:20.000000000","tz":-480},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\narchive container, things will mostly still work. You can PUT new\nobjects, DELETE objects, GET container listings, etc. The only part that\n(previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the PUT\nof the archive data fails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the archiving of the\nprevious version will be retried exactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e2c4e1c2871e7701ad17351ca966621c6cb53338"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e2c4e1c2871e7701ad17351ca966621c6cb53338"}]},"branch":"refs/heads/master"},"41ecfcb1875310202948a8bbf0dad02f4b32ee8c":{"kind":"REWORK","_number":12,"created":"2017-10-13 18:59:37.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/12"}}},"commit":{"parents":[{"commit":"71aa5abac10bc2d6b55ad0375790d58e09cc308f","subject":"Merge \"Imported Translations from Zanata\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/71aa5abac10bc2d6b55ad0375790d58e09cc308f"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-06 03:41:09.000000000","tz":-480},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2017-10-13 18:59:12.000000000","tz":-420},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\narchive container, things will mostly still work. You can PUT new\nobjects, DELETE objects, GET container listings, etc. The only part that\n(previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the PUT\nof the archive data fails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the archiving of the\nprevious version will be retried exactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/41ecfcb1875310202948a8bbf0dad02f4b32ee8c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/41ecfcb1875310202948a8bbf0dad02f4b32ee8c"}]},"branch":"refs/heads/master"},"4ba9fb039fa93a388067aa496f1a86ce5e79de04":{"kind":"REWORK","_number":13,"created":"2019-03-04 22:04:34.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/13"}}},"commit":{"parents":[{"commit":"349c54998461accd25b84e32781a10938d4167a4","subject":"py3: port object auditor","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/349c54998461accd25b84e32781a10938d4167a4"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-06 03:41:09.000000000","tz":-480},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2019-03-04 22:02:16.000000000","tz":-480},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\narchive container, things will mostly still work. You can PUT new\nobjects, DELETE objects, GET container listings, etc. The only part that\n(previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the PUT\nof the archive data fails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the archiving of the\nprevious version will be retried exactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4ba9fb039fa93a388067aa496f1a86ce5e79de04"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4ba9fb039fa93a388067aa496f1a86ce5e79de04"}]},"branch":"refs/heads/master"},"2d615b3693bb4d41884263748ca7500003c94aca":{"kind":"REWORK","_number":14,"created":"2019-08-22 16:23:01.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/14"}}},"commit":{"parents":[{"commit":"2cee9f750fd943c44b7db5ffa28c06c6f790dcfb","subject":"Merge \"py3: Finish porting func tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2cee9f750fd943c44b7db5ffa28c06c6f790dcfb"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-06 03:41:09.000000000","tz":-480},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2019-08-22 16:12:09.000000000","tz":-420},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\narchive container, things will mostly still work. You can PUT new\nobjects, DELETE objects, GET container listings, etc. The only part that\n(previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the PUT\nof the archive data fails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the archiving of the\nprevious version will be retried exactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2d615b3693bb4d41884263748ca7500003c94aca"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2d615b3693bb4d41884263748ca7500003c94aca"}]},"branch":"refs/heads/master"},"afb7f7bea9aa9f3fb79c4d88b7f977b3b7f00942":{"kind":"REWORK","_number":15,"created":"2019-08-22 22:28:33.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/15/265015/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/15/265015/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/15/265015/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/15/265015/15"}}},"commit":{"parents":[{"commit":"2cee9f750fd943c44b7db5ffa28c06c6f790dcfb","subject":"Merge \"py3: Finish porting func tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2cee9f750fd943c44b7db5ffa28c06c6f790dcfb"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-06 03:41:09.000000000","tz":-480},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2019-08-22 22:28:27.000000000","tz":-420},"subject":"Autovivify X-Versions-Location container","message":"Autovivify X-Versions-Location container\n\nIf you try to enable versioning for a container but forget to create the\narchive container, things will mostly still work. You can PUT new\nobjects, DELETE objects, GET container listings, etc. The only part that\n(previously) wouldn\u0027t work was *overwriting* an object, which would\ncause the server to respond with a 412 Precondition Failed when the PUT\nof the archive data fails with a 404.\n\nNow, if the COPY fails with a 404 because the destination container does\nnot exist, versioned_writes will attempt to create the destination\ncontainer, using the same storage policy as the source container and the\ncurrent user\u0027s authorization. If that succeeds, the archiving of the\nprevious version will be retried exactly once.\n\nIf the destination container already exists but is currently\nunavailable, we\u0027ll rely on the container-replicator to ensure the\ndestination container has the correct policy and the\ncontainer-reconciler ensure the old version is eventually stored with\nthe correct storage policy.\n\nChange-Id: I44fdcf98d1f5976198a5a1f9d00c18de7e1d7d72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/afb7f7bea9aa9f3fb79c4d88b7f977b3b7f00942"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/afb7f7bea9aa9f3fb79c4d88b7f977b3b7f00942"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
