<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/openstack/python-glanceclient.git/glanceclient/tests/unit, branch pike-eol</title>
<subtitle>opendev.org: openstack/python-glanceclient.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-glanceclient.git/'/>
<entry>
<title>Validate input args before trying image download</title>
<updated>2017-07-24T09:24:57+00:00</updated>
<author>
<name>Ravi Shekhar Jethani</name>
<email>rsjethani@gmail.com</email>
</author>
<published>2016-10-18T08:13:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-glanceclient.git/commit/?id=1df55dd952fe52c1c1fc2583326d017275b01ddc'/>
<id>1df55dd952fe52c1c1fc2583326d017275b01ddc</id>
<content type='text'>
Currently client is contacting glance service even if the
caller has niether specified any redirection nor '--file'
option. This unnecessary request although isn't causing
any critical issues but can be avoided by simply doing
input validation first.

TrivialFix

Change-Id: I841bebeda38814235079429eca0b1e5fd2f04dae
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently client is contacting glance service even if the
caller has niether specified any redirection nor '--file'
option. This unnecessary request although isn't causing
any critical issues but can be avoided by simply doing
input validation first.

TrivialFix

Change-Id: I841bebeda38814235079429eca0b1e5fd2f04dae
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Replace assertTrue(isinstance()) with assertIsInstance()"</title>
<updated>2017-06-30T21:03:45+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2017-06-30T21:03:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-glanceclient.git/commit/?id=a53b302764d68900bf0fef16a2a2a8e6a6790c80'/>
<id>a53b302764d68900bf0fef16a2a2a8e6a6790c80</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Replace six.iteritems() with .items()"</title>
<updated>2017-06-28T14:49:38+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2017-06-28T14:49:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-glanceclient.git/commit/?id=05453b19b26ca86459fff477e84e1b041e98a520'/>
<id>05453b19b26ca86459fff477e84e1b041e98a520</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>allow unhandled exceptions to cause test errors</title>
<updated>2017-06-26T14:59:29+00:00</updated>
<author>
<name>Doug Hellmann</name>
<email>doug@doughellmann.com</email>
</author>
<published>2017-06-26T14:57:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-glanceclient.git/commit/?id=c8a7a5d56de30cb596d21553f5dbf7ea3db866d8'/>
<id>c8a7a5d56de30cb596d21553f5dbf7ea3db866d8</id>
<content type='text'>
Hiding the unhandled exception in the test with a failure makes it
harder to debug the problem. Let them pass unhandled so the test reports
an ERROR instead of FAILURE.

Change-Id: I4e435a6d276fdf161dac28f08c2c7efedd1d6385
Signed-off-by: Doug Hellmann &lt;doug@doughellmann.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Hiding the unhandled exception in the test with a failure makes it
harder to debug the problem. Let them pass unhandled so the test reports
an ERROR instead of FAILURE.

Change-Id: I4e435a6d276fdf161dac28f08c2c7efedd1d6385
Signed-off-by: Doug Hellmann &lt;doug@doughellmann.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace assertTrue(isinstance()) with assertIsInstance()</title>
<updated>2017-06-14T04:03:10+00:00</updated>
<author>
<name>Van Hung Pham</name>
<email>hungpv@vn.fujitsu.com</email>
</author>
<published>2017-06-14T04:03:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-glanceclient.git/commit/?id=7791110b2fe4b01dc58078ce3358b4b8a5ead0f4'/>
<id>7791110b2fe4b01dc58078ce3358b4b8a5ead0f4</id>
<content type='text'>
Some of tests use different method of assertTrue(isinstance(A, B))
or assertEqual(type(A), B). The correct way is to use
assertIsInstance(A, B) provided by test tools.

Change-Id: Ibb5e5f848c5632f7c1895c47b8c1a938f2c746c3
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some of tests use different method of assertTrue(isinstance(A, B))
or assertEqual(type(A), B). The correct way is to use
assertIsInstance(A, B) provided by test tools.

Change-Id: Ibb5e5f848c5632f7c1895c47b8c1a938f2c746c3
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Allow global_request_id in Client constructor"</title>
<updated>2017-06-01T17:22:55+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2017-06-01T17:22:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-glanceclient.git/commit/?id=d67b33b2e5fcee4545fe4ccb1e58c8d6ed12883c'/>
<id>d67b33b2e5fcee4545fe4ccb1e58c8d6ed12883c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow global_request_id in Client constructor</title>
<updated>2017-06-01T14:32:03+00:00</updated>
<author>
<name>Sean Dague</name>
<email>sean@dague.net</email>
</author>
<published>2017-05-24T11:17:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-glanceclient.git/commit/?id=ec76e254da4f4727463dcb3a76adf33e5d3f7ffb'/>
<id>ec76e254da4f4727463dcb3a76adf33e5d3f7ffb</id>
<content type='text'>
This allows us to pass in a global_request_id in the client
constructor so that subsequent calls with this client pass that to the
servers. This enables cross project request_id tracking.

oslo spec I65de8261746b25d45e105394f4eeb95b9cb3bd42

