Fix coverage report for newer versions of coverage

With newer versions of coverage (at least what is installed with ubuntu
trusty), code coverage isn't working.  Making this change allows the
coverage library to find the swift package.

Change-Id: I3b3792622904a86096064c0e03c8095636f83973
Merge "Fix coverage report for newer versions of coverage"
Add profiling middleware in Swift

The profile middleware provide a tool to profile Swift
code on the fly and collect statistic data for performance
analysis. An native simple Web UI is also provided to help
query and visualize the data.

Change-Id: I6a1554b2f8dc22e9c8cd20cff6743513eb9acc05
Implements: blueprint profiling-middleware
Update mailmap for Morgan Fainberg

Change-Id: Ia46c28c86ef3f440556b1b027d2bf0a7f3e721c5
Uses None instead of mutables for function param defaults

As seen on #1174809, changes use of mutable types as default
arguments and defaults them within the method. Otherwise, those
defaults can be unexpectedly persisted with the function between
invocations and erupt into mass hysteria on the streets.

There was indeed a test (TestSimpleClient.test_get_with_retries)
that was erroneously relying on this behavior. Since previous tests
had populated their own instantiations with a token, this test only
passed because the modified headers dict from previous tests was
being overridden. As expected, with the mutable defaults fix in
SimpleClient, this test begain to fail since it never specified any
token, yet it has always passed anyway. This change also now provides
the expected token.

Change-Id: If95f11d259008517dab511e88acfe9731e5a99b5
Related-Bug: #1174809
debug level logs should not be translated

According to the OpenStack translation policy available at
https://wiki.openstack.org/wiki/LoggingStandards debug messages
should not be translated. Like mentioned in several changes in
Nova by garyk this is to help prioritize log translation.

Change-Id: I59486b1110f08510d83a4aec2a1666805c59d1cd
Closes-Bug: #1318333
Merge "debug level logs should not be translated"
Fixed several Python3 syntax errors

Change-Id: I8634ddb31da0297c06e39b968ce1a209b0d78614
Let users add their own txid suffixes

The value of the X-Trans-Id-Extra header on the request (if any) will
now be appended to the transaction ID. This lets users put their own
information into transaction IDs.

For example, Glance folks upload images as large objects, so they'd
like to be able to tie together all the segment PUTs and the manifest
PUT with some operation ID in the logs. This would let them pass in
that operation ID as X-Trans-Id-Extra, and then when things went
wrong, it'd be much easier to find all the requests in Swift's logs.

Also, this aids debuggability when requests fail to receive
responses. If a user is sending in their own X-Trans-Id-Extra strings,
then that gives operators something to search for in the logs. The
normal txid won't work since that's in the response, but the client
didn't receive one.

Swift will only use the first 32 characters of X-Trans-Id-Extra so
that its log lines stay a manageable length. Also, it's URL-quoted so
that users cannot inject double quotes into X-Trans-Id-Extra and screw
up log parsers.

DocImpact

Change-Id: I3c51d0c5ac55697ac230001840da219e73a03157
Added a tox job for running flake8 under Python 3

Change-Id: I04a78cc5e3613d1d765d716633bca297bf7207b6
Merge "Fixed several Python3 syntax errors"
Add targeted config loading to swift-init

This allows an easier and more explicit way to tell swift-init to run on
specific servers.  For example with an SAIO, this allows you to do
something like:

swift-init object-server.1 reload

to reload just the 1st object server.  A more real world example is when
you are running separate servers for replication.  In this example you
might have an object-server/public.conf and
object-server/replication.conf.  With this change you can do something
like:

swift-init object-server.replication reload

to just reload the replication server.

DocImpact
Change-Id: I5c6046b5ee28e17dadfc5fc53d1d872d9bb8fe48
Merge "Added a tox job for running flake8 under Python 3"
Merge "Add profiling middleware in Swift"
Make the new xprofile tests optional.

On Lucid at least, xprofile doesn't work. While others try to figure out the
underlying issue, this patch would just skip the tests if the profiling code
can not be imported.

Change-Id: I0fee3f729742cc727edc2adabb4ed782bea7798f
Change the default token logged length to 16

Based on comments from deployers at the Juno OpenStack summit,
limiting the default logged token length (to, by default, prevent
tokens from being fully logged) is a good idea.

Change-Id: I58980e85329d99de41f1c08f75e85973452317b1
Merge "Change the default token logged length to 16"
taking the global reqs that we can

Change-Id: Icfdeeab14e90728aa8167ad6587d51e9b10cb846
added Benchmarks/Load Generators section

Change-Id: Ie4b12b91ab07987e4f9cf2d1b7d24961d22cfd37
Merge "Add targeted config loading to swift-init"