Comment 3 for bug 1276391

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

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

commit a57dc2c30ab78ba74cfc51b8fdb457d3374cc87d
Author: Robert Kukura <email address hidden>
Date: Mon Mar 10 15:06:09 2014 -0400

    ML2: Remove validate_port_binding() and unbind_port()

    The API implemented by ML2 mechanism drivers included three methods
    related to port binding that were called within DB transactions, but
    that could potentially involve communication with controllers or
    devices that should not be done within transactions. A subsequent
    patch will move the calls to bind_port() outside of tranactions. This
    patch eliminates the other two methods from the MechanismDriver API.

    The validate_port_binding() method was previously called on the bound
    mechanism driver to check whether an existing binding was still valid,
    so that the port could be rebound if something changed. But since nova
    has no way to handle changes to binding:vif_type or
    binding:vif_details after a port is initially plugged, this turned out
    not to be useful, so the method has been removed from the
    MechanismDriver API. Now, once a port is successfully bound, the
    binding remains until the port is deleted or any of it's
    binding:host_id, binding:vnic_type, or binding:profile attribute
    values are changed.

    The unbind_port() method was previously called on the bound mechanism
    driver as an existing binding was removed. This method was not used by
    any existing mechanism drivers, and was redundant with the
    update_port_precommit() and update_port_postcommit() methods that are
    called on all mechanism drivers when an existing binding is removed,
    so this method has also been removed from the driver API.

    Eliminating the unbind_port() call allows the binding details to be
    made available via the PortContext in delete_port_postcommit() calls,
    completing the resolution of bug 1276395.

    Closes-bug: 1276395
    Partial-bug: 1276391
    Change-Id: I70fb65b478373c4f07f5273baa097fc50e5ba2ef