Change-Id: Iea1e754a263a01dae5ed598fdda134394aff54b0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows us to pass in a global_request_id in the client
constructor so that subsequent calls with this client pass that to the
servers. This enables cross project request_id tracking.

oslo spec I65de8261746b25d45e105394f4eeb95b9cb3bd42

Change-Id: Iea1e754a263a01dae5ed598fdda134394aff54b0
</pre>
</div>
</content>
</entry>
<entry>
<title>Downloading image with --progress fails</title>
<updated>2017-05-29T12:26:11+00:00</updated>
<author>
<name>Abhishek Kekane</name>
<email>abhishek.kekane@nttdata.com</email>
</author>
<published>2017-03-09T07:50:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-glanceclient.git/commit/?id=60c06d526c228de314ad659bda57c42750852ef9'/>
<id>60c06d526c228de314ad659bda57c42750852ef9</id>
<content type='text'>
Downloading image with --progress fails with "RequestIdProxy object is
not an iterator". This is because to display download progress
VerboseFileWrapper in progressbar requires object of IterableWithLength,
but after support of returning request-id [1] to caller it returns
RequestIdProxy object which is wrapped around IterableWithLength
and response.

To resolve this issue overridden next and __next__ methods in
RequestIdProxy so that it can act as iterator for python 2.x
and 3.x as well.

[1] 610177a779b95f931356c1e90b05a5bffd2616b3

Closes-Bug: #1670464
Change-Id: I188e67c2487b7e4178ea246f02154bbcbc35a2b1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Downloading image with --progress fails with "RequestIdProxy object is
not an iterator". This is because to display download progress
VerboseFileWrapper in progressbar requires object of IterableWithLength,
but after support of returning request-id [1] to caller it returns
RequestIdProxy object which is wrapped around IterableWithLength
and response.

To resolve this issue overridden next and __next__ methods in
RequestIdProxy so that it can act as iterator for python 2.x
and 3.x as well.

[1] 610177a779b95f931356c1e90b05a5bffd2616b3

Closes-Bug: #1670464
Change-Id: I188e67c2487b7e4178ea246f02154bbcbc35a2b1
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Downloading image with --progress fails for python3"</title>
<updated>2017-05-29T11:54:55+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2017-05-29T11:54:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-glanceclient.git/commit/?id=3338ed91d4b9a0a33885d48969d71de0d30bed7e'/>
<id>3338ed91d4b9a0a33885d48969d71de0d30bed7e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>v2: Content-Type: application/octet-stream header always added</title>
<updated>2017-05-19T19:02:00+00:00</updated>
<author>
<name>ckonstanski</name>
<email>ckonstanski@pippiandcarlos.com</email>
</author>
<published>2016-11-12T01:39:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-glanceclient.git/commit/?id=03900522d4816fe5dc2958fa1eb30ab447cc8ee5'/>
<id>03900522d4816fe5dc2958fa1eb30ab447cc8ee5</id>
<content type='text'>
The bug: any existing Content-Type header cannot be found because the
call to headers.get() fails. Therefore we end up with two Content-Type
headers because a new one (applicaion/octet-stream) gets added
unconditionally. The cause: the strings (keys and values) in the headers
dict are converted from unicode sequences of type &lt;str&gt; to utf-8
sequences of type &lt;bytes&gt;. This happens in safe_encode()
(oslo_utils/encodeutils.py:66). &lt;str&gt; != &lt;bytes&gt; even if they appear to
have the same characters.

Hence, for python 3.x, _set_common_request_kwargs() adds content-type
to header even if custom content-type is set in the request.

This results in unsupported media type exception when glance client
is used with keystoneauth and python 3.x

The fix: follow the directions in encode_headers().
It says to do this just before sending the request. Honor this principle;
do not encode headers and then perform more business logic on them.

Change-Id: Idf6079b32f70bc171f5016467048e917d42f296d
Closes-bug: #1641239
Co-Authored-By: Pushkar Umaranikar &lt;pushkar.umaranikar@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The bug: any existing Content-Type header cannot be found because the
call to headers.get() fails. Therefore we end up with two Content-Type
headers because a new one (applicaion/octet-stream) gets added
unconditionally. The cause: the strings (keys and values) in the headers
dict are converted from unicode sequences of type &lt;str&gt; to utf-8
sequences of type &lt;bytes&gt;. This happens in safe_encode()
(oslo_utils/encodeutils.py:66). &lt;str&gt; != &lt;bytes&gt; even if they appear to
have the same characters.

Hence, for python 3.x, _set_common_request_kwargs() adds content-type
to header even if custom content-type is set in the request.

This results in unsupported media type exception when glance client
is used with keystoneauth and python 3.x

The fix: follow the directions in encode_headers().
It says to do this just before sending the request. Honor this principle;
do not encode headers and then perform more business logic on them.

Change-Id: Idf6079b32f70bc171f5016467048e917d42f296d
Closes-bug: #1641239
Co-Authored-By: Pushkar Umaranikar &lt;pushkar.umaranikar@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
