← Back to team overview

yahoo-eng-team team mailing list archive

[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