<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/openstack/python-swiftclient.git/swiftclient, branch juno-eol</title>
<subtitle>opendev.org: openstack/python-swiftclient.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-swiftclient.git/'/>
<entry>
<title>Merge "Remove a debugging print statement"</title>
<updated>2014-09-26T22:35:39+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2014-09-26T22:35:39+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-swiftclient.git/commit/?id=bb4d2ab59c4de9389667eeed255642f51e276f1e'/>
<id>bb4d2ab59c4de9389667eeed255642f51e276f1e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Add per policy container count to account stat output"</title>
<updated>2014-09-25T19:10:31+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2014-09-25T19:10:31+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-swiftclient.git/commit/?id=d721871cfaf9cf9ea986cb59eaeddd90e14f4d2a'/>
<id>d721871cfaf9cf9ea986cb59eaeddd90e14f4d2a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove a debugging print statement</title>
<updated>2014-09-25T11:03:43+00:00</updated>
<author>
<name>Joel Wright</name>
<email>joel.wright@sohonet.com</email>
</author>
<published>2014-09-25T08:23:44+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-swiftclient.git/commit/?id=3496e07ea42bed9e45203a13322f6b77f8feae96'/>
<id>3496e07ea42bed9e45203a13322f6b77f8feae96</id>
<content type='text'>
This patch removes a debugging print statement that slipped into
service.py in patch https://review.openstack.org/#/c/85453/

Change-Id: I80eee49eaa74b52e9c36f00669206aa7b2cdec9b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch removes a debugging print statement that slipped into
service.py in patch https://review.openstack.org/#/c/85453/

Change-Id: I80eee49eaa74b52e9c36f00669206aa7b2cdec9b
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix bug with some OS options not being passed to client</title>
<updated>2014-09-24T17:19:12+00:00</updated>
<author>
<name>Alistair Coles</name>
<email>alistair.coles@hp.com</email>
</author>
<published>2014-09-22T10:52:44+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-swiftclient.git/commit/?id=f90d7f28e504be045e59b395aee0abc057417f8f'/>
<id>f90d7f28e504be045e59b395aee0abc057417f8f</id>
<content type='text'>
Fixes a regression that is preventing swiftclient from
authenticating using keystone v3 options.

swiftclient/shell.py processes the dict of command
line options to set up a child dict ('os_options')
of keystone auth specific options (line 960). The
processing includes stripping --os- prefixes from
the command line options before adding keys to
os_options.

A recent patch https://review.openstack.org/#/c/85453/
introduced a duplication of this option processing
in service.py (line 79) which replaces the os_options
created in shell.py, but omits keystone v3 related
options. Consequently the keystone v3 options are
not being passed to the client get_auth() method.

This patch adds the keystone v3 related options to
the option processing in service.py.

For pragmatic reasons (i.e. fixing the bug quickly)
the option processing code has not been removed from
parse_args in shell.py. It is likely that the code in
parse_args is now redundant, but all code paths between
parse_args and process_options should be inspected and
test coverage added before removing that code.

Unit tests have been added in test_shell.py to verify
that command line options are correctly passed to the
client get_auth method.

The MockHttpTest class is re-used in test_shell.py,
so it is moved from test_swiftclient.py
to tests/unit/utils.py

Closes-bug: #1372465

Change-Id: I4fed013cdb8936509609d06093337cc147ade0d6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes a regression that is preventing swiftclient from
authenticating using keystone v3 options.

swiftclient/shell.py processes the dict of command
line options to set up a child dict ('os_options')
of keystone auth specific options (line 960). The
processing includes stripping --os- prefixes from
the command line options before adding keys to
os_options.

A recent patch https://review.openstack.org/#/c/85453/
introduced a duplication of this option processing
in service.py (line 79) which replaces the os_options
created in shell.py, but omits keystone v3 related
options. Consequently the keystone v3 options are
not being passed to the client get_auth() method.

This patch adds the keystone v3 related options to
the option processing in service.py.

