174 Commits

Author SHA1 Message Date
Yuan Zhou
dbdbaa0321 Skip sniffing and reseting if retry is disabled
Bypass sniffing entirely if retries has been disabled.

Fix bug #1216981

Change-Id: I593bdc56ca139af5a7f2ca2783ef2de2a96c94fb
Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
2013-09-29 21:37:07 +08:00
Jenkins
0278998398 Merge "Added support for running the tests under PyPy with tox" 2013-08-29 22:23:27 +00:00
Alex Gaynor
d352d831a5 Added support for running the tests under PyPy with tox
This is a precursor to having them run under check and gate.

Change-Id: Ia512b68b5b47a88d5f7c1015cdf7151c322d293d
2013-08-28 09:44:51 -07:00
Stanislaw Pitucha
a47d3d6468 Remove redundant unit suffix
Transfer speed already has a "MB/s" unit. The "s" suffix was probably a
copy/paste mistake.

Change-Id: Iccd7894d5ca11aac8a9f98365834c5d3deef0720
2013-08-28 16:26:28 +01:00
Jenkins
6c041058da Merge "Reformat help outputs" 2013-08-26 23:42:48 +00:00
Jakub Krajcovic
b0eb857b69 Reformat help outputs
Reformatted the help outputs in the swift client to bring them more
in line with the rest of the openstack clients. Changes were added to
all of the st_command_help variables and a new variable
st_command_options was added to help with correct formatting of
help outputs.

Change-Id: I0c549cf96292384ddb36b43ecec41a883d8b2e13
Implements: changes to help outputs
2013-08-19 20:45:00 +10:00
Clay Gerrard
ec14619ef0 Add a NullHandler when setting up library logging
I was gunna write a test, but mocking ImportErrors is a PITA, so I decided to
just get my tox py26 working instead.  Tests seem to fail/pass as expected
without/with the inline NullHanlder.

Closes-Bug: 1212861

Change-Id: I20207374a77ee9969ab201c3a57e4caf40c02a61
2013-08-17 00:27:24 -07:00
Jenkins
c626c2a87e Merge "Added headers argument support to get_object()" 2013-08-02 19:23:23 +00:00
Wu Wenxiang
256978a0ee Assignment to reserved built-in symbol "file"
In file: tests/test_swiftclient.py, test_unicode_ok() &
test_chunk_warning()

Fixes bug #1207736

Change-Id: I0a822802ec8910e9aec36ae5af775f8abb384d34
2013-08-02 20:57:02 +08:00
Stanislav Vitkovskiy
d34f126148 Added headers argument support to get_object()
With this change conditional and range GETs are possible, as
documented in official API guide:
http://docs.openstack.org/api/openstack-object-storage/1.0/content/retrieve-object.html

Change-Id: Ib2ed1c21e8d3f1ed79c0b7e542ee022ee535835c
2013-07-29 22:53:13 +10:00
Darrell Bishop
9198e95468 Move multi-threading code to a library.
This patch extracts the multi-threading code from bin/swift into
swiftclient/multithreading and adds tests.  In particular, this new way
of doing it (with context managers) will prevent non-daemonic threads
from wedging the process when unexpected exceptions happen.

I enabled reporting of which lines, specifically, are not covered by
unit tests (added -m option to "coverage report" in .unittests).

This patch includes a drive-by fix for uploading a segmented file with
--use-slo when that object already exists.  A key of "name" was used
instead of "path", raising KeyError.

There's also another drive-by fix for uploading segmented objects with
--use-slo.  Commit 874e0e4427b80e1b15b74a1557b73ba9d61443ca regressed
this by removing the capturing of thread-worker results in
QueueFunctionThread.run().  This patch restores that functionality and
the feature (uploading SLO objects).

Change-Id: I0b4f677e4a734e83d1a25088d9a74f7d46384e53
2013-07-28 22:08:17 -07:00
TheSriram
5d9c6f845c fix(gitignore) : Ignore *.egg files
Change-Id: If52f9570a17230af9636f5337973e506c142b0bc
2013-07-24 16:31:13 -04:00
Jenkins
43a838eabf Merge "python3: Start of adding basic python3 support." 2013-07-23 17:41:16 +00:00
Jenkins
8ffaa0a4ce Merge "Refuse carriage return in header value" 2013-07-23 00:09:47 +00:00
Chuck Short
69281a580f python3: Start of adding basic python3 support.
Fix imports so its python3 compliant.

Change-Id: Ie08fe63b87e75bb099105ca1de860f9ab6c3340b
Signed-off-by: Chuck Short <chuck.short@canonical.com>
2013-07-18 14:00:07 -04:00
Hemanth Makkapati
2f84a4e76b Added log statements in swift client
Added log statements in swiftclient/client.py:_retry where exceptions
are being raised.

Fixes bug# 1202229

