<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/openstack/python-openstackclient.git/openstackclient/common, branch 2.4.0</title>
<subtitle>opendev.org: openstack/python-openstackclient
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/'/>
<entry>
<title>Propagate AttributeErrors when lazily loading plugins</title>
<updated>2016-04-15T04:12:35+00:00</updated>
<author>
<name>Tim Burke</name>
<email>tim.burke@gmail.com</email>
</author>
<published>2016-04-14T21:18:16+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=926330d3726e9ce7001190730c69bf6ee45b422a'/>
<id>926330d3726e9ce7001190730c69bf6ee45b422a</id>
<content type='text'>
Previously, if an AttributeError was raised in a plugin's make_client
method, the plugin simply wouldn't be an attribute of the ClientManager,
producing tracebacks like

Traceback (most recent call last):
  File ".../openstackclient/shell.py", line 118, in run
    ret_val = super(OpenStackShell, self).run(argv)

  ...

  File ".../openstackclient/object/v1/container.py", line 150, in take_action
    data = self.app.client_manager.object_store.container_list(
  File ".../openstackclient/common/clientmanager.py", line 66, in __getattr__
    raise AttributeError(name)
AttributeError: object_store

This made writing minimal third-party auth plugins difficult, as it
obliterated the original AttributeError.

Now, AttributeErrors that are raised during plugin initialization will
be re-raised as PluginAttributeErrors, and the original traceback will
be preserved. This gives much more useful information to plugin
developers, as in

Traceback (most recent call last):
  File ".../openstackclient/shell.py", line 118, in run
    ret_val = super(OpenStackShell, self).run(argv)

  ...

  File ".../openstackclient/object/v1/container.py", line 150, in take_action
    data = self.app.client_manager.object_store.container_list(
  File ".../openstackclient/common/clientmanager.py", line 57, in __get__
    err_val, err_tb)
  File ".../openstackclient/common/clientmanager.py", line 51, in __get__
    self._handle = self.factory(instance)
  File ".../openstackclient/object/client.py", line 35, in make_client
    interface=instance._interface,
  File ".../openstackclient/common/clientmanager.py", line 258,
  in get_endpoint_for_service_type
    endpoint = self.auth_ref.service_catalog.url_for(
PluginAttributeError: 'NoneType' object has no attribute 'url_for'

Change-Id: I0eee7eba6eccc6d471a699a381185c4e76da10bd
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, if an AttributeError was raised in a plugin's make_client
method, the plugin simply wouldn't be an attribute of the ClientManager,
producing tracebacks like

Traceback (most recent call last):
  File ".../openstackclient/shell.py", line 118, in run
    ret_val = super(OpenStackShell, self).run(argv)

  ...

  File ".../openstackclient/object/v1/container.py", line 150, in take_action
    data = self.app.client_manager.object_store.container_list(
  File ".../openstackclient/common/clientmanager.py", line 66, in __getattr__
    raise AttributeError(name)
AttributeError: object_store

This made writing minimal third-party auth plugins difficult, as it
obliterated the original AttributeError.

Now, AttributeErrors that are raised during plugin initialization will
be re-raised as PluginAttributeErrors, and the original traceback will
be preserved. This gives much more useful information to plugin
developers, as in

Traceback (most recent call last):
  File ".../openstackclient/shell.py", line 118, in run
    ret_val = super(OpenStackShell, self).run(argv)

  ...

  File ".../openstackclient/object/v1/container.py", line 150, in take_action
    data = self.app.client_manager.object_store.container_list(
  File ".../openstackclient/common/clientmanager.py", line 57, in __get__
    err_val, err_tb)
  File ".../openstackclient/common/clientmanager.py", line 51, in __get__
    self._handle = self.factory(instance)
  File ".../openstackclient/object/client.py", line 35, in make_client
    interface=instance._interface,
  File ".../openstackclient/common/clientmanager.py", line 258,
  in get_endpoint_for_service_type
    endpoint = self.auth_ref.service_catalog.url_for(
PluginAttributeError: 'NoneType' object has no attribute 'url_for'

Change-Id: I0eee7eba6eccc6d471a699a381185c4e76da10bd
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Support client certificate/key"</title>
<updated>2016-04-06T21:42:56+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2016-04-06T21:42:56+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=0edab95fd1989dcc06a166a820b115a75dd17d54'/>
<id>0edab95fd1989dcc06a166a820b115a75dd17d54</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Support client certificate/key</title>
<updated>2016-04-06T18:21:19+00:00</updated>
<author>
<name>Cedric Brandily</name>
<email>zzelle@gmail.com</email>
</author>
<published>2016-04-01T21:42:27+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=3a8320a1d73444b3bb823300e94c3e2ee85fd6ef'/>
<id>3a8320a1d73444b3bb823300e94c3e2ee85fd6ef</id>
<content type='text'>
This change enables to specify a client certificate/key with:
 * usual CLI options (--os-cert/--os-key)
 * usual environment variables ($OS_CERT/$OS_KEY)
 * os-client-config

Change-Id: Ibeaaa5897ae37b37c1e91f3e47076e4e8e4a8ded
Closes-Bug: #1565112
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change enables to specify a client certificate/key with:
 * usual CLI options (--os-cert/--os-key)
 * usual environment variables ($OS_CERT/$OS_KEY)
 * os-client-config

Change-Id: Ibeaaa5897ae37b37c1e91f3e47076e4e8e4a8ded
Closes-Bug: #1565112
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't mask authorization errors</title>
<updated>2016-04-01T20:44:33+00:00</updated>
<author>
<name>Hidekazu Nakamura</name>
<email>hid-nakamura@vf.jp.nec.com</email>
</author>
<published>2015-11-05T15:47:38+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=55b37d5e33f322077303a895d3453320b3895f11'/>
<id>55b37d5e33f322077303a895d3453320b3895f11</id>
<content type='text'>
Project show with name argument returns 'Could not find resource'
error when the user is not authorized. It should report the
authorization error instead. This patch makes that change.

Change-Id: Iac3521f8a411060b0ec9ef46c8f0e1f3551e56ae
Closes-Bug: #1511625
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Project show with name argument returns 'Could not find resource'
error when the user is not authorized. It should report the
authorization error instead. This patch makes that change.

Change-Id: Iac3521f8a411060b0ec9ef46c8f0e1f3551e56ae
Closes-Bug: #1511625
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unused method 'from_response'</title>
<updated>2016-03-29T09:28:24+00:00</updated>
<author>
<name>Wenzhi Yu</name>
<email>wenzhi_yu@163.com</email>
</author>
<published>2016-03-29T09:20:05+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=848d5312fffa358a789a46a8657af3a92cb3ef6f'/>
<id>848d5312fffa358a789a46a8657af3a92cb3ef6f</id>
<content type='text'>
'openstackclient.common.exceptions.from_response' method is never called
in openstackclient code base, so we should remove it.

Change-Id: I04254a4e66863942e6c273d77bbd66ce2ce7804c
Related-Bug: #1559072
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
'openstackclient.common.exceptions.from_response' method is never called
in openstackclient code base, so we should remove it.

Change-Id: I04254a4e66863942e6c273d77bbd66ce2ce7804c
Related-Bug: #1559072
</pre>
</div>
</content>
</entry>
<entry>
<title>Trivial: Fix typo in common/limits.py</title>
<updated>2016-03-23T08:04:21+00:00</updated>
<author>
<name>Tang Chen</name>
<email>chen.tang@easystack.cn</email>
</author>
<published>2016-03-23T08:04:21+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=3e0e1f8c4198d8d85cb88dbc29f6717659b1dccc'/>
<id>3e0e1f8c4198d8d85cb88dbc29f6717659b1dccc</id>
<content type='text'>
Change-Id: I3040cc69512df50459960f96b862de55804068ac
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I3040cc69512df50459960f96b862de55804068ac
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix dict.keys() compatibility for python 3</title>
<updated>2016-03-12T02:58:28+00:00</updated>
<author>
<name>Tang Chen</name>
<email>chen.tang@easystack.cn</email>
</author>
<published>2016-03-12T02:58:28+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=dc7e4fc15d80eed5a814f0b87e1860f0cd86c2ee'/>
<id>dc7e4fc15d80eed5a814f0b87e1860f0cd86c2ee</id>
<content type='text'>
In Python 2, dict.keys() will return a list.
But in Python 3, it will return an iterator.
So we need to fix all the places that assuming
dict.keys() is a list.

Change-Id: I8d1cc536377b3e5c644cfaa0892e40d0bd7c11b1
Closes-Bug: #1556350
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In Python 2, dict.keys() will return a list.
But in Python 3, it will return an iterator.
So we need to fix all the places that assuming
dict.keys() is a list.

Change-Id: I8d1cc536377b3e5c644cfaa0892e40d0bd7c11b1
Closes-Bug: #1556350
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed command list</title>
<updated>2016-03-09T16:00:39+00:00</updated>
<author>
<name>Brandon Palm</name>
<email>bapalm@us.ibm.com</email>
</author>
<published>2016-02-17T20:01:23+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=f0c3b4e69dc56934305442b505d5f5f68579f1f2'/>
<id>f0c3b4e69dc56934305442b505d5f5f68579f1f2</id>
<content type='text'>
The cliff module expects an array of tuples however
the array that this function was returning was an array
of tuples that was also containing an array of values for
the commands attached to each group and the
cliff module wasn't liking it.

The output now comes out looking like:

| openstack.common | limits show |
|                  | extension list |
| openstack.baremetal.v1 | baremetal set |

Change-Id: Ifa1c149cb5c66ba27dc72bf72d7c8f2f50e42f73
Closes-Bug: 1545609
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The cliff module expects an array of tuples however
the array that this function was returning was an array
of tuples that was also containing an array of values for
the commands attached to each group and the
cliff module wasn't liking it.

The output now comes out looking like:

| openstack.common | limits show |
|                  | extension list |
| openstack.baremetal.v1 | baremetal set |

Change-Id: Ifa1c149cb5c66ba27dc72bf72d7c8f2f50e42f73
Closes-Bug: 1545609
</pre>
</div>
</content>
</entry>
<entry>
<title>Trivial: Remove useless return</title>
<updated>2016-03-07T09:54:06+00:00</updated>
<author>
<name>Tang Chen</name>
<email>chen.tang@easystack.cn</email>
</author>
<published>2016-03-07T09:54:06+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=fc24f37ae28e1b7f6b9587a8062a314d660a0136'/>
<id>fc24f37ae28e1b7f6b9587a8062a314d660a0136</id>
<content type='text'>
If a function returns nothing, do not add return in the end.

Change-Id: I298b8717462f68d3076a1619d674775be2a94c42
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a function returns nothing, do not add return in the end.

Change-Id: I298b8717462f68d3076a1619d674775be2a94c42
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: Exception message includes unnecessary class args</title>
<updated>2016-02-29T22:06:05+00:00</updated>
<author>
<name>Jas</name>
<email>singhj@us.ibm.com</email>
</author>
<published>2016-02-29T22:06:05+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=b8d72cee27dd81b5749c64945475ea8781cb5fdf'/>
<id>b8d72cee27dd81b5749c64945475ea8781cb5fdf</id>
<content type='text'>
Fix misusages of ArgumentTypeError which causes a tuple of
class instance and error message string to be printed rather than just the
error message string itsself.

Change-Id: I0e997f86bb6603930cc92e90efcb48155f62ffb5
Closes-bug: #1551426
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix misusages of ArgumentTypeError which causes a tuple of
class instance and error message string to be printed rather than just the
error message string itsself.

Change-Id: I0e997f86bb6603930cc92e90efcb48155f62ffb5
Closes-bug: #1551426
</pre>
</div>
</content>
</entry>
</feed>
