_is_dns_integration_supported is not used consistenty in L3_NAT_dbonly_mixin

Bug #1702693 reported by Andrew Austin
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
High
Andrew Austin

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.

Changed in neutron:
assignee: nobody → Andrew Austin (marbindrakon)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/481094

Changed in neutron:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

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 <email address hidden>
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
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/ocata)

Fix proposed to branch: stable/ocata
Review: https://review.openstack.org/481312

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/newton)

Fix proposed to branch: stable/newton
Review: https://review.openstack.org/481313

Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :

Error on deleting a floating ip, raising to High.

Changed in neutron:
importance: Undecided → High
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/ocata)

Reviewed: https://review.openstack.org/481312
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=354e9b8a016bc6bf7d212a4850719f975e2d0f24
Submitter: Jenkins
Branch: stable/ocata

commit 354e9b8a016bc6bf7d212a4850719f975e2d0f24
Author: Andrew Austin <email address hidden>
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
    (cherry picked from commit a6f83bc0aa7575b74c9267b2e399b9d830942e77)

tags: added: in-stable-ocata
tags: added: in-stable-newton
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/newton)

Reviewed: https://review.openstack.org/481313
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=2df43d6911162264798d12ceb492347710aec7f6
Submitter: Jenkins
Branch: stable/newton

commit 2df43d6911162264798d12ceb492347710aec7f6
Author: Andrew Austin <email address hidden>
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
    (cherry picked from commit a6f83bc0aa7575b74c9267b2e399b9d830942e77)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 11.0.0.0b3

This issue was fixed in the openstack/neutron 11.0.0.0b3 development milestone.

tags: added: neutron-proactive-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 9.4.1

This issue was fixed in the openstack/neutron 9.4.1 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 10.0.3

This issue was fixed in the openstack/neutron 10.0.3 release.

tags: removed: neutron-proactive-backport-potential
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.