Change-Id: I727537177849d08bb9603aa884152bdebc62fb85
2013-07-17 15:11:15 +00:00
Samuel Merritt
07d13b5262 Update docstring for swiftclient.Connection.__init__
There were two undocumented parameters in there, one introduced
recently in 6411fd3, and the other some time before.

Change-Id: I3a7d59e1c272b382b035b88ba5495bc1c57a3154
2013-07-12 17:26:45 -07:00
Jenkins
cc2fbf0c74 Merge "Adds max-backoff for retries in Connection." 2013-07-12 22:57:24 +00:00
Kun Huang
7d88d14def Refuse carriage return in header value
See bug #1188896.
Comparing with Curl and Django, they both refuse carriage returns in
header values, so the request() method on the HTTP(S)Connection instance
returned by swiftclient.client.http_connection() will raise an
InvalidHeadersException if any of the headers to be sent contain a
newline.

Drive-by fix for a couple of header values which were integers instead
of strings (Content-Length getting set to zero).

Fixes bug #1188896

Change-Id: Ic6afdb92882284f843aacb06d20f682ddcb47151
2013-07-12 15:18:49 -07:00
Mike Widman
6411fd3846 Adds max-backoff for retries in Connection.
The max-backoff concept prevents the backoff used in _retry to double infinitely (which in turn causes wait times of an hour or more between retries).

As per review, changed code to use min instead.

Fixes: bug #1183542

Change-Id: Ic084f54069b7fa7a33604741487045c5e697ff06
2013-07-12 14:53:30 -07:00
Jenkins
65e5ef7b81 Merge "Allow setting # of retries in the binary" 2013-07-12 15:17:03 +00:00
Jenkins
c460ebff0a Merge "Allow storage url override for both auth vers." 2013-07-10 07:06:08 +00:00
Ben McCann
188e835ead Allow setting # of retries in the binary
Change-Id: I7ef4f1f86cc6ea4937043ea7bf7d9526e23bd2c7
2013-07-08 17:09:44 -07:00
Kun Huang
94d7c23181 Note '-V 2' is necessary for auth 2.0
Here are some questions in Launchpad, just because they miss '-V 2' for
auth 2.0.
https://answers.launchpad.net/swift/+question/231938
https://answers.launchpad.net/swift/+question/231279
So I add somethins for noteing people add the '-V 2'

Change-Id: I2e0fef969be4eca316975de03fdbc516a1069acf
2013-07-07 16:22:01 +08:00
Darrell Bishop
1d4d51b218 Allow storage url override for both auth vers.
When --os-storage-url is specified on the command-line to bin/swift, it
will override the used storage URL regardless of authentication for both
authentication version 1 and version 2.  This can be used to bypass a
load-balancer to hit a specific proxy server for testing/debugging
purposes.

Within the client library, this feature is accessed by passing the
desired storage URL into swiftclient.client.Conection.__init__() via the
os_options keyword argument.  For example:

  conn = Connection(auth_url, user, key, os_options={
    'object_storage_url': 'http://overridden.storage.url/AUTH_foo'})

This patch also adds a dependency on mock>=0.8.0, which is the same as
openstack/swift.

Change-Id: Id2a36ed6abffd65e7762b6beea5bbfc6c036e848
2013-07-05 14:12:59 -05:00
Jenkins
6f7458a290 Merge "Add -p option to download command." 2013-07-05 17:16:34 +00:00
Jenkins
b03843f3ac Merge "Add *.swp into .gitignore" 2013-06-28 18:42:23 +00:00
Kun Huang
100f95281a Add *.swp into .gitignore
Change-Id: I76c92d82647ac9d042f6c117918feb5820a47678
2013-06-27 22:28:33 +08:00
Darrell Bishop
f022aac0cf Add -p option to download command.
Allow the ability to download a subset of containers (--all with -p) or
a subset of objects within a container (container name with -p).

This patch also includes a drive-by fix for "download --all" which would
not actually download any objects (for me, at least) because the object
queue got filled with "stop" messages before the container workers had
run long enough to put work in the object queue.  Doh!

I also closed up a few holes where an (unexpected, obviously) Exception
could cause the process to hang because non-daemon threads still
existed.

Change-Id: I71c6935c60282b5353badc2dfce8a935d47e3bb7
2013-06-26 23:00:46 -07:00
Mark Seger
9f5b334f7a add -t for totals to list command and --lh to stat
Change-Id: Ieaba5e7762032bf9a2652ead39870d55e85b4672
2013-06-26 15:48:21 +00:00
Jenkins
1c86d62fde Merge "Remove explicit distribute depend." 2013-06-26 14:58:11 +00:00
Mark Seger
3f66a8ae6b add optional 'response_dict' parameters to many calls into which they'll
return a dictionary of the response status, reason and headers

