← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1702693] Re: _is_dns_integration_supported is not used consistenty in L3_NAT_dbonly_mixin

 

Reviewed:  https://review.openstack.org/481094
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=a6f83bc0aa7575b74c9267b2e399b9d830942e77
Submitter: Jenkins
Branch:    master

commit a6f83bc0aa7575b74c9267b2e399b9d830942e77
Author: Andrew Austin <aaustin@xxxxxxxxxx>
Date:   Thu Jul 6 14:18:17 2017 +0000

    Use _is_dns_integration_supported for _delete_floatingip
    
    L3_NAT_dbonly_mixin._delete_floatingip still uses
    utils.is_extension_supported to determine if DNS-specific methods should
    be run rather than the self._is_dns_integration_supported method used
    by _create and _update.
    
    This causes issues with L3 service plugins like Cisco ACI where the core
    plugin is ML2 but the L3 plugin does not implement the DNS methods.
    When such a plugin sets _dns_integration to False, _create and _update
    do not call the DNS-specific plugin methods, but _delete_floatingip does
     which leads to an exception being raised.
    
    This patch changes _delete_floatingip to use the same method for
    determining DNS support as _create_floatingip and _update_floatingip.
    
    Change-Id: Ieb2db6cb96c5d6aae166aa7f0d2d481b2a3690f9
    Closes-Bug: #1702693


** 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/1702693

Title:
  _is_dns_integration_supported is not used consistenty in
  L3_NAT_dbonly_mixin

Status in neutron:
  Fix Released

Bug description:
  In L3_NAT_dbonly_mixin, self._is_dns_integration_supported is used in
  _create_floatingip and _update_floatingip to determine if DNS-specific
  methods need to be called on the L3 service plugin. However, in
  _delete_floatingip, the older utils.is_extension_supported method is
  used.

  This causes an edge case where an L3 service plugin
  (ApicL3ServicePlugin from apic_ml2 in my case) that does not implement
  the DNS methods but defines _dns_integration = False will successfully
  create and update a floating IP but cause a traceback when the
  floating IP is deleted as the older method checks for support on the
  core plugin (ML2) rather than the L3 service plugin.

  The _delete_floatingip method should use
  self._is_dns_integration_supported like _create_floatingip and
  _update_floatingip to provide consistency to plugins that use this
  mixin.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1702693/+subscriptions


References