<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/openstack/python-keystoneclient.git/keystoneclient/auth, branch 2.1.2</title>
<subtitle>opendev.org: openstack/python-keystoneclient.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-keystoneclient.git/'/>
<entry>
<title>Swap the order of username deprecation</title>
<updated>2015-11-19T15:48:28+00:00</updated>
<author>
<name>Monty Taylor</name>
<email>mordred@inaugust.com</email>
</author>
<published>2015-11-19T15:22:31+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-keystoneclient.git/commit/?id=13bb2f74b0d65c1fef30f77d710d56e51e5f7841'/>
<id>13bb2f74b0d65c1fef30f77d710d56e51e5f7841</id>
<content type='text'>
The attempt at a move to user-name is an exercise in churn, and is
filling everyone's logs with admonitions to change the name of their
variables - which does not work if they do. Swap this, effectively
reverting the attempt at a move. user-name will continue to work on
the off chance anyone started consuming that path, which is unlikely
because none of the consuming programs expose that as an actual option.

Closes-Bug: 1498247

Change-Id: I62d991fda1df63c9cbabfde2f6836bc031f5147c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The attempt at a move to user-name is an exercise in churn, and is
filling everyone's logs with admonitions to change the name of their
variables - which does not work if they do. Swap this, effectively
reverting the attempt at a move. user-name will continue to work on
the off chance anyone started consuming that path, which is unlikely
because none of the consuming programs expose that as an actual option.

Closes-Bug: 1498247

Change-Id: I62d991fda1df63c9cbabfde2f6836bc031f5147c
</pre>
</div>
</content>
</entry>
<entry>
<title>Pull the endpoint from the Session</title>
<updated>2015-11-09T00:10:58+00:00</updated>
<author>
<name>Monty Taylor</name>
<email>mordred@inaugust.com</email>
</author>
<published>2015-11-06T14:09:08+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-keystoneclient.git/commit/?id=d9031c252848d89270a543b67109a46f9c505c86'/>
<id>d9031c252848d89270a543b67109a46f9c505c86</id>
<content type='text'>
If the user passes a Session in, we can pull the endpoint to use for
discovery from the Session itself, rather than erroring.

Closes-Bug: #1513839
Co-Authored-By: Dolph Mathews &lt;dolph.mathews@gmail.com&gt;
Change-Id: I82a41c67f80d2494f04739d82b112b7ff1dc4682
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the user passes a Session in, we can pull the endpoint to use for
discovery from the Session itself, rather than erroring.

Closes-Bug: #1513839
Co-Authored-By: Dolph Mathews &lt;dolph.mathews@gmail.com&gt;
Change-Id: I82a41c67f80d2494f04739d82b112b7ff1dc4682
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Mark abstractmethod bodies with nocover"</title>
<updated>2015-10-22T08:19:50+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2015-10-22T08:19:50+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-keystoneclient.git/commit/?id=1c0d4f9e0fc3c3bb903a7300a2b92bb9ef9b6538'/>
<id>1c0d4f9e0fc3c3bb903a7300a2b92bb9ef9b6538</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Docstring spelling and function-vs-method fixes"</title>
<updated>2015-10-21T20:52:11+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2015-10-21T20:52:11+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-keystoneclient.git/commit/?id=68cbf249463c8e9cfa787ad42267bbe07b73a13b'/>
<id>68cbf249463c8e9cfa787ad42267bbe07b73a13b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Mark abstractmethod bodies with nocover</title>
<updated>2015-10-21T18:35:53+00:00</updated>
<author>
<name>Brant Knudson</name>
<email>bknudson@us.ibm.com</email>
</author>
<published>2015-10-21T18:35:53+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-keystoneclient.git/commit/?id=a8d2bd29347d02298a6a809f6ca52107aae00a4a'/>
<id>a8d2bd29347d02298a6a809f6ca52107aae00a4a</id>
<content type='text'>
abstractmethod bodies aren't going to be called by unit tests, so
there's no way to get coverage. The code in an abstractmethod body
should be marked with "# pragma: no cover" so that they don't show
up as missed in the coverage report.

Change-Id: I88a7481ab22f2ce1abfd62badc5f5048acc6929f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
abstractmethod bodies aren't going to be called by unit tests, so
there's no way to get coverage. The code in an abstractmethod body
should be marked with "# pragma: no cover" so that they don't show
up as missed in the coverage report.

Change-Id: I88a7481ab22f2ce1abfd62badc5f5048acc6929f
</pre>
</div>
</content>
</entry>
<entry>
<title>Docstring spelling and function-vs-method fixes</title>
<updated>2015-10-21T15:37:18+00:00</updated>
<author>
<name>Dolph Mathews</name>
<email>dolph.mathews@gmail.com</email>
</author>
<published>2015-10-21T15:37:18+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-keystoneclient.git/commit/?id=b588609a06abb91691e3caeb14c3a474b7aadb5c'/>
<id>b588609a06abb91691e3caeb14c3a474b7aadb5c</id>
<content type='text'>
These are all object methods, not independent functions.

