set denied resp on requests to '/' in tempauth

Change-Id: If2e319561b3d41e09310228792356f38b7958416
tests for recon middleware.

My first stab at unittests for the recon middleware.
Also, made some minor changes to the middleware to make testing
easier now and down the road.

Change-Id: I23ce853398ff035ffbfc2082e90e22038832b966
Add os_tenant_name to bin/swift and common.client

- Make sure we have a tenant_name when doing get_auth for 2.0
  auth_version.

Change-Id: I02dceb03f224c8fb91972e1f0e2925e5d1a06640
Only rewrite async-pending files if the data changed

Change-Id: If33b37a89e78632522874034df7bac433e7d0a9b
Add an optional delay to account reaping.

Normally, the reaper begins deleting account information for deleted
accounts immediately. With this patch you can set it to delay its
work. You set the delay_reaping value in the [account-reaper] section
of the account-server.conf. The value is in seconds; 2592000 = 30
days, for example.

Unfortunately, there are currently zero tests for the account-reaper.
This also needs fixing, but I thought I'd submit this delay patch
alone for consideration.

Change-Id: Ic077df9cdd95c5d3f8949dd3bbe9893cf24c6623
Display total disk usage info in swift-recon

Now display's cluster disk space used, free, and total.

Change-Id: I9c48dd6badaecd64cda4a2a8a51f41f1c29d328a
Merge "tests for recon middleware."
Merge "set denied resp on requests to '/' in tempauth"
Merge "Display total disk usage info in swift-recon"
Merge "Only rewrite async-pending files if the data changed"
added Ye Jia Xu to AUTHORS file and appropriate .mailmap entry

Change-Id: Ib05f7742c51d00bd5ba901973343fd68ed6cd114
Fixed url in ObjectExpirer.iter_objects().

Change-Id: I859a08debc378c2bbb421a6323c6ea6e0564272f
allow / to pass through ratelimit

Change-Id: I891c5ea48511ca9ad47f2adbcbee700d63a4231d
StaticWeb fixes.

The previous staticweb had the silly problem of global state for
concurrent requests. This fixes that.

Also, the WSGI spec indicates start_response might not be called
right away and is only guaranteed to be called just before the first
"chunk" of the output iterator returns. This fixes StaticWeb's
previously incorrect assumption.

A thorough review of this code would be much appreciated; I've
messed it up enough times to not be completely trusted with it.

Change-Id: Ie751c24e21db7a884a83a731fbf2f4309437302c
Merge "Add an optional delay to account reaping."
object versioning

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.

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>/<object_name>/<timestamp>``, where the timestamp is
generated by converting the ``Last-Modified`` header value of the current
version to a unix timestamp.

A ``GET`` to a versioned object will return the current version of the object
without having to do any request redirects or metadata lookups.

Change-Id: I4fcd723145e02bbb2ec1d3ad356713f5dea43b8b
Added option to disable SQLite db preallocation

Added option to disable SQLite db preallocation. This can be very
useful on pure ssd account/container servers where the extra space is
worth more than the lesser fragmentation.

Change-Id: I8fbb028a9b6143775b25b343e97896497a8b63a9
Update middleware to use common pre_authed funcs

Update StaticWeb, FormPost, and TempURL to use common
make_pre_authed_env and make_pre_authed_req functions.

Change-Id: I32cc3cddff0d2aaeb6314578872707c1a37b4bce
Refactored Swift3 middleware to use WSGIContext.

Change-Id: Ie73a2622576f29150c740cead0ea9c177688972e
Unify different ring-balancing methods.

RingBuilder._initial_balance() gathers partitions differently from
.rebalance(), but the assignment algorithm is the same. However, there
were two nearly-identical implementations; these have been combined.

Also extracted a couple of utility methods to reduce duplication.

Change-Id: Ia5442782a8285dc14aa9a93878a7b0e8d1bb1be5