For pragmatic reasons (i.e. fixing the bug quickly)
the option processing code has not been removed from
parse_args in shell.py. It is likely that the code in
parse_args is now redundant, but all code paths between
parse_args and process_options should be inspected and
test coverage added before removing that code.

Unit tests have been added in test_shell.py to verify
that command line options are correctly passed to the
client get_auth method.

The MockHttpTest class is re-used in test_shell.py,
so it is moved from test_swiftclient.py
to tests/unit/utils.py

Closes-bug: #1372465

Change-Id: I4fed013cdb8936509609d06093337cc147ade0d6
</pre>
</div>
</content>
</entry>
<entry>
<title>Add per policy container count to account stat output</title>
<updated>2014-09-20T00:07:48+00:00</updated>
<author>
<name>Clay Gerrard</name>
<email>clay.gerrard@gmail.com</email>
</author>
<published>2014-09-20T00:07:48+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-swiftclient.git/commit/?id=40857cfe4c848e3c6bb19a4f0b3987c87d7810b9'/>
<id>40857cfe4c848e3c6bb19a4f0b3987c87d7810b9</id>
<content type='text'>
When the account response includes 'X-Storage-Policy-X-Container-Count' the
command helpers will stick a helpful extra line in the output.

If the swift response doesn't include the information the behavior is
unchanged.

Change-Id: Iaaa55d207ebe6a9c16e52adb56eb858c57cfb26a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the account response includes 'X-Storage-Policy-X-Container-Count' the
command helpers will stick a helpful extra line in the output.

If the swift response doesn't include the information the behavior is
unchanged.

Change-Id: Iaaa55d207ebe6a9c16e52adb56eb858c57cfb26a
</pre>
</div>
</content>
</entry>
<entry>
<title>Stop creating extraneous directories</title>
<updated>2014-09-18T02:32:03+00:00</updated>
<author>
<name>Pete Zaitcev</name>
<email>zaitcev@kotori.zaitcev.us</email>
</author>
<published>2014-09-18T02:27:05+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-swiftclient.git/commit/?id=8f1b394325804c23ac18e7f9da6cb56a3b95eed2'/>
<id>8f1b394325804c23ac18e7f9da6cb56a3b95eed2</id>
<content type='text'>
Cannot help streamlining the code a bit, sorry. But the meat is that
we should not try to make directories if output path is explicit.

Previously we created directories using the URL path, which is
obviously wrong if explicit output file is supplied... unless
a crafty user supplied the same path with -o that is contained
in the URL path. If anyone was doing such tricks, it's not going
to work anymore (we are forcing a regression for the sake of
theoretical correctness here).

Fixes bug: 1369546

Change-Id: Ifce31f2ba233eb55550f3810348bf16bf2447d62
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Cannot help streamlining the code a bit, sorry. But the meat is that
we should not try to make directories if output path is explicit.

Previously we created directories using the URL path, which is
obviously wrong if explicit output file is supplied... unless
a crafty user supplied the same path with -o that is contained
in the URL path. If anyone was doing such tricks, it's not going
to work anymore (we are forcing a regression for the sake of
theoretical correctness here).

Fixes bug: 1369546

Change-Id: Ifce31f2ba233eb55550f3810348bf16bf2447d62
</pre>
</div>
</content>
</entry>
<entry>
<title>Add importable SwiftService incorporating shell.py logic</title>
<updated>2014-08-26T12:14:21+00:00</updated>
<author>
<name>Joel Wright</name>
<email>joel.wright@sohonet.com</email>
</author>
<published>2014-04-04T19:13:01+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-swiftclient.git/commit/?id=24673f8d19fe2f48964f528369081c37e880ec47'/>
<id>24673f8d19fe2f48964f528369081c37e880ec47</id>
<content type='text'>
This patch adds a SwiftService class that incorporates the high
level logic from swiftclient/shell.py. It also ports shell.py to
use the new class, and updates the code in swiftclient/multithreading.py
to allow the SwiftService to be used for multiple operations whilst
using only one thread pool.