Change-Id: I3c232d922e61a94c7dc2c2b9a8d3768fd42be1a7
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are all object methods, not independent functions.

Change-Id: I3c232d922e61a94c7dc2c2b9a8d3768fd42be1a7
</pre>
</div>
</content>
</entry>
<entry>
<title>pass on @abc.abstractmethods</title>
<updated>2015-10-21T15:32:33+00:00</updated>
<author>
<name>Dolph Mathews</name>
<email>dolph.mathews@gmail.com</email>
</author>
<published>2015-10-21T15:32:33+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-keystoneclient.git/commit/?id=574fad7abb328276396d7d4c2743982bb903078c'/>
<id>574fad7abb328276396d7d4c2743982bb903078c</id>
<content type='text'>
Although a bare docstring is entirely valid grammar, those new to Python find
that pattern baffling, *especially* when other similar methods contain pass
statements. So, for consistency, add a pass statement to otherwise bare
@abc.abstractmethods.

Note that the implementation of an @abc.abstractmethod (in the abstract
base class) can still be called by concrete children, so suddenly
raising a NotImplementedError() instead might be "surprising" to
implementors. A no-op such as "pass" or "return None" is preferable.

Change-Id: I79969ad1a3429516ea785c649a165ead54944225
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Although a bare docstring is entirely valid grammar, those new to Python find
that pattern baffling, *especially* when other similar methods contain pass
statements. So, for consistency, add a pass statement to otherwise bare
@abc.abstractmethods.

Note that the implementation of an @abc.abstractmethod (in the abstract
base class) can still be called by concrete children, so suddenly
raising a NotImplementedError() instead might be "surprising" to
implementors. A no-op such as "pass" or "return None" is preferable.

Change-Id: I79969ad1a3429516ea785c649a165ead54944225
</pre>
</div>
</content>
</entry>
<entry>
<title>Make __all__ immutable</title>
<updated>2015-10-01T18:18:13+00:00</updated>
<author>
<name>Dolph Mathews</name>
<email>dolph.mathews@gmail.com</email>
</author>
<published>2015-10-01T16:56:33+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-keystoneclient.git/commit/?id=eb77abd77a25baa556de4df527404b907748d3c6'/>
<id>eb77abd77a25baa556de4df527404b907748d3c6</id>
<content type='text'>
Using a mutable type implies that it's acceptable for the set of
publicly-accessible attributes to be mutated at runtime, which defeats
their intended purpose of documenting the public interface. Tuples are
immutable.

Change-Id: Ib3ab93224ba240040b08ece481ef5ba620c3f658
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Using a mutable type implies that it's acceptable for the set of
publicly-accessible attributes to be mutated at runtime, which defeats
their intended purpose of documenting the public interface. Tuples are
immutable.

Change-Id: Ib3ab93224ba240040b08ece481ef5ba620c3f658
</pre>
</div>
</content>
</entry>
<entry>
<title>Identity plugin thread safety</title>
<updated>2015-09-10T00:18:36+00:00</updated>
<author>
<name>Jamie Lennox</name>
<email>jamielennox@redhat.com</email>
</author>
<published>2015-09-09T12:38:04+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-keystoneclient.git/commit/?id=556c1a6633931207370106478fa2d155fbffb126'/>
<id>556c1a6633931207370106478fa2d155fbffb126</id>
<content type='text'>
A common case is for Nova (or other service) to create a service
authentication plugin from a configuration file and then have many
greenlet threads that want to reuse that authentication. If a token
expires then many threads all try and fetch a new token to use and can
step over each other.

I was hoping for a way to put a lock in so that all plugins were thread
safe however fixing it for identity plugins solves almost all real world
situations and anyone doing non-identity plugins will have to manage
threads themselves.

Change-Id: Ib6487de7de638abc69660c851bd048a8ec177109
Closes-Bug: #1493835
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A common case is for Nova (or other service) to create a service
authentication plugin from a configuration file and then have many
greenlet threads that want to reuse that authentication. If a token
expires then many threads all try and fetch a new token to use and can
step over each other.

I was hoping for a way to put a lock in so that all plugins were thread
safe however fixing it for identity plugins solves almost all real world
situations and anyone doing non-identity plugins will have to manage
threads themselves.

Change-Id: Ib6487de7de638abc69660c851bd048a8ec177109
Closes-Bug: #1493835
</pre>
</div>
</content>
</entry>
<entry>
<title>Stop using .keys() on dicts where not needed</title>
<updated>2015-08-06T19:44:12+00:00</updated>
<author>
<name>Brant Knudson</name>
<email>bknudson@us.ibm.com</email>
</author>
<published>2015-06-24T00:45:57+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/python-keystoneclient.git/commit/?id=b54d9f122c898ad8f5f36d0be39391feb13fa194'/>
<id>b54d9f122c898ad8f5f36d0be39391feb13fa194</id>
<content type='text'>
Iterating over a dict results in the keys.

Using the 'in' operator on a dict checks if it's a key.

Change-Id: I6affbfa1a79a9e8c0b5b304078a7a8e4e792eecd
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Iterating over a dict results in the keys.

Using the 'in' operator on a dict checks if it's a key.

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