<html><body>
<p><font size="2" face="sans-serif">In implementing a mechanism driver for ML2 today, I discovered that any exceptions thrown from your mechanism driver will get swallowed by the ML2 manager (</font><a href="https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/managers.py"><font size="2" face="sans-serif">https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/managers.py</font></a><font size="2" face="sans-serif"> at line 164).</font><br>
<br>
<font size="2" face="sans-serif">Is this by design?  Sure, you can look at the logs, but it seems more user friendly to reraise the exception that got us here.  There could be multiple mechanism drivers being called in a chain, so changing this to reraise an exception that got us in trouble would really only be able to reraise the last exception encountered, but it seems that's better than none at all.  Or maybe even keep a list of exceptions raised and put all their texts into the MechanismDriverError message.</font><br>
<br>
<font size="2" face="sans-serif">Thoughts?</font></body></html>