[swift] swift 2.12.0 (ocata)
We are high-spirited to announce the release of: swift 2.12.0: OpenStack Object Storage This release is part of the ocata release series. Download the package from: https://tarballs.openstack.org/swift/ For more details, please see below. 2.12.0 ^^^^^^ New Features ************ * Ring files now include byteorder information about the endian of the machine used to generate the file, and the values are appropriately byteswapped if deserialized on a machine with a different endianness. Newly created ring files will be byteorder agnostic, but previously generated ring files will still fail on different endian architectures. Regenerating older ring files will cause them to become byteorder agnostic. The regeneration of the ring files will not cause any new data movement. Newer ring files will still be usable by older versions of Swift (on machines with the same endianness--this maintains existing behavior). * All 416 responses will now include a Content-Range header with an unsatisfied-range value. This allows the caller to know the valid range request value for an object. * TempURLs now support a validation against a common prefix. A prefix- based signature grants access to all objects which share the same prefix. This avoids the creation of a large amount of signatures, when a whole container or pseudofolder is shared. * In SLO manifests, the *etag* and *size_bytes* keys are now fully optional and not required. Previously, the keys needed to exist but the values were optional. The only required key is *path*. * Respect server type for --md5 check in swift-recon. Bug Fixes ********* * Correctly handle deleted files with if-none-match requests. * Correctly send 412 Precondition Failed if a user sends an invalid copy destination. Previously Swift would send a 500 Internal Server Error. * Fixed a rare infinite loop in *swift-ring-builder* while placing parts. * Ensure update of the container by object-updater, removing a rare possibility that objects would never be added to a container listing. * Fixed non-deterministic suffix updates in hashes.pkl where a partition may be updated much less often than expected. * Fixed regression in consolidate_hashes that occurred when a new file was stored to new suffix to a non-empty partition. This bug was introduced in 2.7.0 and could cause an increase in rsync replication stats during and after upgrade, due to inconsistent hashing of partition suffixes. * Account and container databases will now be quarantined if the database schema has been corrupted. * Remove empty db hash and suffix directories if a db gets quarantined. Other Notes *********** * Removed "in-process-" from func env tox name to work with upstream CI. * Various other minor bug fixes and improvements. Changes in swift 2.11.0..2.12.0 ------------------------------- 462f91b Swift 2.12.0 authors/changelog updates 7fb102d SLO: Make etag and size_bytes fully optional 84aa655 Py3: Make test_manager py3 compatable 052ca66 Add python3-dev to bindep and use py27for some envs 8333c4b tempurls with a prefix-based scope 3da144a Replace 'assertTrue(a not in b)' with 'assertNotIn(a, b)' 07d3dd7 Added conditional headers to HEAD request documentation 726eac9 line wrap overview_expiring_objects.rst d4da920 Use assertGreater(len(x), 0) instead of assertTrue(len(x) > 0) 3bf011b adding unit tests for if-none-match fix b36d8d9 add object_post_as_copy to saio. d37d077 Add Status Code tests for Container GET 2445abb Rename ObjectUpdater variables in unit test to appropriate names 8dcdaff Fix non-deterministic suffix updates in hashes.pkl 765cc94 Fixups for ghost listing fix 50490fc Remove redundant codes from unit test of object updater 463e22a Add missing expirer recon metric to admin_guide 3bde14b Quarantine malformed database schema SQLite errors 053b625 Remove ring md5 integration check from recon unittests e8a80e8 Let users know entity size in 416 responses 1ec6e2b add byteorder information and logic to ring files dd87fe2 Show team and repo badges on README 8ac432f Fixed regression in consolidate_hashes 846289e Drop "--allow-insecure netifaces" from tox pip install fc24a23 Add pip and virtualenv upgrade to development guidelines ba66871 Add note that tempauth is not intended for production aa8bf82 breaking up functional/tests.py a bit further 2bdf61f Handle deleted files with if-none-match 2d25fe6 Reduce backend requests for SLO If-Match / HEAD requests ae7dddd Added comment for "user" option in drive-audit config c3e1d84 breaking down tests.py into smaller pieces 5d7a3a4 Removed "in-process-" from func env tox name 9ea3402 Don't overwrite built-in 'id' 2e7a734 Avoid infinite loop while placing parts b94d0db Correctly send 412 Precondition Failed in copy middleware 321bb91 remove empty db hash and suffix directories c0fdc53 Document access control lists (ACLs) f584bb6 Multi Swift - Multiple Swift clusters on same h/w ede42c7 Ensure update of the container by object-updater e3e457d Respect server type for --md5 check in swift-recon 91ce1bb use the new upper constraints infra features b5a16be Add missing recon metrics to admin_guide 07a157f Call out transient sysmeta in swift-object-info Diffstat (except docs and test files) ------------------------------------- .mailmap | 3 + AUTHORS | 8 +- CHANGELOG | 60 + README.rst | 9 + api-ref/source/parameters.yaml | 52 +- api-ref/source/storage-account-services.inc | 10 +- api-ref/source/storage-object-services.inc | 8 +- bindep.txt | 2 + etc/drive-audit.conf-sample | 2 + .../notes/2_12_0_release-06af226abc7b91ef.yaml | 57 + swift/cli/info.py | 7 +- swift/cli/recon.py | 16 +- swift/common/db.py | 2 + swift/common/db_replicator.py | 13 + swift/common/middleware/copy.py | 26 +- swift/common/middleware/dlo.py | 7 +- swift/common/middleware/recon.py | 17 +- swift/common/middleware/slo.py | 180 +- swift/common/middleware/tempurl.py | 99 +- swift/common/ring/builder.py | 6 +- swift/common/ring/ring.py | 13 +- swift/common/swob.py | 2 + swift/obj/diskfile.py | 4 +- swift/obj/replicator.py | 10 +- swift/obj/server.py | 2 +- swift/obj/updater.py | 12 +- swift/proxy/controllers/obj.py | 3 + test/functional/test_dlo.py | 397 +++ test/functional/test_object.py | 13 + test/functional/test_slo.py | 966 +++++++ test/functional/test_tempurl.py | 737 ++++++ test/functional/test_versioned_writes.py | 796 ++++++ test/probe/test_object_async_update.py | 64 + test/unit/account/test_server.py | 20 +- test/unit/cli/test_info.py | 50 +- test/unit/cli/test_recon.py | 61 +- test/unit/common/malformed_schema_example.db | Bin 0 -> 49152 bytes test/unit/common/middleware/helpers.py | 12 +- test/unit/common/middleware/test_account_quotas.py | 8 +- test/unit/common/middleware/test_copy.py | 51 +- test/unit/common/middleware/test_dlo.py | 6 + test/unit/common/middleware/test_formpost.py | 2 +- test/unit/common/middleware/test_gatekeeper.py | 4 +- test/unit/common/middleware/test_proxy_logging.py | 4 +- test/unit/common/middleware/test_quotas.py | 7 +- test/unit/common/middleware/test_recon.py | 144 +- test/unit/common/middleware/test_slo.py | 172 +- test/unit/common/middleware/test_staticweb.py | 12 +- test/unit/common/middleware/test_tempauth.py | 4 +- test/unit/common/middleware/test_tempurl.py | 212 +- test/unit/common/middleware/test_xprofile.py | 2 +- test/unit/common/ring/test_builder.py | 36 +- test/unit/common/ring/test_ring.py | 27 + test/unit/common/test_db.py | 65 +- test/unit/common/test_db_replicator.py | 145 ++ test/unit/common/test_direct_client.py | 4 +- test/unit/common/test_manager.py | 28 +- test/unit/common/test_storage_policy.py | 2 +- test/unit/common/test_swob.py | 18 +- test/unit/common/test_utils.py | 56 +- test/unit/container/test_server.py | 16 +- test/unit/container/test_updater.py | 2 +- test/unit/obj/test_auditor.py | 4 +- test/unit/obj/test_diskfile.py | 156 +- test/unit/obj/test_expirer.py | 4 +- test/unit/obj/test_replicator.py | 60 +- test/unit/obj/test_server.py | 69 +- test/unit/obj/test_updater.py | 78 +- test/unit/proxy/controllers/test_container.py | 34 + test/unit/proxy/test_server.py | 18 +- tox.ini | 20 +- 82 files changed, 5170 insertions(+), 3343 deletions(-)
participants (1)
-
no-reply@openstack.org