)]}'
{"id":"openstack%2Fswift~682953","triplet_id":"openstack%2Fswift~master~Id8af40397dea57abe0abca17ae90af2e83fc1bea","project":"openstack/swift","branch":"master","topic":"stand-alone-s3api-versioning","hashtags":[],"change_id":"Id8af40397dea57abe0abca17ae90af2e83fc1bea","subject":"s3api: Implement object versioning API","status":"ABANDONED","created":"2019-09-18 17:27:23.000000000","updated":"2020-02-27 00:09:03.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"cc4a9e247d90338d11d19d5f32c13a2a3b119fad","_number":682953,"virtual_id_number":682953,"owner":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":-1,"date":"2019-09-19 01:35:28.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":23861,"name":"Karen Chan","email":"karen@karen-chan.com","username":"karenc"}],"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":{"rejected":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":-2,"date":"2019-09-18 17:29:39.000000000","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":23861,"name":"Karen Chan","email":"karen@karen-chan.com","username":"karenc"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":-1,"date":"2019-09-18 17:29:39.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"date":"2019-09-18 17:27:23.000000000","_account_id":23861,"name":"Karen Chan","email":"karen@karen-chan.com","username":"karenc"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":23861,"name":"Karen Chan","email":"karen@karen-chan.com","username":"karenc"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-09-18 17:27:23.000000000","updated_by":{"_account_id":23861,"name":"Karen Chan","email":"karen@karen-chan.com","username":"karenc"},"reviewer":{"_account_id":23861,"name":"Karen Chan","email":"karen@karen-chan.com","username":"karenc"},"state":"REVIEWER"},{"updated":"2019-09-19 01:35:28.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"2ffadf506e2929ae8cb042f172ee761378bb5f8c","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2019-09-18 17:27:23.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"344165c7044d16f9f026ce1b02e85f44b08ca3e1","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2019-09-18 17:29:39.000000000","message":"Patch Set 1: Code-Review-2 Workflow-1\n\nthis doesn\u0027t work yet, I didn\u0027t even mean to push it up","accounts_in_message":[],"_revision_number":1},{"id":"0a25012940c5ed8ced50b9973eae1ae46426b980","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-19 01:35:28.000000000","message":"Patch Set 1: 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/b92e7b587cb1449fb29973ef5ace4017 : SUCCESS in 6m 15s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/5eb86d59ea7b4198b99eab8f34a45e8b : SUCCESS in 1h 03m 52s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/a5b0f316e5474c929411fa963630448e : SUCCESS in 53m 54s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/39b5cc4343fd4b178713cd78ac71f012 : SUCCESS in 9m 10s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/5268a416f4bd48be8f3225fc9874be51 : FAILURE in 15m 54s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/530995a36e504239b4735c945222ef9c : FAILURE in 11m 41s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/efbb380ac7d14802a2124da04eab626a : FAILURE in 11m 10s\n- swift-tox-func https://zuul.opendev.org/t/openstack/build/37d5f5a43d384644b45c166fc027dde2 : SUCCESS in 9m 01s\n- swift-tox-func-encryption https://zuul.opendev.org/t/openstack/build/e6f04a3adc034c18a9e1a30ec85e589d : SUCCESS in 10m 11s\n- swift-tox-func-domain-remap-staticweb https://zuul.opendev.org/t/openstack/build/8274d862fe1e461a86b4c8873edf4e89 : SUCCESS in 9m 45s\n- swift-tox-func-ec https://zuul.opendev.org/t/openstack/build/d2bd007267ed475c9496783db7b44161 : SUCCESS in 9m 59s\n- swift-tox-func-s3api https://zuul.opendev.org/t/openstack/build/1614403b116742bda1787f0db2d5f95e : FAILURE in 41m 36s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/5326a4ceb62b44668085203d4f430b27 : SUCCESS in 10m 01s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/aa7e1a5ba5d747a3aa286a743c1d4c43 : SUCCESS in 12m 15s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/4c7091a910424c509828ca8cef7db769 : SUCCESS in 11m 03s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/5fc2dceafe5e4e9da2672d5f6be49f6b : SUCCESS in 12m 20s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/1e03231c8dc344dba91c5e205bce8a34 : FAILURE in 13m 00s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/c3c436abf00a4038ab64bf99d6c74a7c : FAILURE in 24m 19s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/b81657e486d544279adcf805cb2f179c : SUCCESS in 33m 21s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/2aad02600d5d4c5f94277ef88e7d33a0 : SUCCESS in 32m 15s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/78292cf38cd44eaba2cefeb757fa7e78 : SUCCESS in 30m 25s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/f83899f2dfe849fc974c722883f55394 : SUCCESS in 44m 26s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/03b002950f644392948635240f48fe95 : FAILURE in 12m 35s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/39a58555f88b42abb7353d77428bc5a8 : SUCCESS in 5m 57s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/335696b604ec42f7804292d0748156af : SUCCESS in 18m 04s","accounts_in_message":[],"_revision_number":1},{"id":"7994157f141783ce4de66d10df8e17355979e1a1","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-02-27 00:09:03.000000000","message":"Abandoned\n\nDone in https://review.opendev.org/#/c/682382/ and https://review.opendev.org/#/c/673682/ instead.","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"122f66087975a26f93c9ef8acc52563e41a74971","revisions":{"122f66087975a26f93c9ef8acc52563e41a74971":{"kind":"REWORK","_number":1,"created":"2019-09-18 17:27:23.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/53/682953/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/53/682953/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/53/682953/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/53/682953/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/53/682953/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/53/682953/1"}}},"commit":{"parents":[{"commit":"5cb53838a63791109697c91f742079b6dfb25263","subject":"Merge \"py3: (mostly) port probe tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5cb53838a63791109697c91f742079b6dfb25263"}]}],"author":{"name":"karen chan","email":"karen@karen-chan.com","date":"2017-01-27 15:43:37.000000000","tz":-480},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2019-09-18 17:27:14.000000000","tz":-300},"subject":"s3api: Implement object versioning API","message":"s3api: Implement object versioning API\n\nSet up versioning for a container and return the status of versioning.\n\nWhen deleting buckets, also try to delete the +versioning bucket.\n\nStore version id when copying object to archive\n\nWhen the current object is deleted and the versioning mode is set to\n\"stack\", an older object from the archive container is restored as the\ncurrent object.  The \"version id\" is only part of the object name when\nit is in the archive container, which means that when it becomes the\ncurrent object, the \"version id\" is lost.  swift3 needs to know the\nversion id even after it is restored, but right now there is no way to\nget the version id.\n\nThis change stores the version id as metadata\n\"X-Object-Sysmeta-Version-Id\" when an object is copied to the archive\ncontainer and given a version id.\n\ns3api: Modify obj GETorHEAD to support versions\n\nIf a versionId is given, if it is \"null\", it must be the current object.\nIf the versionId is not null, it might be in the versioning container,\nor it might be the current object that had that version id that was\nrestored after an object has been deleted.\n\ns3api: Listing of versioned objects\n\nWhen processing GET requests for buckets with \"?versions\", in addition\nto listing what is currently in the bucket, also return the objects that\nare in the versioning container.\n\nAdd X-Backend-Versioning-Mode-Override\n\nswift3 needs both the stack mode delete and history mode delete.  When\nan object without specifying a \"versionId\" is deleted, swift3 uses the\nhistory mode delete, which means the object is marked as deleted and\nreturns 404.  When an object with a specific \"versionId\" is deleted and\nthat object is the current object, swift3 uses the stack mode delete,\nwhich means the most recent non-deleted object in the versioning\ncontainer becomes the current object.  Right now, swift only supports\nsetting the mode once and using it to determine the behavior of the\ndeletion.\n\nAdding X-Backend-Versioning-Mode-Override allows swift3 to override the\nstored versioning mode for one request.  This means that even if the\nversioning mode is set to \"history\", if the request has the header\n\"X-Backend-Versioning-Mode-Override: stack\", swift will use \"stack\" as\nthe versioning mode.\n\ns3api: Delete versioned objects\n\nWhen deleting an object with a specified version, and it is in the\nversioning container, it is deleted permanently.  If it is the current\nversion, then the object is deleted and the next available object in the\nversioning container becomes the current object.\n\nChange-Id: I8296681b61996e073b3ba12ad46f99042dc15c37\nCo-Authored-By: Tim Burke \u003ctim.burke@gmail.com\u003e\n\nwip: moar s3api versions tests\n\nChange-Id: Id8af40397dea57abe0abca17ae90af2e83fc1bea\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/122f66087975a26f93c9ef8acc52563e41a74971"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/122f66087975a26f93c9ef8acc52563e41a74971"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
