[release-announce] [swift] swift 2.12.0 (ocata)

no-reply at openstack.org no-reply at openstack.org
Thu Dec 15 13:03:39 UTC 2016


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(-)






More information about the Release-announce mailing list