Better TempAuth storage URL guessing

I know it's just TempAuth, but bug #959953 just caught my eye as
something interesting to solve.

This does a best guess on the storage URL to return for a given
request. It allows $HOST to be used in the storage URL configuration,
where $HOST will resolve to scheme://host:port. It bases the scheme
on how the server is running or on storage_url_scheme if set. The
host:port comes from the request's Host header if it exists, and
falls back to the WSGI SERVER_NAME:SERVER_PORT otherwise.

Fixes: bug #959953
DocImpact

Change-Id: Ia494bcb99a04490911ee8d2cb8b12a94e77820c5
fix bug1039861, remove license header in doc/source/conf.py.

Change-Id: Iab43ac342faf3722ccab1ed034f08752dbbfaae1
Fix 500 on GET of many-segment manifest.

The proxy_logging middleware was asserting that the response contained
either a Content-Length header or a Transfer-Encoding header. If not,
it would either add one (if app_iter was a list) or blow up
(otherwise). This blowing up is observable on a GET request to a
manifest object that references more than
swift.common.constraints.CONTAINER_LISTING_LIMIT segments.

If a response makes it up to eventlet.wsgi without a Content-Length
header, then a "Transfer-Encoding: chunked" header is automatically
stuffed into the response by eventlet. Therefore, it's not an error
for a response to not have a Content-Length header, and proxy_logging
should just let it happen.

Fixes bug 1078113.

Change-Id: I3751a8ae14dc68bab546f2746b61267a5115e252
patch utils.HASH_PATH_SUFFIX in proxy unittests

Most of the test files set the HASH_PATH_SUFFIX so you can run the test
file stand alone.  This change made it easier for me to run specific
proxy tests separately.

Change-Id: I87d70367dac7f240a2b6779649f8a02cf324ae0f
Remove outdated Debian packaging guide.

There are 3 sections in there, all useless.

Section 1 tells you how to install Swift packages from the swift-core
PPA. However, the latest version there is ancient.

Section 2 tells you how to build your own Swift packages. However, it
talks about getting the source code from the "debian" branch in bzr,
which is obviously really old.

Section 3 tells you how to take the packages from section 2 and
install them. This isn't too out-of-date, but since section 2 doesn't
work any more, section 3 is useless.

Since stale docs are worse than no docs, there's no current
information in this document, and bringing it up-to-date requires a
whole pile of work, I've chosen to delete it entirely.

Also pulled out a couple references to the PPA elsewhere.

Fixes bug 917385.
Fixes bug 1026145.

Change-Id: I510bd8619531fe110419e5488bd20d3602868d66
fix bug in deleting account memcache.

Every request of container and object will invoke account_info() or
container_info() to query the meta of account and container. The meta
will be cached in memcache with the key 'account/{$account}' or
'container/{$container}', So, if any request to update account and
container, we should delete the cache. But in the cache deletion of
account, it use the wrong key 'account/v1/{$account}'. This could lead
to inconsistency of account meta.

Change-Id: Ied116a58a2d5866ac76d75ae50f21277d66e5755
Merge "Better TempAuth storage URL guessing"
Merge "Fix 500 on GET of many-segment manifest."
change catch_errors to use WSGIContext

The current catch_errors (ie without this patch) relinquishes control
before the underlying middleware/app has been evaluated. This results
in not catching errors in the stack when they occur in either the
start_response or in generating the first chunk sent to the client of
the underlying stack.

Change-Id: Iecd21e4fc7e30fa20239d011f69216354b50baf1
Refactor db_replicator's roundrobin_datadirs

roundrobin_datadirs was returning any .db file at any depth in the
accounts/containers structure. Since xfs corruption can cause such
files to appear in odd places at times (only happened on one drive of
ours so far, but still...), I've refactored this function to only
return .db files at the proper depth.

Change-Id: Id06ef6584941f8a572e286f69dfa3d96fe451355
Merge "Remove outdated Debian packaging guide."
Merge "Refactor db_replicator's roundrobin_datadirs"
Updating doc reflecting the move of auth_token.

The auth_token middleware has moved, updating the doc.

Change-Id: I8133b876a53d61bf94169cf08c8b1fa6bbf9681a
Refactor http_connect() to use http_connect_raw()

Change-Id: I889c5eecf860cc947763c5d79148419f9741a2c2
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Merge "Updating doc reflecting the move of auth_token."
Merge "Refactor http_connect() to use http_connect_raw()"
Merge "change catch_errors to use WSGIContext"