Use keystoneclient for authentication.

- This allows us to delegate all 2.0 authentication directly to the
  library without reimplementing ourselves.
- Support reusing a token / storage-url without re-authenticating every
  time via the switch os_storage_url os_auth_token.
- Allow auth via tenant_id instead of just tenant_name via the switch
  os_tenant_id.
- Refactor a bit to make it easier in the future to add new OS features
  (i.e: region).
- Implements blueprint use-keystoneclient-for-swiftclient.
- Fixes bug 1016641.

Change-Id: I532f38a68af884de25326aaac05a2050f5ffa1c7
Merge "Use keystoneclient for authentication."
Fix container delete throughput and 409 retries.

Fix race condition in _delete_container() where all elements of
object_queue have been removed, but the last one (per thread) may not
have actually been deleted yet when the container deletion thread calls
conn.delete_container(container).  Fixes bug 1032879.

Improves container deletion throughput by immediately deleting
containers with no objects instead of waiting for all pending object
deletes to complete.  Fixes bug 1032878.

Change-Id: I404229a4c608995294e0ada77724ac8afe8d6f3c
Make python-keystoneclient optional

A lot of us don't use Keystone.

Change-Id: Ifcd5fe609efbe950e935c0e0cfee200687b69eda
Ensure Content-Length header when PUT/POST a container

Fixes bug #951155

Change-Id: Ib1455ddb142137cc0946d50a66540eae6402f598
Add timing stats to verbose download output.

When using the swift command-line tool to evaluate a Swift cluster, it
can be very handy to get some insight into the download timing.  This
patch adds timing data to verbose output for the download command.  For
each downloaded file, the printed line will also contain:
 - The time it took to send the request and receive the header
 - The total time the request took (including writing the file out
   locally)
 - The average throughput of the download

Change-Id: Ib4a995623af973bb1eed4fb52c8c0e5da935964d
Shuffle download order (of containers and objects)

When downloading the same containers or objects with multiple
invocations of the swift command-line client, you'll get better
throughput and avoid "hot spots" if each client randomizes its download
order.

Note that the marker must be picked *before* shuffling the containers or
objects.

Change-Id: I7240eda57a80e1708c2483827c6329fd57d5fc51
Merge "Shuffle download order (of containers and objects)"
Add nosehtmloutput as a test dependency.

Adding nosehtmloutput as a test dependency allows nose to output its
results to an html file. This will be used by Jenkins to save logs on
a different server.

Change-Id: I4292ba27db9371d5a8dae4b901a46165b9ee6721
Merge "Ensure Content-Length header when PUT/POST a container"
	Fix swiftclient 400 error when OS_AUTH_URL is set.

	Description: The swift command tool will set the auth version
        to 2 if OS_AUTH_URL is set even use -V 1 option to set Version
        to 1.So when use nova/glance client and swift client in the
        same shell, and export environment OS_AUTH_URL, it will lead
        swift client to raise 400 error if swift not use keystone
        for auth.
	Fixes bug 1034158

Change-Id: I8003ff2ad4ac25fd710f87c4dab1507f6040ed3d
Change '_' to '-' in options

This changes every command-line option with a '_' in its name
and changes them to '-'.  The old option names are maintained
for backward compatibility but are no longer in the help text.

BP command-options

Change-Id: I79b3c03f59ce8e253aa0dcbf0c2ed5a56d71cd0c
Merge "Add nosehtmloutput as a test dependency."
Fix PEP8 issues.

Fix some pep8 issues in doc/source/conf.py make the code looks pretty.

Change-Id: Icc5ce260aaae8a2c436f5146840ffde4e6ef2839
Add ability to download without writing to disk.

This patch adds a "--no-download" option to the "download" command.
When given, all writing to disk is bypassed, while still actually
downloading the data and validating etags.

This can be handy when you're using the swift command-line client to
test out a swift cluster and don't want client-side disk writing to be a
bottle-neck (but you still want to know about any etag validation
failures).

Change-Id: I0a511f473a64820161d1eb529b995900742794f2
PEP8 issues fixed

1. Have a better indent in doc/source/conf.py
2. Fix an import issue

Change-Id: I5811c195157706d2a85c0fd47666e67f94b2c558
PEP8 cleanup.

Some trivial pep8 cleanup.

Change-Id: I0f02c0730bf889b2b89063bef6bcc8b71d36505c
Merge "PEP8 issues fixed"
Allow endpoint type to be specified.

Fixes bug 1037690.

Change-Id: I36b3807b2f3234c778316f1e743d27304755aed8
Add region_name support

Add --os-region-name (and OS_REGION_NAME env) to bin/swift
Add region_name to the os_options in Connection class.

bug 1019832

Change-Id: Id8515d97e5351638dce10581c7368f61518e1fa7