Recent stable/rocky change breaks networking-calico's interface driver

Bug #1879307 reported by Neil Jerram
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
High
Brian Haley

Bug Description

This merge - https://opendev.org/openstack/neutron/commit/a6fb2faaa5d46656db9085ad6bcfc65ded807871 - to the Neutron stable/rocky branch on April 23rd, has broken my team's Neutron plugin, by requiring 3rd party LinuxInterfaceDriver subclasses to take a new 'link_up' argument in their 'plug_new' method.

Here's the fix that I've now made: https://github.com/projectcalico/networking-calico/pull/21/commits/bfd54aa841abbba4c591126b0dba083b93c84536

However, this likely affects other out-of-tree plugins as well, and there is still the likelihood of breakage if someone is running Rocky with an affected-but-unfixed plugin, and uses the latest Rocky code.

Apparently there will not be another Rocky patch release, so I wonder if it would be better to revert the incompatible change?

Changed in neutron:
assignee: nobody → Slawek Kaplonski (slaweq)
importance: Undecided → High
status: New → Confirmed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.opendev.org/729167

Changed in neutron:
status: Confirmed → In Progress
Changed in neutron:
assignee: Slawek Kaplonski (slaweq) → Brian Haley (brian-haley)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/ussuri)

Fix proposed to branch: stable/ussuri
Review: https://review.opendev.org/729728

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

Fix proposed to branch: stable/train
Review: https://review.opendev.org/729729

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

Fix proposed to branch: stable/stein
Review: https://review.opendev.org/729730

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

Fix proposed to branch: stable/rocky
Review: https://review.opendev.org/729731

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

Fix proposed to branch: stable/queens
Review: https://review.opendev.org/729733

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.opendev.org/729167
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=30d573d5abeb4a5251d08dc5384f5c0ff372eff8
Submitter: Zuul
Branch: master

commit 30d573d5abeb4a5251d08dc5384f5c0ff372eff8
Author: Slawek Kaplonski <email address hidden>
Date: Tue May 19 10:04:18 2020 +0200

    Allow usage of legacy 3rd-party interface drivers

    In the patch [1] we changed definition of the abstract method
    "plug" in the LinuxInterfaceDriver class.
    That broke e.g. 3rd-party drivers which still don't accept this
    new parameter called "link_up" in the plug_new method.

    So this patch fixes this to make such legacy drivers to be still working
    with the new base interface driver class.

    This commit also marks such definition of the plug_new method as
    deprecated. Possibility of using it without accepting link_up parameter
    will be removed in the "W" release of the OpenStack.

    [1] https://review.opendev.org/#/c/707406/

    Change-Id: Icd555987a1a57ca0b31fa7e4e830583d6c69c861
    Closes-Bug: #1879307

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron-lib (master)

Related fix proposed to branch: master
Review: https://review.opendev.org/729882

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

Reviewed: https://review.opendev.org/729728
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=5e3c8640b0412a98f2aa8f9ae710ffb7e6d0fcc5
Submitter: Zuul
Branch: stable/ussuri

commit 5e3c8640b0412a98f2aa8f9ae710ffb7e6d0fcc5
Author: Slawek Kaplonski <email address hidden>
Date: Tue May 19 10:04:18 2020 +0200

    Allow usage of legacy 3rd-party interface drivers

    In the patch [1] we changed definition of the abstract method
    "plug" in the LinuxInterfaceDriver class.
    That broke e.g. 3rd-party drivers which still don't accept this
    new parameter called "link_up" in the plug_new method.

    So this patch fixes this to make such legacy drivers to be still working
    with the new base interface driver class.

    This commit also marks such definition of the plug_new method as
    deprecated. Possibility of using it without accepting link_up parameter
    will be removed in the "W" release of the OpenStack.

    [1] https://review.opendev.org/#/c/707406/

    Change-Id: Icd555987a1a57ca0b31fa7e4e830583d6c69c861
    Closes-Bug: #1879307
    (cherry picked from commit 30d573d5abeb4a5251d08dc5384f5c0ff372eff8)

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

Reviewed: https://review.opendev.org/729729
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=9c242a032915141d18705198f637cd717a414a26
Submitter: Zuul
Branch: stable/train

commit 9c242a032915141d18705198f637cd717a414a26
Author: Slawek Kaplonski <email address hidden>
Date: Tue May 19 10:04:18 2020 +0200

    Allow usage of legacy 3rd-party interface drivers

    In the patch [1] we changed definition of the abstract method
    "plug" in the LinuxInterfaceDriver class.
    That broke e.g. 3rd-party drivers which still don't accept this
    new parameter called "link_up" in the plug_new method.

    So this patch fixes this to make such legacy drivers to be still working
    with the new base interface driver class.

    This commit also marks such definition of the plug_new method as
    deprecated. Possibility of using it without accepting link_up parameter
    will be removed in the "W" release of the OpenStack.

    [1] https://review.opendev.org/#/c/707406/

    Change-Id: Icd555987a1a57ca0b31fa7e4e830583d6c69c861
    Closes-Bug: #1879307
    (cherry picked from commit 30d573d5abeb4a5251d08dc5384f5c0ff372eff8)

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

