<html><body><p>During the Liberty release the OpenStackClient (OSC) team ran into an issue that is documented here: [0] and here: [1]. In short, commands were clobbering each other because they had the same command name.<br><br>A longer example is this, OSC has a command for listing compute flavors (os flavor list). zaqarclient, an OSC plugin, also implemented an `os flavor list` command. This caused OSC to break (it became unusable because it couldn't load entry points), and the user had to upgrade their zaqarclient, which included a renamed command (os messaging flavor list).<br><br>In an effort to make sure this doesn't happen against, we did two things: 1) fixed the exception handling upon load at the cliff level, now OSC won't become unusable, it'll just take the last entrypoint it sees, and 2) we created a new gate/check job that checks for duplicate commands [2]. (Thanks to ajaeger and dhellmann for their help in this work!)<br><br>I've added this job to the OpenStackClient gate (in a non-voting capacity for now), and would like to get it added to the following projects, again in a non-voting capacity (since they are all OSC plugins):<br><br>  - python-barbicanclient<br>  - python-congressclient<br>  - python-cueclient<br>  - python-designateclient<br>  - python-heatclient<br>  - python-ironicclient<br>  - python-ironic-inspector-client<br>  - python-mistralclient<br>  - python-saharaclient<br>  - python-tuskarclient<br>  - python-zaqarclient<br><br>If the core team for any of those projects objects to me adding a new check job then reply to this thread or this patch [3]<br><br>Regarding the eventual question about the value of a non-voting job: AFAICT, the new check job is working fine, it's catching valid errors and succeeded where it should. I'd like to make this voting eventually, but it's only been running in the OSC gate for about a week, and I'd like a few non-voting runs in the plugin projects to ensure we don't have any hiccups before making this a voting job.<br><br>[0] <a href="http://lists.openstack.org/pipermail/openstack-dev/2015-October/076272.html">http://lists.openstack.org/pipermail/openstack-dev/2015-October/076272.html</a><br>[1] <a href="https://bugs.launchpad.net/python-openstackclient/+bug/1503512">https://bugs.launchpad.net/python-openstackclient/+bug/1503512</a><br>[2] <a href="https://review.openstack.org/#/c/261828/">https://review.openstack.org/#/c/261828/</a><br>[3] <a href="https://review.openstack.org/#/c/265608/">https://review.openstack.org/#/c/265608/</a><br><br>Thanks,<br><br>Steve Martinelli<br>OpenStack Keystone Project Team Lead<BR>
</body></html>