Fixed query removal bug in make_pre_authed_request

Change-Id: I1b8238fb2ffe07b1474f7d8f040fdc620b6897d7
Adding missing files in generated tarballs

Fix MANIFEST.in to include tools/, tox.ini and test/sample.conf
in generated tarballs. Fixes bug 960018 and bug 1005801.

Change-Id: Ifa83eab62300e3aec71ced217dc3cdcb2846ea0e
Fixed another make_pre_auth bug (wsgi.input)

Change-Id: I8b3c182ab85d4c5545e0a4259a64a496ebaf2bcb
Merge "Fixed query removal bug in make_pre_authed_request"
Merge "Fixed another make_pre_auth bug (wsgi.input)"
Fixed bug where 204 would sometimes be chunked

Not sure how this got introduced (which really annoys me)
but here's the fix to make sure the content-length /
transfer-encoding headers are set properly. Specifically,
the proxy was sometimes returning transfer-encoding: chunked
with no content-length on 204 No Content responses where it
used to return content-length: 0 and no transfer-encoding
header at all.

Change-Id: I0927d102bc5e4324e38dbbb44be9033a6cd8ee20
Ensure empty results are returned

Make sure that empty but still valid results (like no unmounted drives)
aren't treated as 500 errors.

Change-Id: I9588e2711d7916406f15613d5a26b9f0cf38235a
Merge "Fixed bug where 204 would sometimes be chunked"
Proxy logging content-length fix

Change-Id: Iad2f12b3db44378c1369481c567b3d13b9a4b75f
Fix starvation in object server with fast clients.

When an object server was handling concurrent GET or POST requests
from very fast clients, it would starve other connected clients. The
greenthreads responsible for servicing the fast clients would hog the
processor and only rarely yield to another greenthread.

The reason this happens for GET requests is found in
eventlet.greenio.GreenSocket, in the send() method. When you call
.send(data) on a GreenSocket, it immediately calls .send(data) on its
underlying real socket (socket._socketobject). If the real socket
accepts all the data, then GreenSocket.send() returns without yielding
to another greenthread. Only if the real socket failed to accept all
the data (either .send(data) < len(data) or by raising EWOULDBLOCK)
does the GreenSocket yield control.

Under most workloads, this isn't a problem. The TCP connection to
client X can only consume data so quickly, and therefore the
greenthread serving client X will frequently encounter a full socket
buffer and yield control, so no clients starve. However, when there's
a lot of contention for a single object from a large number of fast
clients (e.g. on a LAN connected w/10Gb Ethernet), then one winds up
in a situation where reading from the disk is slower than writing to
the network, and so full socket buffers become rare, and therefore so
do context switches. The end result is that many clients time out
waiting for data.

The situation for PUT requests is analogous; GreenSocket.recv() seldom
encounters EWOULDBLOCK, so greenthreads seldom yield.

This patch calls eventlet.sleep() to yield control after each chunk,
preventing any one greenthread's IO from blocking the hub for very
long.

This code has the flaw that it will greenthread-switch twice when a
send() or recv() does block, but since there isn't a way to find out
if a switch occurred or not, there's no way to avoid it. Since
greenlet switches are quite fast (faster than system calls, which the
object server does a lot of), this shouldn't have a significant
performance impact.

Change-Id: I8549adfb4a198739b80979236c27b76df607eebf
Fixed bug with container reclaim/report race

Before, a really lagged cluster might not get its final report for a
deleted container database sent to its corresponding account
database. In such a case, the container database file would be
permanently deleted while still leaving the container listed in the
account database, never to be updated since the actual container
database file was gone. The only way to fix such the situation before
was to recreate and redelete the container.

Now, the container database file will not be permanently deleted
until it has sent its final report successfully to its corresponding
account database.

Change-Id: I1f42202455e7ecb0533b84ce7f45fcc7b98aeaa3
only allow methods which implement HTTP verbs to be called remotely

This fixes 500 server crashes caused by requests such as:

curl -X__init__ "http://your-swift-object-server:6000/sda1/p/a/c/o"

Fixes bug 1005903

Change-Id: I6c0ad39a29e07ce5f46b0fdbd11a53a9a1010a04
Added global catchall to account-reaper.

bug 644075

Change-Id: I75c73a42ddd8654a39a2fd82320941199bee4363
Raise ClientException for invalid auth version.

Fixes LP Bug #1008667.

Change-Id: I1e767a804b617eff8a9700c3d98b2360c040933a
Merge "Raise ClientException for invalid auth version."
Merge "Added global catchall to account-reaper."
fix object replication on older rsync versions when using ipv4

Fixes bug 987388

Change-Id: I6eb5c45fe1f5844ad853a4ff9bc8fd23cc9abd5d
Merge "Fixed bug with container reclaim/report race"
Remove swift.common.client from here.

- It has been to its own gerrit project.
- direct_client should follow next.
- Implements blueprint clientbindings.

Change-Id: I3bb50c95eba81302bfec71cb7ce5288b85a41dc0
Fix typos in source documentation

metdata -> metadata
requets -> requests

Change-Id: Idc3c67e6415532e64e1d04c767f64e1d50269f44