port binding not bumping revision
Bug #1699034 reported by
Kevin Benton
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
High
|
Kevin Benton |
Bug Description
Port binding is not bumping the revision level of the port so a port update of the host_id will generate two update events with the same revision number. The first sets the host_id and the second sets the binding info but does not change the revision which makes ordering difficult to distinguish on the agents.
Changed in neutron: | |
importance: | Undecided → High |
assignee: | nobody → Kevin Benton (kevinbenton) |
Changed in neutron: | |
status: | New → In Progress |
tags: | added: neutron-proactive-backport-potential |
To post a comment you must log in.
Reviewed: https:/ /review. openstack. org/475650 /git.openstack. org/cgit/ openstack/ neutron/ commit/ ?id=0f536d5a25d 410362e5a7b1390 bc627cc3dc5071
Committed: https:/
Submitter: Jenkins
Branch: master
commit 0f536d5a25d4103 62e5a7b1390bc62 7cc3dc5071
Author: Kevin Benton <email address hidden>
Date: Tue Jun 20 00:00:12 2017 -0700
Use objects instead of SQLA deep copies in PortContext
The workaround of using deepcopy calls on the PortBinding
and PortBindingLevel objects prevents the port relationship
from being loaded to bump its revision because it then fails
to merge.
So in order to allow port bindings to bump the revision we
need to stop using sqlalchemy objects in the PortContext. This
patch adds a new snapshot object that just copies the column
values and provides a method to reconcile them back into the
session.
This workaround can go away after we switch to using OVOs, but
this needs to be backportable so we can't just wait for OVO
adoption.
Partial-Bug: #1699034 3c4844dabfffe88 1e38e68b556
Change-Id: Ib85ec8182117fa