better exception handling for entrypoints
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
python-openstackclient |
Invalid
|
Medium
|
Unassigned |
Bug Description
this is adapted from a mailing list post:
http://
This is just a suggestion for contributors to python-
I saw a few packages that had conflicts with the namespace of others
within openstackclient. To the point that typing "openstack help" just
fails. Here's an example:
# openstack help
[ ...]
project create Create new project
project delete Delete project(s)
project list List projects
project set Set project properties
project show Display project details
Could not load EntryPoint.
designateclient
'ArgumentParser' object has no attribute 'debug'
This first happened to me with saharaclient. Lucky, upgrading to latest
version fixed it. Then I had the problem with zaqarclient, which I fixed
with a few patches to its setup.cfg. Then now designate, but this time,
patching setup.cfg doesn't seem to cut it (ie: after changing the name
of the command, "openstack help" just fails).
Note: I don't care which project is at fault, this isn't the point here.
The point is that command name conflicts aren't handled (see below)
which is the problem.
With Horizon being a large consumer of nearly all python-*client
packages, removing one of them also removes Horizon in my CI which is
not what I want to (or can) do to debug a tempest problem. End of the
story: since Liberty b3, I never could have "openstack help" to work
correctly in my CI... :(
Which leads me to write this:
Since we have a very large amount of projects, with each and everyone of
them adding new commands to openstackclient, I would really nice if we
could have some kind of checks to make sure that conflicts are either 1/
not possible or 2/ handled gracefully.
Changed in python-openstackclient: | |
importance: | Undecided → Medium |
Changed in python-openstackclient: | |
status: | New → Triaged |
This bug still actual on openstack client version 2.2.0.
Simplest test fails: 'help')
raw_output = self.openstack(
Error output: paste.openstack .org/show/ 490519/
http://
Failure occurs right after output of string:
configuration show Display configuration details
Next strings are:
console log show Show server's console output
console url show Show server's remote console URL
Those strings are only strings containing single quotes. Possibly parser fails on strings with single quotes.