16 Commits

Author SHA1 Message Date
Jenkins
6941260d07 Merge "Shuffle download order (of containers and objects)" 2012-08-17 22:41:58 +00:00
Darrell Bishop
9083beb41f 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
2012-08-16 21:39:00 -07:00
Darrell Bishop
9a3aa066c3 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
2012-08-16 21:30:54 -07:00
Darrell Bishop
c87458e229 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
2012-08-03 19:34:40 -07:00
Chmouel Boudjnah
c8163f4112 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
2012-07-06 18:40:45 +00:00
gholt
36daad953a Now url encodes/decodes x-object-manifest values
Change-Id: I8ce7fa1cb0aba3aca622c7a793ee5d330fe4e265
2012-06-28 23:43:30 +00:00
Jenkins
47f8786cc9 Merge "Make swift exit on ctrl-c." 2012-06-27 19:52:24 +00:00
Samuel Merritt
f6c7fec991 Configurable concurrency for swift client.
The 'delete', 'download', and 'upload' commands use multiple threads
for concurrency. However, the number of threads was hardcoded at
10. This patch simply makes those configurable.

For example, if I'm downloading a lot of files but I don't want to
saturate the downstream on my Internet connection, I might choose to
use only 1 or 2 threads for object downloads. Conversely, if I'm
uploading a lot of small files across a fast network, I would want
lots of threads to speed things along.

The default number of threads is 10, so the default behavior is
unchanged.

Change-Id: I64c06741b24ca97fef5ded206d7e898bf5cab3b8
2012-06-27 12:31:21 -07:00
Jenkins
2e05673e5c Merge "Make CLI exit nonzero on error." 2012-06-27 19:30:15 +00:00
Samuel Merritt
c6cc7eaa81 Make swift exit on ctrl-c.
The first time the user presses ctrl-c, all QueueFunctionThreads will
have abort=True set on them. This will cause them to finish the work
they're doing (e.g. finish uploading the current file) but then ignore
any further work and let the process exit. Also, a notification of
this is written to stderr so the user understands why the process
didn't exit immediately.

The second time the user presses ctrl-c, the process will exit
immediately. Any in-progress operations are abandoned.

Change-Id: Ie6927f78726ac1c7998e920cb608682ead10f25b
2012-06-27 12:03:46 -07:00
Jenkins
8396e3a4cb Merge "Make swift not hang on error." 2012-06-27 19:02:58 +00:00
Dan Prince
3a11e185b3 Don't suppress openstack auth options.
Fixes LP Bug #1016600.

Change-Id: I837728aa5445b6ccd07c47bdb4d99f0c84a1d7b2
2012-06-22 11:12:21 -04:00
Samuel Merritt
6c1813dd34 Make swift not hang on error.
Before, if a QueueFunctionThread's function raised an exception, then
its thread would log the exception and exit, leaving the rest of the
jobs in the queue and ensuring that the swift client would hang.

Now, the exception is logged and processing continues, so all the
messages get handled eventually and the client exits.

Change-Id: I43d4df212847a2a85732b304de319ea2cce82ddd
2012-06-18 09:47:33 -07:00
Samuel Merritt
6119de7e0b Make CLI exit nonzero on error.
This makes it much easier to detect failure in scripts.

Fixes bug 973557.

Change-Id: Ifd16ffcb7be85e45582095246cc29cfe44e2a173
2012-06-07 12:17:51 -07:00
Chmouel Boudjnah
9ee3ee6e6d Allow specify the tenant in user.
- This is to allow the -U tenant:user syntax like previously supported
  when not using the os_ arguments.
2012-05-08 14:06:43 +01:00
Chmouel Boudjnah
b55acc34f0 First commit. 2012-05-08 13:09:17 +01:00