Bug 849753
Summary: | UFO swift object versioning | ||
---|---|---|---|
Product: | [Red Hat Storage] Red Hat Gluster Storage | Reporter: | Kaleb KEITHLEY <kkeithle> |
Component: | gluster-swift | Assignee: | crisbud <crisbud> |
Status: | CLOSED ERRATA | QA Contact: | pushpesh sharma <psharma> |
Severity: | low | Docs Contact: | |
Priority: | low | ||
Version: | 2.0 | CC: | bbandari, gluster-bugs, lpabon, ppai, vagarwal, vbellur |
Target Milestone: | --- | Keywords: | FutureFeature |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Enhancement | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2014-05-26 06:49:44 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: |
Description
Kaleb KEITHLEY
2012-08-20 19:05:51 UTC
http://docs.openstack.org/developer/swift/overview_object_versioning.html Object versioning in swift is implemented by setting a flag on the container to tell swift to version all objects in the container. The flag is the X-Versions-Location header on the container, and its value is the container where the versions are stored. It is recommended to use a different X-Versions-Location container for each container that is being versioned. When data is PUT into a versioned container (a container with the versioning flag turned on), the existing data in the file is redirected to a new object and the data in the PUT request is saved as the data for the versioned object. The new object name (for the previous version) is <versions_container>/<length><object_name>/<timestamp>, where length is the 3-character zero-padded hexidecimal length of the <object_name> and <timestamp> is the timestamp of when the previous version was created. A GET to a versioned object will return the current version of the object without having to do any request redirects or metadata lookups. A POST to a versioned object will update the object metadata as normal, but will not create a new version of the object. In other words, new versions are only created when the content of the object changes. A DELETE to a versioned object will only remove the current version of the object. If you have 5 total versions of the object, you must delete the object 5 times to completely remove the object. Note: A large object manifest file cannot be versioned, but a large object manifest may point to versioned segments. Need to confirm status of this bug with current RHS2.1 code. RHS 2.0 UFO Bugs are being set to low priority. This works. Please close. This works out of the box. I followed the guide here: http://docs.openstack.org/developer/swift/overview_object_versioning.html Hence, there are no code changes needed. However, we may have to document this upstream and downstream that object versioning is supported and how one can enable it and use it. Have tested this in master branch only. Needs a documentation bug for later releases. Will file one after QE verifies it. This works with RHS2.1 onwards.Tests are also there in functional test suite. Marking it as verified. This bug has been fixed in Corbett. |