[openstack-dev] [Neutron] IPAM reference driver status and other stuff
jbelamaric at infoblox.com
Mon Mar 23 15:26:09 UTC 2015
On 3/23/15, 11:03 AM, "Salvatore Orlando" <sorlando at nicira.com<mailto:sorlando at nicira.com>> wrote:
Whether is a big deal or a failure it depends on one's expectation. If the expectation is to enable external IPAM backends, then I agree that this is not a big deal.
However, my expectation (and I hope I'm not the only one), was to disentangle IPAM logic from the API request processing code. In this way 3rd party backend transactions would have been executed independently of the database operation for processing the API request. Also, this would have enabled us to integrate tools like taskflow (I think Pavel looked into that). And most importantly avoid long database transactions which include remote calls as well.\
I agree this is a worthy goal we should look to achieve in Liberty. It will require a lot more refactoring but should clean things up nicely.
However, this is not achievable - and mostly for an oversight on our side. So we should welcome passing down the context to the driver, with the goal of removing it in the next release. I think it will be fair to assume the interface "experimental" for this release cycle - and "stable" for the next one.
Makes sense to me.
The issue is not really with mysql connector but more in its interaction with eventlet. This is something that will eventually (hopefully soon) be sorted within oslo_db. However, generally speaking it is better to avoid long-standing database transactions.
However, we've provided enough reasons for which we'd need, at least for this release, push down the database session to the IPAM driver. So it's now up to reviewers to decide whether this is acceptable or not.
The technical debt aspect of adding a session to the driver is simply due to the fact that we'll need to have a follow-up action to remove it.
Such follow up action will imply some more refactoring in the db base class, possibly removing some of the code Pavel is introducing and moving it into an appropriate IPAM integration module. This will be the additional technical debt.
On the other hand, if the developers working on IPAM agree that it is ok to keep passing down the session to the IPAM driver as a permanent solution, then we have less technical debt to deal with (and this would be the one we anticipated because for Kilo Neutron should be able to run with and without the IPAM driver)
I see your point, it creates a bit more work in the next cycle.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the OpenStack-dev