yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #49407
[Bug 1534625] Re: [Pluggable IPAM] Ipam driver is not called on update subnet if allocation pools are blank
Reviewed: https://review.openstack.org/272125
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=6ed8f45fdf529bacae32b074844aa1320b005b51
Submitter: Jenkins
Branch: master
commit 6ed8f45fdf529bacae32b074844aa1320b005b51
Author: Pavel Bondar <pbondar@xxxxxxxxxxxx>
Date: Thu Jan 21 17:01:22 2016 +0300
Always call ipam driver on subnet update
Previously ipam driver was not called on subnet update
if allocation_pools are not in request.
Changing it to call ipam driver each time subnet update is requested.
If subnet_update is called without allocation_pools, then old allocation
pools are passed to ipam driver.
Contains a bit of refactoring to make that happen:
- validate_allocation_pools is already called during update
subnet workflow in update_subnet method, so just removing it;
- reworked update_db_subnet workflow;
previous workflow was:
call driver allocation -> make local allocation -> rollback driver
allocation in except block if local allocation failed.
new workflow:
make local allocation -> call driver allocation.
By changing order of execution we eliminating need of rollback in this
method, since failure in local allocation is rolled back by database
transaction rollback.
- make a copy of incoming subnet dict;
_update_subnet_allocation_pools from ipam_backend_mixin removes
'allocation_pools' from subnet_dict, so create an unchanged copy to
pass it to ipam driver
Change-Id: Ie4bd85d2ff2ab39bf803c5ef6c6ead151dbb74d7
Closes-Bug: #1534625
** Changed in: neutron
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1534625
Title:
[Pluggable IPAM] Ipam driver is not called on update subnet if
allocation pools are blank
Status in networking-infoblox:
New
Status in neutron:
Fix Released
Bug description:
Currently ipam driver is called on subnet_update only if allocation_pools set in subnet dict. See [1].
This happens because original design expectation is that the only information ipam driver
has to update is allocation pools.
For reference ipam driver that is absolutely correct.
But 3rd party ipam vendors might want to utilize this call to keep track of other fields updates in subnet.
So my suggestion here is to call update_subnet in ipam_driver on each subnet update
and let ipam driver decide if it has to do some processing or not.
In Infoblox we need it to keep track of dns_nameservers on subnet_update.
Currently we can obtain this dns_nameservers info on subnet update only if allocation_pools present in subnet_update request.
Is it a bug from neutron perspective?
[1]
https://github.com/openstack/neutron/blob/master/neutron/db/ipam_pluggable_backend.py#L356
To manage notifications about this bug go to:
https://bugs.launchpad.net/networking-infoblox/+bug/1534625/+subscriptions
References