Refactor partition gathering.

RingBuilder._reassign_parts() is really moving one (partition,
replica) pair at a time. However, the way that _gather_reassign_parts
passes that data in was strange; it would update each replica's entry
in _replica2part2dev to 0xffff, then return a list of affected
partitions. Now it just returns the pairs to move.

This is helpful in the presence of bugs that affect partition
assignment (e.g. #943493), there's no chance of stray 0xffff values
hanging around and corrupting the partition map.

Also, update my email address.

Change-Id: Ifb3aeb4fac750f66e2ddbad88eb5846e72bac20c
Make ring class interface slightly more abstracted from implementation.

Change-Id: I0f55d61c7b8de30460f17a69e5d9946494dbda6e
Alternate meta header removal method.

Prior to this patch, you removed header metadata (such as
x-account-meta-name or x-container-meta-name) by sending the header
with no value. However, many tools such as curl will not send headers
with empty values.

This patch adds an alternate method for header metadata removal: Send
an x-remove-account-meta-name (x-remove-container-meta-name) header
with any value and the proxy will translate it to the original header
name with no value, indicating removal.

For safety, if you specify both x-remove-account-meta-name and
x-account-meta-name headers in the same request, the -remove header
will be ignored.

Change-Id: Ic220bec05a0e266db85fc8fa50011146ee886d9c
Update swift.common.client with bin/swift changes.

- Add auth version 2 to swift.common.client.
- Remove ununsed imports.
- Fix bug where auth_version should be a string.
- Add test for auth version 2.
- Allow to override the returns of http_connection for tests.
- Sync the passing of headers in bin/swift as well from client.
- Fixes bug 885011
- Previously it was review 3680 but abandoned.
- Address: Maru newby review.
- TODO: properly test auth_v1.

Change-Id: I579d8154828e892596fae9ab75f69d353f15e12c
Merge "Refactor partition gathering."
Merge "Alternate meta header removal method."
Added optional max_containers_per_account restr...

Added optional max_containers_per_account restriction. If set to a
positive value and if a client tries to perform a container PUT when
at or above the max_containers_per_acount cap, a 403 Forbidden will
be returned with an explanatory message.

This only restricts the proxy server, not any of the background
processes that might need to create containers (replication, for
instance). Also, the container count is cached for the proxy's
recheck_account_existence number of seconds. For these reasons, a
given account could exceed this cap before the 403 Forbidden
responses kick in and therefore this feature should be considered a
"soft" limit.

You may also add accounts to the proxy's max_containers_whitelist
setting to have accounts that ignore this cap.

Change-Id: I74e8fb152de5e78d070ed30006ad4e53f82c8376
Merge "Update swift.common.client with bin/swift changes."
PEP8 Fixes

Change-Id: Ibf5316e96b88088ecbc56fe1f6fa7541bc967d5f
Add venv commands to tox.ini.

The recent tox addition missed the general purpose that we use
for things like building docs and other arbitrary commands.

Change-Id: Ib195a78d084a170c5051906f619743def4dbfbea
Add sphinx to test-requires.

Need sphinx in test-requires so that we can build docs in
the venv (wanted because module introspection needs build
depends installed)

Change-Id: If3caf817381aea8e9cd8fb50e7e35c647f088b60
set denied resp on requests to '/' in tempauth

Change-Id: If2e319561b3d41e09310228792356f38b7958416
updated authors file and added .mailmap

Change-Id: Idf0d1bbc5c9df025825190035871294692e7e6a4
Merge "Added optional max_containers_per_account restr..."
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
updated copyright date for all files

Change-Id: Ifd909d3561c2647770a7e0caa3cd91acd1b4f298
changelog for 1.4.8

Change-Id: I1fb485fadbc23cfd4ff76667f0b52bf0fc3f9fe6
Merge "updated authors file and added .mailmap"
Merge "changelog for 1.4.8"
version bump to 1.4.9

Change-Id: I8a2f7d09f1db5b24e69b108b7c90869d90aacb48