fix empty body getter bug 1067923

Change-Id: Ifd609f305ee878c39ea4e6840ed8fa9369595cfa
Fix version requirement for mock library.

One of the tests uses mock.call, which is only available in version
0.8.0 and up.

Fixes bug 1066274.

Change-Id: I77e4de0908f93326992fc4d4af4a7e54e60b5585
do not dump_recon_cache on limited obj replic

Change-Id: I38e38607ba9c5cf331c216e4c81582d23c58eeca
Make StatsD tests less flaky.

There have been a bunch of Jenkins failures lately where the StatsD
tests fail because they can't bind to their desired port. There's
nothing special about the particular port they're using, so now we let
the kernel pick an available one for us.

This also lets us get rid of a sleep() in the test that looked like an
attempt to alleviate EADDRINUSE errors, so now in the happy case, the
tests are a few fractions of a second faster.

Change-Id: Idee11349254107a59643539b1566f3588eee7ef4
Relax mount point name checking.

In general, Linux does not care about what a mount point is named as
long as it is a vaild directory name (no / or null characters).
However, that is too relaxed for swift, which will pass that mount
point name around as part of url path construction all over the
place.  To make sure that the mount point name was sane from that POV,
Swift was using isalnum to verify that the mount point name was sane,
which is overly restrictive.

This patch replaces that test with a test that verifies that the name
has no characters that need to be URL encoded.

The specific use case this enables is allowing mount points to be
named according to the UUID of the filesystem that is being mounted,
which will make Swift more robust in the face of device name instability.

Change-Id: I4d49b21c1783e97c16d3f394c2171f1f80eea058
removed duplicate in AUTHORS file

Change-Id: Ia430637f24d883ee166cb6529dde03049cc06120
Remove replication prioritization

Turns out this prioritization causes stampedes right after capacity
additions (especially on smaller clusters), which means the things it
prioritizes don't get done for several passes anyway, which means the
prioritization isn't solving the problem it was designed to do, and
it causes non-productive load spikes instead. :/

Getting rid of the prioritization doesn't make things go any slower
overall, could make things actually go faster since there are less
collisions, and evens out the load.

Change-Id: I4938bcd12d9a21fad635cfe772897e4c151f8a95
Merge "fix empty body getter bug 1067923"
Merge "Relax mount point name checking."
Merge "Remove replication prioritization"
Merge "do not dump_recon_cache on limited obj replic"
Merge "Make StatsD tests less flaky."
path_qs for swob.Request

Add path_qs property to swob.Request. First of all this property
has webob.Request, also this property can be used in swift3 middleware
for generate canonical string, if webob will be replaced in swift3 with
swob (https://github.com/vitoordaz/swift3/commit/2b36fbd477f6573108100ec85a1594877adeaacb).

Change-Id: Idf58096baaf7830dd0d624ea6c72eda1eb91ff0d
Fixes Ilegal chunk encoding by the test_client

test_client sends a wrong size indication when testing
chunked data.
For example instead of sending:
   5\r\nabcde\r\n (which is inline with the standard)
The client would send:
   0x5\r\nabcde\r\n

On branch bp/wsgi-application-interface-2
  modified:   test/functional/swift_test_client.py

Change-Id: I7597dcd24adade009aead66f67674f361f3fe4fa
Fixes: Bug #1070036
Implements: Blueprint wsgi-application-interface
Add OpenStack trove classifier for PyPI

Add trove classifier to have swift listed among the
other OpenStack-related projets on PyPI to reserve
the name, even though we won't release packages there.

Change-Id: I2c6cd2e37ea55d2bc2ddbba813ee2a190b1c90a9
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Merge "Fix version requirement for mock library."
Two MIME types sent during test

The directory tests TestContainerPathsEnv creates directorys during SetUp while indicating duplicate application internet media type (MIME) via the Content-Type header.

E.g the output on the line using 'nosetests -v test.functional.tests:TestContainerPaths.testContainerListing' includes:

Host: 127.0.0.1:8080
Accept-Encoding: identity
Content-Type: application/octet-stream
Content-Length: 0
content-type: application/directory
X-Auth-Token: AUTH_tkd40f5550289d4d60af75bb1b6c6067be

On branch bp/wsgi-application-interface-3
   modified:   test/functional/tests.py
Fixes: Bug #1068499
Implements Blueprint  	wsgi-application-interface

Change-Id: I49c5d1f73fff3c06d4be18b20c7209eff4e1326c
Track unlinks of async_pendings.

It's not sufficient to just look at swift.object-updater.successes to
see the async_pending unlink rate. There are two different spots where
unlinks happen: one when an async_pending has been successfully
processed, and another when the updater notices multiple
async_pendings for the same object. Both events are now tracked under
the same name: swift.object-updater.unlinks.

FakeLogger has now sprouted a couple of convenience methods for
testing logged metrics.

Fixed pep8 1.3.3's complaints in the files this diff touches.

Also: bonus speling and, grammar fixes in the admin guide.

Change-Id: I8c1493784adbe24ba2b5512615e87669b3d94505
Merge "Add OpenStack trove classifier for PyPI"
Remove utf-8 in metadata and http header names

RFC2616 implicitly allows transferring utf-8 in
headers (vals) but not in header names (keys)

Swift functional tests includes testing for utf-8
header names (keys) which is non aligned with the standard.
This seem to be the case when testing file metadata.
File metadata keys are than transferred as part of
the http header keys (header names) as
      X-Object-Meta-<metadata_key>=metadata_name.

As a result metadata_keys in swift must be composed from
a subset of ASCII characters - alpha numerics,
some punctuation, not a lot else* and cannot be utf-8.

On branch bp/wsgi-application-interface-4
modified:   test/functional/tests.py

Change-Id: I1932e9d4ead83089e8a31a06d28a54f5625efb9c
Fixes: bug 1068026
Implements: blueprint wsgi-application-interface