Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1337341

Summary: [RFE][swift] History mode for versioning
Product: Red Hat OpenStack Reporter: Sean Cohen <scohen>
Component: openstack-swiftAssignee: Thiago da Silva <thiago>
Status: CLOSED ERRATA QA Contact: Mike Abrams <mabrams>
Severity: unspecified Docs Contact:
Priority: medium    
Version: unspecifiedCC: cschwede, derekh, egafford, jjoyce, jschluet, mabrams, pgrist, sclewis, srevivo, thiago, zaitcev
Target Milestone: Upstream M3Keywords: FutureFeature, Triaged
Target Release: 10.0 (Newton)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-swift-2.9.1-0.20160907205433.2cd0e06.el7ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-12-14 15:34:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1386035    

Description Sean Cohen 2016-05-18 22:04:04 UTC
Introduces the concept of a "versioning mode" for versioned_writes.

When deleting, check whether any previous versions exist in the versions container. If none is found, the object is deleted. If the most-recent version in the versions container is not a delete marker, it is copied into the versioned container (overwriting the current version if one exists) and then deleted from the versions container. This preserves the previous behavior. If the most-recent version in the versions container is a delete marker and a current version exists in the versioned container, the current version is deleted. If the most-recent version in the versions container is a delete marker and no current version exists in the versioned container, we copy the next-most-recent version from the versions container into the versioned container (assuming it exists and is not a delete marker) and delete both the most-recent version (i.e., the delete marker) and the just-copied next-most-recent version from the versions container. With this mode, DELETEs to versioned containers "undo" operations on containers. Previously this was limited to undoing PUTs, but now it will also undo DELETEs performed while in "history" mode.

Comment 3 Elise Gafford 2016-09-08 16:23:01 UTC
Thiago,

Please mark the fixed-in-build in which this is built and set to MODIFIED to ship to QE.

Thanks,
Elise

Comment 4 Thiago da Silva 2016-09-08 19:06:49 UTC
This feature has been merged in upstream master but is not yet available in a downstream build.
The commit to upstream master is: https://github.com/openstack/swift/commit/9d08d17b4fbbc9efce007b2379016af23793d98c

Leaving with the needinfo flag for now until the build is produced.

Comment 8 errata-xmlrpc 2016-12-14 15:34:14 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHEA-2016-2948.html