<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 30, 2015 at 8:37 AM, Sofer Athlan-Guyot <span dir="ltr"><<a href="mailto:sathlang@redhat.com" target="_blank">sathlang@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I have added neutron people as they may help to find a solution.<br>
<br>
After banging my head against the wall for a whole afternoon I<br>
discovered a serious bug in puppet neutron module.<br>
<br>
I not going to repeat here the detail of the bug report[1].  Basically:<br>
 - neutron_port<br>
 - neutron_subnet<br>
 - neutron_router<br>
 - neutron_network<br>
<br>
may break idempotency randomly and won't work at all when clifftablib is<br>
removed from the package dependency of python-openstackclient<br>
(Mitaka[2])<br>
<br>
So the problem is that neutron cli json output on liberty (at least, and<br>
maybe before) is not consistent and may come from cliff or clifftablib.<br>
I didn't test it but the same may apply to openstack cli. As we don't<br>
use the openstack cli json output it's not a issue (for puppet modules)<br>
<br>
The available solution I can see are:<br>
 1. go back to parsing csv, shell output (revert [3])<br>
 2. find a way to leverage openstacklib parsing for neutron as well<br>
 3. keep json and parse the right output (cliff) and find a way to make<br>
    sure that it is always used by stevedore<br>
 4. ?<br>
<br></blockquote><div>Last I checked, which was quite a while ago, openstackclient didn't support everything we were using from the neutron client. I would like to reevaluate that and go with option 2 if we can. Otherwise option 1 seems reasonable.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
>From my point of view 3) is not a option, but other may disagree.<br>
<br>
The problem is tricky and the fact that the CI cannot detect this is<br>
trickier[4].<br>
<br>
So before Mitaka, the json parsing should go.  I would love to see an<br>
interface that all puppet modules would use (solution 2).  The current<br>
openstacklib parses openstack client well enough.  The neutron command<br>
is not that different and I think there is space for code reuse.  This<br>
would be a long term solution.  It would bring the advantage of having<br>
only one interface to change if it was decided to use the API directly<br>
for instance[5]<br>
<br>
In the meantime, a quick solution to this bug must be found.<br>
<br>
Looking forward to your comments.<br>
<br>
Regards,<br>
<br>
[1] <a href="https://bugs.launchpad.net/puppet-neutron/+bug/1530163" rel="noreferrer" target="_blank">https://bugs.launchpad.net/puppet-neutron/+bug/1530163</a><br>
[2] <a href="https://bugs.launchpad.net/python-neutronclient/+bug/1529914" rel="noreferrer" target="_blank">https://bugs.launchpad.net/python-neutronclient/+bug/1529914</a><br>
[3] <a href="https://review.openstack.org/#/c/238156/" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/238156/</a><br>
[4] <a href="https://review.openstack.org/#/c/262223/" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/262223/</a><br>
[5] <a href="http://lists.openstack.org/pipermail/openstack-dev/2015-October/076439.html" rel="noreferrer" target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2015-October/076439.html</a><br>
<span class="HOEnZb"><font color="#888888">--<br>
Sofer Athlan-Guyot<br>
<br></font></span></blockquote><div>Colleen </div></div></div></div>