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
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
Added config options for rate limiting of large object downloads.

bug 786197

Change-Id: Idd73986ca4550b20dff340df4acd12f3bfc01075
added printing of 404s to dispersion report; fixed small, unrelated bug

also fixed bug where in error_log where identifier wasn't being set to anything meaningful, set it to the right thing

bug 612722

Change-Id: I53f237ea0db2a5b2b8979a7b41189faf1275e861
Make object server's caching more configurable.

The object server had a constant KEEP_CACHE_SIZE = 5*1024*1024;
unauthenticated GET requests for files smaller than KEEP_CACHE_SIZE
would not evict the file from the kernel's buffer cache after it was
read from disk.

Now that hardcoded constant is a configuration parameter
("keep_cache_size"), and now there is also another parameter called
"keep_cache_private". If set, then both authenticated and
unauthenticated GET requests for small files will not evict the data
from the buffer cache. The default values are 5 MiB and False,
respectively, so the default behavior is the same.

Bonus: the "mb_per_sync" parameter is now documented in the deployment
guide.

Change-Id: I9a11dbe861f4c23535c6aa82a9111a6fe2db2a59
Align tox.ini and fix coverage jobs in jenkins.

The jenkins coverage jobs expect there to be a .coverage file, so deleting
it is a bad idea. Also, coverage erase will do that for us.
While we're in there, update tox.ini and setup.cfg to the latest.

Change-Id: Icd0a8fc66a5146e0d94f62a9f65a4536981d2916
Merge "Remove swift.common.client from here."
Merge "Align tox.ini and fix coverage jobs in jenkins."
Merge "added printing of 404s to dispersion report; fixed small, unrelated bug"
Merge "Make object server's caching more configurable."
Update swift-get-nodes to return fewer more_nodes

Changed swift-get-nodes to just return up to replica_count of
more_nodes instead of all of them. When you have thousands of drives,
returning all possible handoff nodes is pretty crazy. :)

Change-Id: I864e7243726ca3ef2ac08c4ab660a05789f37878
swift-bench should be able to use auth version 2.0

Fixes Bug #1011727

Change-Id: I6681bd85a5ddb82a1059913ae90696e5994aa906
Make proxy-logging more like eventlet.posthook

The old use of Eventlet's posthook process meant that responses that
forgot to include content-length or transfer-encoding headers would
get one tacked on, if Eventlet could guess what was probably meant. I
added a bit of that logic into proxy-logging now as we saw some
errors resulting from this.

Fixes Bug #1012714

Change-Id: I671453eaf3704eab814ff12c4625ba7d749cc7ed
check disk failure before syncing for each partition

If disk failure happens while object replication is ongoing,
object-replicator could replicate objects from other nodes to the root
file system.  It is because object-replicator does no mount check
(error check) at all after collect_jobs() is called, and it executes
rsync based on the old partition information in update().

This change prevents many objects from being written to the root file
system wrongly and fixes bug 1014545.

Change-Id: Icf740a2683e360df89eccb71b269977f294340b9
Made dispersion report work with any replica count other than 3.

This changes the JSON output keys missing_one and missing_two to
missing_1 and missing_2 (if there are at least 2 replicas), drops
the missing_all key, and can add more missing_x keys depending on
the replica count. We will definitely need to post a prominent
notice of this change with the next release.

bug 862816

Change-Id: Ib747d944476638c33ee1d876b8f9db28953826e2
Patch for Swift Solaris (Illumos) compability.

* Add new configuration option log_address.

Change-Id: I636bd4116687629c997b70a0d804b7ed4bc46032
Merge "check disk failure before syncing for each partition"
Merge "Added config options for rate limiting of large object downloads."