Change-Id: I35f8824537f0484362dd6646c91789fac02fa075
2013-06-20 11:51:08 +00:00
Jenkins
5d84ff8d9b Merge "Fixes re-auth flow with expired tokens." 2013-06-19 18:31:15 +00:00
EdLeafe
7b9f304485 Fixes re-auth flow with expired tokens.
The re-authentication of expired tokens assumed that the 401 would
always occur on the first HTTP at tempt. This fix changes that so that
re-auth is still only attempted once, but no longer has to be on the
first attempt.

Change-Id: I93a1187da3637287a803a59c146256d4f543c9d5
Fixes: bug #1131142
2013-06-13 11:14:28 -05:00
Jenkins
08e1f09e58 Merge "python3: Introduce py33 to tox.ini" 2013-06-13 08:00:32 +00:00
Jenkins
473167ff31 Merge "Add -l and --lh switches to swift 'list' command" 2013-06-11 22:03:34 +00:00
Jenkins
02742e602d Merge "Changed the call to set_tunnel to work in python 2.6 or python 2.7 since its name changed between versions" 2013-06-11 21:25:26 +00:00
Monty Taylor
e885f87a3e Remove explicit distribute depend.
Causes issues with the recent re-merge with setuptools. Advice from
upstream is to stop doing explicit depends.

Change-Id: If1a97a574dbc0370a0a2de5d99a92610b048907d
2013-06-11 11:28:13 -07:00
Mark Seger
17bb3fa779 Add -l and --lh switches to swift 'list' command
Also updated man page and added an example in 'list'
command help message

Change-Id: Icf38de9bab6d387a9a1deed444a91f68b4389cfe
2013-06-10 16:49:44 +00:00
Greg Lange
f045f5bec2 Changed the call to set_tunnel to work in python 2.6 or python 2.7 since its name changed between versions
Change-Id: I5550049435002b42c4fea06d41549a1e7254ac02
2013-06-07 20:03:00 +00:00
Stuart McLaren
790f087a67 Add option to disable SSL compression
Allows optionally disabling SSL compression. This can significantly
improve HTTPS upload/download performance in some cases -- in particular
when the object is not compressible and you have very high network
bandwidth.

Implements blueprint ssl-compression.

Change-Id: I1260055f9c2e83cdabfeb51aed11b3899bed4d55
2013-06-04 16:33:18 +00:00
Chuck Short
e35b4fe34a python3: Introduce py33 to tox.ini
Introduce py33 to tox.ini to make testing with
python3 easier.

Change-Id: Ibffa28107fdf1d1ae88223d84de4a7282c7882e0
Signed-off-by: Chuck Short <chuck.short@canonical.com>
2013-06-01 19:27:54 -05:00
niu-zglinux
2d12f09c66 Rename requires files to standard names.
Rename tools/pip-requires to requirements.txt and tools/test-requires
to test-requirements.txt. These are standard files, and tools in the
general world are growing intelligence about them.

Change-Id: I9c1356f22f6527be44b4b3f6a77012156ff1637b
Fixes: bug #1179008
2013-05-30 22:14:28 +00:00
Tong Li
874e0e4427 remove busy-wait so that swift client won't use up all CPU cycles
The current implementation uses busy-wait and checking flags to
communicate between threads. It wastes a lot of CPU powers. With
python 2.6 is required for Swift, the communication between
threads should now be using queue and signal mechanisms. This
patch removed the busy-wait loops and use queue and queue join
for threads coordination which will not consume CPU cycles if
a thread is blocked.

Change-Id: I648cd637a92a159d5c13baa83f357cee2dfe7937
2013-05-29 19:09:49 +00:00
Leah Klearman
7e84b69291 log get_auth request url instead of x-storage-url
because if the request gets a 4xx error, then the url will be None, and that's just confusing.

Change-Id: I62729364b9bd279498909dc5cd0d2a1ec5fcd70d
2013-05-22 18:17:59 -07:00
Pete Zaitcev
07311a0639 Update the man page
- Add -V option
- Use uniform and correct capitalization for OpenStack Swift
- Make the example of output of stat command up-to-date
- Generally prettify the document
- Remove all trailing whitespace

Change-Id: Id3da2035851847c4bff8cec8f927d3654824bf5b
2013-05-21 15:34:21 -06:00
Jenkins
d5b6d29a30 Merge "Add end_marker and path query parameters" 2013-05-21 04:29:55 +00:00
Jenkins
feec0c83ac Merge "do not warn about etag for slo" 2013-05-21 04:17:52 +00:00
Jenkins
7391fcc45e Merge "Add .coveragerc file to show correct code coverage" 2013-05-16 15:30:29 +00:00
Vasyl Khomenko
541d805b66 Add .coveragerc file to show correct code coverage
Change-Id: I428d0c2587cc480a27796c5fa246b171606809e1
2013-05-16 01:24:33 -07:00