Improved container-sync resiliency

container-sync now skips faulty objects in the first and second rounds.
All replicas try in the second round.
No server will give up until the faulty object suceeds

Fixes: bug #1068423

Change-Id: I0defc174b2ce3796a6acf410a2d2eae138e8193d
Give friendly notification in swift-get-nodes

Hard coding of '/srv/node' maybe drive to some errors. But it seems
unfixable (please see talks in bug report). To avoid erros as we can,
showing a friendly notification to let user set their own device
location works better than hard coding directly.

Change-Id: I45d749dd52af8d3b051dfe98dbb9d71a5a374f97
Fixes: bug #907908
Add tests and doc entry for request.environ[reseller_request]

The recent account_quotas (https://review.openstack.org/23434)
patch added a new setting request.environ[reseller_request].
This patch adds tests for tempauth and keystoneauth as well as
an updated overview_auth.rst.

Change-Id: Icdb7ec9948ae7424b0721fc51a143782b2fdc5a6
Permit functional tests against Swift with Keystone

While poking at such problems with authentication other than swauth
it was useful to allow stock functional tests running back-to-back
at two clusters, with tempauth and Keystone.

When running the legacy tests, this version packs account into user
the way it was down previously. This way we do not need to repack
them before every call to get_auth. The downside is additional work
to be done when setting ACLs.

Change-Id: Ieb1d9227cb88977ecd2c39825039bc4be8afae0b
Fixed bug with account_info

There was a bug where account_info wasn't converting the
container_count value to an int. Causes max container count cap to
get hit pretty quick since '0' > 0.

Change-Id: Ibfc6eebbff5a00aaebb47e9731dd053b60e3caa4
Add missing CONTRIBUTING.md to source tarball

Fixes MANIFEST.in to include missing CONTRIBUTING.md into source
code tarballs.

Change-Id: I81876adad14e0f1b2211d39ec6471e35f5464120
Add a region tier to Swift's ring.

The region is one level above the zone; it is intended to represent a
chunk of machines that is distant from others with respect to
bandwidth and latency.

Old rings will default to having all their devices in region 1. Since
everything is in the same region by default, the ring builder will
simply distribute across zones as it did before, so your partition
assignment won't move because of this change. If you start adding
devices in other regions, of course, the assignment will change to
take that into account.

swift-ring-builder still accepts the same syntax as before, but will
default added devices to region 1 if no region is specified.

Examples:

$ swift-ring-builder foo.builder add r2z1-1.2.3.4:555/sda

$ swift-ring-builder foo.builder add r1z3-1.2.3.4:555/sda

$ swift-ring-builder foo.builder add z3-1.2.3.4:555/sda

Also, some updates to ring-overview doc.

Change-Id: Ifefbb839cdcf033e6c9201fadca95224c7303a29
Fix swift-ring-builder's list_parts command.

I broke it in 7548cb9 when a ring's replica count changed from an int
to a float.

Change-Id: I49fa7e2961a09daad0c96e19cf1e39fec248d998
Remove check for valid Origin for the "actual request".

The only place in the spec that I could see the Origin being checked was
during the pre-flight OPTIONS request. If it gets to the actual request
let auth decide. Please correct me if this is wrong.

Change-Id: Ic31b71746ec056091c7778ebff3db7becc32bd9c
Merge "Fix swift-ring-builder's list_parts command."
Merge "Add missing CONTRIBUTING.md to source tarball"
Merge "Remove check for valid Origin for the "actual request"."
Fix crash in swift-ring-builder's list_parts command.

If you run list_parts against a builder that has never been
rebalanced, you'd get a crash. Now you don't.

To reproduce:

$ swift-ring-builder foo.builder create 8 3 1
$ swift-ring-builder foo.builder add r1z1-1.2.3.4:6000/sda 100
$ swift-ring-builder foo.builder list_parts z1

Change-Id: Ic3edffab0c5c2e9551a2f89ddb881153f0b07db7
Fix format device

Change-Id: Icef35175682c11a406ef85accc6c6e1acbf89f4d
Merge "Add tests and doc entry for request.environ[reseller_request]"
Merge "Fix format device"
Small clarification to swift-recon section of admin guide.

Apparently the use of port 6030 was causing some confusion.

Fixes bug 1095474.

Change-Id: I0cc71f4733ad91694e015a9b75c3eda080aca6fb
swift-ring-builder blows up when not supported command requested.

swift-ring-builder uses outdated unbounded class method to handle
not supported command. It worked for python 2.6 or older but not
for python 2.7 or newer. This patch fixes the problem.

Change-Id: I7dbc681ef6be44f6d79ff93189ccca13c51eab74
Fixes: bug #1154882
Basic ring builder validation.

This prevents people from creating bogus ring builder files.

Example: "swift-ring-builder object.builder create 33 0.9 -4".

Fixes bug 924577.

Change-Id: I7bfc04f7fa5f55f70a4eaae96c414f6b2872e283
Instruction for multi node setup misses /var/run/swift creation

Multiple Server Swift Installation (Ubuntu) instruction does not
indicate that the directory /var/run/swift needs to be created.
That directory actually needs to be created and the ownship needs
to be changed to the user/group which swift service runs under.

This patch will fix the document and gives the steps how to create
the directory and set the ownership right. It also gives instruction
on how the script can be added so that swift services can be resarted
after system reboots.

Change-Id: Id61aa67cc0d6f66d749701e6ea824b1ff3b2c478
Fixes: bug #1156631