return the SLO etag generated from the segment etags on PUT

Change-Id: Idf742035da51170ea6a4d6278422ef307a46e121
Staticweb shortcut object 404s

Right now static web checks to see if it should handle a
request and if it decides that it shouldn't, in all cases,
it lets the request pass through the pipeline normally.
After this change on "x-web-mode: t" obj requests where
staticweb is not setup and an object 404s it will just
return the 404 instead of letting the app send a duplicate
request to the object servers.

Change-Id: I824f4b03f7546d26084fd51b97ea6e290169d22a
Add delay in swift-bench

With enable write affinity, it's necessary to wait until
replication has moved things to their proper homes before
running delete request. With write affinity turned on, only
nodes in local region will get the object right after PUT request.

Fix bug #1198926

Change-Id: I3aa8933d45c47a010ae05561e12176479e7c9bcc
Fix range GET w/If-None-Match.

An object GET request with both If-None-Match: <Etag> and
Range: bytes=N-M should result in a 304 Not Modified if the Etag
matches. However, it was resulting in a 416 Requested Range Not
Satisfiable. This commit fixes that.

The fix was to remove conditional_response=True from a request in the
proxy. As far as I can see, the only effect that
conditional_response=True has in swob is to enable range
checking. Since the object server handles all the range stuff, the
proxy shouldn't do it. Otherwise, you wind up with double-application
of the Range header, and that doesn't work very well.

This is probably left over from the WebOb days.

Fixes bug #1196805.

Change-Id: I207f3839731b7503baa3fdbd7cd1cfe3e1b46f62
Don't append %interface with ipv6 ips.

- Since netifaces is appending a %interface (i.e: %eth0) at the end and
  does not make a correct ipv6 address we are removing it.
- Improve the tests of whataremyips along the way.

Closes-Bug: 1209443
Change-Id: I585e795083783009961b429607ca3f66b8d7ec30
fix gettext calls to operate on uninterpolated strings

The strings need to be interpolated after the gettext call,
so that the gettext() lookup works correctly

Change-Id: Ibdb9044813f42039f7a87ca7e8fec20583aa61ae
Always close HTTP connections in the container updater.

This is needed on Pythons (e.g. PyPy) which do not use reference
counting.

Change-Id: Ib75a2e63bdd6b6bc726fb3dbf905d36f427aaf2f
Removed monkeypatching of __del__ in tests

On PyPy adding __del__ to a class after it's constructed does not
work, instead implement the leakchecker in tests by using weakrefs,
which works everywhere.

Change-Id: I873efb3e2f85f731d5836bf9bf06a21e939e8542
Sped up tests by using smaller files

Switched one of the disk file tests to use a smaller file size for
testing. The larger size was not needed and accounted for ~3% of the
total test time by itself.

Change-Id: Ie71a390117baa2d286122a46880a4558f50b83b9
Rename loop var i in sub loop branch

In file: test/functional/tests.py, TestFile::testMetadataOnPost()

Fixes bug #1211783

Change-Id: I501eabdde9858af4571a19ad6a43db94f33fda09
Merge "Rename loop var i in sub loop branch"
memcache timeout parameter bug in get_info

container and account info currently never expires from cache due to a
bug in get_info.

Change-Id: Ia2b4dfa768d6017dd809cdd5f0568f4831f87ade
Added container listing ratelimiting

Change-Id: If4e9cfe4e4c743de1f39704acf849164cf3f0bd0
Migrate to pbr for build

pbr is the libification of what was openstack.common.setup. If provides
the build information in a delcarative form, instead of as executable python
code, which works around the chicken and egg problem of needing setup
libraries present to run setup, but needing to run setup to tell if you
need setup libraries.

One of the features that comes along with this is versioning based on
git tags. If the current revision is a signed git tag, then that is the
version of the package. If it is not, the version is equal to the most
recent git tag, plus a commit count, plus a git sha (similar to git
describe, but scrubbed for python version rules compliance)

pbr updates are also part of the upcoming automation around ensuring
global requirements stay in sync.

Closes-Bug: #1179007
Change-Id: Ia473960be7e8aa44f09d48cea72ed3c8845f82fa
Add unit test for account/auditor.py

* Here lack tests for a long time; let's add tests for it.
* use mock module instead of monkeypatch in both account/test_auditor.py
  and container/test_auditor.py

Change-Id: I9ea23dc5034f7147629db59b1ef6cb491de9049f
use testCase.assert instead of assert and try...except

In unit tests, we should use: self.assertTrue or self.assertFalse
instead of 'assert xxx is True/False', and use self.assertRaises instead
of 'try ... except ...'

fixes bug #1212602

Change-Id: I25318eb59cd26a98afdce5495273e3b3266655a4
Merge "Sped up tests by using smaller files"
clean temp dir in /tmp

In unit tests, many test class use tempfile.mkdtemp in SetUp and
shutil.rmtree in tearDown.

A common wrong case is putting test data in `testdir = os.join(mkdtemp() +
'some_class')` and `rmmtree(testdir)`. As a result, /tmp/xxx/some_class
was deleted, but /tmp/xxx is still leaved in system. So a proper fix is
`rmtree(os.path.dirname(testdir), ignore_errors=1)`

fixes bug #1212583

Change-Id: Iafbe3e11f16b51bdf49abce9e68eb01f25bc5df2
Merge "Add unit test for account/auditor.py"
Implements configurable swift_owner_headers

These are headers that will be stripped unless the WSGI environment
contains a true value for 'swift_owner'. The exact definition of a
swift_owner is up to the auth system in use, but usually indicates
administrative responsibilities.

DocImpact

Change-Id: I972772fbbd235414e00130ca663428e8750cabca