Reviewed: https://review.opendev.org/729730
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=bc8c38bda821b0fd989b221dbd9fedb9e3a3d9a2
Submitter: Zuul
Branch: stable/stein

commit bc8c38bda821b0fd989b221dbd9fedb9e3a3d9a2
Author: Slawek Kaplonski <email address hidden>
Date: Tue May 19 10:04:18 2020 +0200

    Allow usage of legacy 3rd-party interface drivers

    In the patch [1] we changed definition of the abstract method
    "plug" in the LinuxInterfaceDriver class.
    That broke e.g. 3rd-party drivers which still don't accept this
    new parameter called "link_up" in the plug_new method.

    So this patch fixes this to make such legacy drivers to be still working
    with the new base interface driver class.

    This commit also marks such definition of the plug_new method as
    deprecated. Possibility of using it without accepting link_up parameter
    will be removed in the "W" release of the OpenStack.

    [1] https://review.opendev.org/#/c/707406/

    Change-Id: Icd555987a1a57ca0b31fa7e4e830583d6c69c861
    Closes-Bug: #1879307
    (cherry picked from commit 30d573d5abeb4a5251d08dc5384f5c0ff372eff8)
    (cherry picked from commit 9c242a032915141d18705198f637cd717a414a26)

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

Reviewed: https://review.opendev.org/729733
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=3c0624b8f7b2c2399426f4d721afab66ec648ef8
Submitter: Zuul
Branch: stable/queens

commit 3c0624b8f7b2c2399426f4d721afab66ec648ef8
Author: Slawek Kaplonski <email address hidden>
Date: Tue May 19 10:04:18 2020 +0200

    Allow usage of legacy 3rd-party interface drivers

    In the patch [1] we changed definition of the abstract method
    "plug" in the LinuxInterfaceDriver class.
    That broke e.g. 3rd-party drivers which still don't accept this
    new parameter called "link_up" in the plug_new method.

    So this patch fixes this to make such legacy drivers to be still working
    with the new base interface driver class.

    This commit also marks such definition of the plug_new method as
    deprecated. Possibility of using it without accepting link_up parameter
    will be removed in the "W" release of the OpenStack.

    [1] https://review.opendev.org/#/c/707406/

    Conflicts:
          neutron/tests/unit/agent/linux/test_interface.py

    Change-Id: Icd555987a1a57ca0b31fa7e4e830583d6c69c861
    Closes-Bug: #1879307
    (cherry picked from commit 30d573d5abeb4a5251d08dc5384f5c0ff372eff8)
    (cherry picked from commit 9c242a032915141d18705198f637cd717a414a26)
    (cherry picked from commit bc8c38bda821b0fd989b221dbd9fedb9e3a3d9a2)
    (cherry picked from commit bd8240dc9dc56a6ad9656a58c8cbf7ce7ae84cee)

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

Reviewed: https://review.opendev.org/729731
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=bd8240dc9dc56a6ad9656a58c8cbf7ce7ae84cee
Submitter: Zuul
Branch: stable/rocky

commit bd8240dc9dc56a6ad9656a58c8cbf7ce7ae84cee
Author: Slawek Kaplonski <email address hidden>
Date: Tue May 19 10:04:18 2020 +0200

    Allow usage of legacy 3rd-party interface drivers

    In the patch [1] we changed definition of the abstract method
    "plug" in the LinuxInterfaceDriver class.
    That broke e.g. 3rd-party drivers which still don't accept this
    new parameter called "link_up" in the plug_new method.

    So this patch fixes this to make such legacy drivers to be still working
    with the new base interface driver class.

    This commit also marks such definition of the plug_new method as
    deprecated. Possibility of using it without accepting link_up parameter
    will be removed in the "W" release of the OpenStack.

    [1] https://review.opendev.org/#/c/707406/

    Change-Id: Icd555987a1a57ca0b31fa7e4e830583d6c69c861
    Closes-Bug: #1879307
    (cherry picked from commit 30d573d5abeb4a5251d08dc5384f5c0ff372eff8)
    (cherry picked from commit 9c242a032915141d18705198f637cd717a414a26)
    (cherry picked from commit bc8c38bda821b0fd989b221dbd9fedb9e3a3d9a2)

tags: added: in-stable-rocky
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron-lib (master)

Reviewed: https://review.opendev.org/729882
Committed: https://git.openstack.org/cgit/openstack/neutron-lib/commit/?id=5ba0b738e1845e009ddc5d1baff945e9d0c5d515
Submitter: Zuul
Branch: master

commit 5ba0b738e1845e009ddc5d1baff945e9d0c5d515
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Thu May 21 09:01:29 2020 +0000

    Rehome abstract class LinuxInterfaceDriver definition

    This change will allow other third party plugins to inherit from this
    class without importing Neutron but neutron-lib.

    Change-Id: I29ff894a0da2df0c12aa6e90e8266e4d7aa30770
    Related-Bug: #1879307

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

Other bug subscribers