Fedora 19 updates

Change-Id: I95138852e45aa7632218a7107e0e7ba1f6ef373c
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Merge "Use created container in unit test"
Merge "Move location of HTTPException in swift_testing"
Merge "Fedora 19 updates"
Pool memcache connections

This creates a pool to each memcache server so that connections will not
grow without bound.  This also adds a proxy config
"max_memcache_connections" which can control how many connections are
available in the pool.

A side effect of the change is that we had to change the memcache calls
that used noreply, and instead wait for the result of the request.
Leaving with noreply could cause a race condition (specifically in
account auto create), due to one request calling `memcache.del(key)` and
then `memcache.get(key)` with a different pooled connection.  If the
delete didn't complete fast enough, the get would return the old value
before it was deleted, and thus believe that the account was not
autocreated.

ClaysMindExploded
DocImpact
Change-Id: I350720b7bba29e1453894d3d4105ac1ea232595b
Merge "Set path_info in sub_slo manifest GET requests"
Allow slightly older dnspython (>= 1.9.4).

This has a couple benefits.

First, it means Ubuntu Precise users can just install python-dnspython
from packages instead of having to pull one in from source. This
should also fix an install error with new SAIO boxes where running
"python setup.py develop" fails unless a satisfactory dnspython is
already installed.

Second, it matches the dnspython dependency in the global
requirements. This means that the gates are already running with this
dnspython dependency, and it means our requirements.txt is one step
closer to being a subset of the global requirements.txt, which is
important to some people.

Change-Id: I5d58f488e1e4c4139c9fb20d89f386cab1537e98
Add "note" box callouts to SAIO for user changes.

The SAIO is purpously cut into two parts, so that you don't have to switch
back and forth between root and your unprivledged user.  Add some "note" box
callouts to highlight this changeover.

Change-Id: I8b1a8f0539eac60d4121bdd4dab01df75ecca207
assertEquals is deprecated, use assertEqual

The very same functionality for fewer keystrokes.

Change-Id: I8c9513412f398132db5636fdfb7bf8301e8443cf
Merge "Pool memcache connections"
Merge "Allow slightly older dnspython (>= 1.9.4)."
Merge "Simplify object path when reporting SLO put errors"
Merge "Add "note" box callouts to SAIO for user changes."
Stop reading from object server when client disconnects.

If a client were in the middle of an object GET request and then
disconnected, the proxy would wait a while (default 60s) and then time
out the connection. As part of the teardown for this, the proxy would
attempt to close the connection to the object server, then drain any
associated buffers. However, this didn't work particularly well,
resulting in the proxy reading the entire remainder of the object for
no gain.

Now, the proxy closes the connection hard, by calling .close() on the
underlying socket._socket object. This is different from calling
.close() on a socket._socketobject object, which is what you get back
from socket.socket() and similar methods. Calling .close() on a
socket._socketobject simply decrements a reference counter on the
socket._socket, which has been observed in the past to result in
socket leaks when something holds onto a reference. However, calling
.close() on a socket._socket actually closes the socket regardless of
who else has a reference to it.

I had to delete a test assertion that said the object server never got
SIGPIPE after a GET w/X-Newest. Well, you get a SIGPIPE when you write
to a closed socket, and now the proxy is actually closing the sockets
early, so now you *do* get a SIGPIPE.

closes-bug: 1174660

Note that this will cause a regression on bug 1037337; unfortunately,
the cure is worse than the disease, so out it goes.

Change-Id: I9c7a2e7fdb8b4232e53ea96f86b50e8d34c27221
Remove sphinx build warnings

Change-Id: Ic34bbd9cc65d96ea9b8434be7b54e5bcfae28b63
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Fedora 19: need to use /etc/rc.d/rc.local

Change-Id: I80e9a4c40ff99ec09a8eeef935447c6393ea78ec
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Make test_translations test our tree

In order to run the correct classes, Python test framework adjusts
sys.path. However, these changes are not propagated to subprocesses.
Therefore, the test actually tries to test installed Swift, not
the one in which it is running.

The usual suggestion is to run "python setup.py develop" before
testing, but it's annoying and error-prone. If you forget it,
you may test the code in /usr very easily, and never know.

Let's just pass the correct path to subprocess. Much safer.

Change-Id: Ic71314e8462cf6e0579d704ffe9fbbfac7e6ba24
Merge "Remove sphinx build warnings"
Merge "Fedora 19: need to use /etc/rc.d/rc.local"
Fix bad hash_path reference

Mea culpa: these two scripts were missed in commit:

  https://review.openstack.org/46956

Fixes bug 1235441

Change-Id: I4303bc808448a79bddbb991526b0cca26150b392
Signed-off-by: Peter Portante <peter.portante@redhat.com>