Currently, code that imports swiftclient has to have its own logic for
things like creating large objects, parallel uploads, and parallel
downloads. This patch adds a SwiftService class that makes that
functionality available in Python code as well as through the shell.

Change-Id: I08c5796b4c01001d79fd571651c3017c16462ffd
Implements: blueprint bin-swift-logic-as-importable-library
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds a SwiftService class that incorporates the high
level logic from swiftclient/shell.py. It also ports shell.py to
use the new class, and updates the code in swiftclient/multithreading.py
to allow the SwiftService to be used for multiple operations whilst
using only one thread pool.

Currently, code that imports swiftclient has to have its own logic for
things like creating large objects, parallel uploads, and parallel
downloads. This patch adds a SwiftService class that makes that
functionality available in Python code as well as through the shell.

Change-Id: I08c5796b4c01001d79fd571651c3017c16462ffd
Implements: blueprint bin-swift-logic-as-importable-library
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Fix crash when downloading a pseudo-directory"</title>
<updated>2014-08-17T19:08:15+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2014-08-17T19:08:15+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-swiftclient.git/commit/?id=eedb0d4ab5f2fc6ac8b49a80cd2128edcbc5aceb'/>
<id>eedb0d4ab5f2fc6ac8b49a80cd2128edcbc5aceb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Add keystone v3 auth support"</title>
<updated>2014-08-15T23:24:00+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2014-08-15T23:23:59+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-swiftclient.git/commit/?id=23474b7d11b8d9fc97b315062a237c2d5aec19a4'/>
<id>23474b7d11b8d9fc97b315062a237c2d5aec19a4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix crash when downloading a pseudo-directory</title>
<updated>2014-08-14T19:57:53+00:00</updated>
<author>
<name>Pete Zaitcev</name>
<email>zaitcev@kotori.zaitcev.us</email>
</author>
<published>2014-08-14T19:57:53+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-swiftclient.git/commit/?id=3d56b65c898d7997819f2627a2fb722bd0c33b69'/>
<id>3d56b65c898d7997819f2627a2fb722bd0c33b69</id>
<content type='text'>
If a user creates an object with name ending with a slash, then
downloading such container ends in a traceback like this:

..............
test5g.file [auth 1.516s, headers 1.560s, total 244.565s, 22.089 MB/s]
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/swiftclient/multithreading.py", lin
    result = self.func(item, *self.args, **self.kwargs)
  File "/usr/lib/python2.6/site-packages/swiftclient/shell.py", line 403, in
    fp = open(path, 'wb')
IOError: [Errno 21] Is a directory: 'first-pseudo-folder/'

The proposed fix is not to save this object. Note that the contents of
the object are available with --output option, as before. Only the
crash is fixed.

Even though we do not use the contents, we download the object and
check its Etag, in case. We also create a corresponding directory,
in case the pseudo-directory contains no objects.

The format of printout is changed, so user realizes easier when
pseudo-directory convention is in effect. Note that this is not a
compatibility issue because previously there was crash in such case.

Change-Id: I3352f7a4eaf9970961af0cc84c4706fc1eab281d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a user creates an object with name ending with a slash, then
downloading such container ends in a traceback like this:

..............
test5g.file [auth 1.516s, headers 1.560s, total 244.565s, 22.089 MB/s]
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/swiftclient/multithreading.py", lin
    result = self.func(item, *self.args, **self.kwargs)
  File "/usr/lib/python2.6/site-packages/swiftclient/shell.py", line 403, in
    fp = open(path, 'wb')
IOError: [Errno 21] Is a directory: 'first-pseudo-folder/'

The proposed fix is not to save this object. Note that the contents of
the object are available with --output option, as before. Only the
crash is fixed.

Even though we do not use the contents, we download the object and
check its Etag, in case. We also create a corresponding directory,
in case the pseudo-directory contains no objects.

The format of printout is changed, so user realizes easier when
pseudo-directory convention is in effect. Note that this is not a
compatibility issue because previously there was crash in such case.

Change-Id: I3352f7a4eaf9970961af0cc84c4706fc1eab281d
</pre>
</div>
</content>
</entry>
</feed>
