Adjust MAX_FILE_SIZE during test on 32 bit systems

The default MAX_FILE_SIZE of (5 * 2 ** 30 + 2) exceeds the
capacity of an int on 32 bit systems; adjust this default
down to (2 ** 30 + 2) if the default exceeds the maxsize of
an int on the platform running the tests.

Closes-Bug: #1378810

Change-Id: Iafa2ce90ceb2de4e968ad48580270c8c572a9c9c
Rework `splice` and `tee`

This patch reworks the bindings to `splice` and `tee` in order to fix a
(potential) bug when using the old `splice` binding and passing offsets
(see https://review.openstack.org/#/c/135319/ for a discussion of the
issue).

The new binding code (based on https://github.com/NicolasT/tee-n-splice)
uses more `ctypes` features w.r.t. parameter and return value handling.

It also introduces a test suite for both calls.

Change-Id: Ib8084ca20fe7a199a00067da9386c2ccf618755c
Splice: Use `operator.or_` instead of a lambda-expression

Suggested by Samuel Merritt in https://review.openstack.org/#/c/135319/

Change-Id: I5b86f25b42ffa6d4f9626dc6eb207ae0425933a8
Add tests for metadata on 304 and 412 responses

Commit 1f67eb74 added support for If-[None-]Match on DLOs and SLOs. It
also made the 304 and 412 responses have the Content-Type and
X-Object-Meta-* headers from the object instead of just having the
Etag.

Someone showed up in IRC today looking for this behavior, and was
happy to learn it's in newer Swift versions than the one they were
running. If we've got clients depending on this, we should have some
unit tests to make sure we don't accidentally take it out again.

Change-Id: If06149d13140148463004d426cb7ba4c5601404a
AUTHORS and CHANGELOG update for 2.2.1 release

Change-Id: Ib5c1bb632404573a7d8b9e2bfff9c02f47ab7446
Merge "Rework `splice` and `tee`"
Remove unneeded condition

The CName loopkup middleware checked a hostname against the configured
domains. This check is likely a remnant from when cname lookup only
supported a single hostname. Now, however, the configured domain is
actually a list of domains, so checking a single hostname will never
match. The check isn't really needed anyway, as it has been broken since
swift 1.10.

Closes-Bug: #1402704
Change-Id: If9ff345b2c7c6d88f527cae643168bc725b26f8d
Merge "Adjust MAX_FILE_SIZE during test on 32 bit systems"
Merge "Splice: Use `operator.or_` instead of a lambda-expression"
Merge "Remove unneeded condition"
Adds console logging to swift-drive-audit

This patch adds console logging ability to swift-drive-audit.
There are cases where logging to console is necessary when drive-audit
is done. This can be consumed for flagging errors in monitoring tools
such as icinga.

DocImpact
Change-Id: Ia1e1effcbd89bd2cf6d5b8c64019f1647c736a3a
Merge "Adds console logging to swift-drive-audit"
fix dlo manifest file getting versioned

According to documentation dlo manifest files should not
be versioned. This patch fixes this issue and adds
some unit and functional for this scenario.

Change-Id: Ib5b29a19e1d577026deb50fc9d26064a8da81cd7
Signed-off-by: Thiago da Silva <thiago@redhat.com>
Merge "fix dlo manifest file getting versioned"
Merge master to feature/ec

Conflicts:
	test/unit/obj/test_server.py

Change-Id: I4b4efa6fd8816fc9f059e488ab0e2a0454e0245e