add UDP protocol support for logger

When a syslog daemon fails and SysLogHandler cannot reconnect to
it, server processes (proxy, container, object, and more)
would start consuming 100 % CPU and stop responding to requests.
It is because the server process go into an infinite loop if they
fail to reconnect to /dev/log.
This problem happens only when using unix_sockets.

This change enables us to use syslog without unix_sockets and fixes bug 780025.

Change-Id: Ibcc99a1a148b1008036146bf3bd079a9be24982c
FormPost logging bugfix and slight refactor

In the interest of getting us to pep8 1.3.1 compliance I also fixed
all violations in the two files I was modifying anyway.

Fixes bug 1019051

Change-Id: I52eb7d59d2e2810a8cee2461f7ca869124e734e7
Validate devices and partitions to avoid directory traversals

swift.common.utils.validate_device_partition is a new function to check
that a device and a partition are valid. This means that they don't
contain '/' and are not '.' or '..'.

We use this new function every time we get devices and partitions from a
request.

Fix bug 1005908

Change-Id: Ia545ba8f877e85b4b576d6d7d09d890877ea6d34
Move swift_auth middleware from keystone to swift.

- Rename it to keystoneauth for consistenties.
- Implements blueprint keystone-middleware.

Change-Id: I208fecdf3ee991694b4239f065032324d297fd35
Updated probe tests

The probe tests were woefully out of date with all the changes that
have ocurred since they were written. I've updated most of them and
removed some that are hopeless outdated.

I also greatly improved the timing issues (hopefully completely
solved them? I ran them 25 times with no problems) and made them pep8
1.3.1 safe.

Change-Id: I8e9dbb6e7d6e04e293843b1dce1ded99d84e0348
Merge "Validate devices and partitions to avoid directory traversals"
Merge "add UDP protocol support for logger"
Fix Dispersion report and swift-bench on saio

We're still using saio:11000 in a few spots so a few things
don't work out of the box on the saio. Fixes bug #1024561

Change-Id: I226de54c2785b0d0b681c8d0cc24260adbd3d663
Adapt Swift for WebOb 1.2

Based on PatchSet 3 of https://review.openstack.org/#/c/7569/ , make them to pass all funcional tests with both webob 1.x and 1.2.

The additional following compatibility issues were addressed:
 - Until patch for range header issue is merged into official webob release, testRangedGetsWithLWSinHeader() should skip test against webob 1.2
(https://github.com/Pylons/webob/commit/49c175aec2b5c134511dfea6564bfb1d37ab23a9)

 - common.constraints.check_utf8() can accept both utf8 str and unicode.

 - To convert unicode to utf-8 str if necessary.

 - Making proxy_logging can handle invalid utf-8 str

bug 888371
bug 959881

blueprint webob-support

Change-Id: I00e5fd04cd1653259606a4ffdd4926db3c84c496
Merge "Fix Dispersion report and swift-bench on saio"
Fix wrong assert in manager unit test, self._assert(len(m.servers), 4)
don't check that number of servers equal 4.

Change-Id: I4a597eaf2b16b5b2cfc7fd706ac024357e9af2c2
Forbid substrings based on a regexp in name_filter middleware

In comments from https://review.openstack.org/8798 it was raised that it
might make sense to forbid some substrings in the name_filter
middleware.

There is now a new forbidden_regexp option for the name_filter
middleware to specify which substrings to forbid. The default is
"/\./|/\.\./|/\.$|/\.\.$" (or in a non-regexp language: the /./ and /../
substrings as well as strings ending with /. or /..).

This can be useful for extra paranoia to avoid directory traversals
(bug 1005908), or for more general filtering.

Change-Id: I39bf2de45b9dc7d3ca4d350d24b3f2276e958a62
DocImpact: new forbidden_regexp option for the name_filter middleware
Fix problem with logger and libc loader

If fallocate can't be loaded from libc, bit posix_fallocate loaded
user will Swift will log warning messages. So it will be better
to write log only if both version of fallocate can't be loaded.

Change-Id: I2a9ffe4756e77b3010ccd82b33c208d6d9b9f7b7
ensure that accessing the ring devs reloads the ring if necessary

Change-Id: If5a6d32c40de02183a2eed6e2a32d62ba38df32d
Merge "Move swift_auth middleware from keystone to swift."
Merge "ensure that accessing the ring devs reloads the ring if necessary"
Merge "Fix problem with logger and libc loader"
Create and configure /var/cache/swift in SAIO

Fixes bug #1024477

Change-Id: Id09bbff6bb4a5d032727d3ca53b3276b4769d178
version bump to reflect current dev effort

Change-Id: Ic2869ab7f728ed1a4d8b34c37f0540c582d7dbcc
Fix typing in DiskFile put method comment

Change-Id: I4a07ff105f2acc4174de0aef4e24cfcde323bea8