Commit Graph

2 Commits

Author SHA1 Message Date
Brian Haley de243a3513 Fix E402 pep8 errors
Fix E402 (module level import not at top of file) pep8 errors
and no longer ignore new failures.

Trivialfix

Change-Id: If9a202f1f322b5b03966c692e33e94b7c872079b
2018-04-20 18:13:07 +00:00
Kevin Benton 56fd9984e8 Add data model for standard attr revision numbers
This adds a new 'revision_number' field to all standard attribute
objects. This number can be used to distinguish between
snapshots of an object to determine which one is more recent
without having to trust system clocks. This can be leveraged
by agents, ML2 backends, core plugin backends, and/or other
external systems that need up-to-date data from the neutron
server to ignore stale updates.

This is done by leveraging the version counting feature built
into SQLAlchemy.[1] This converts each record update into a
compare-and-swap update based on the current version number.
If the CAS update fails, a StaleDataError is raised which will
abort the transaction and the API layer will catch this and
retry.

This patch only adds the revision number column to the DB
and to the model. There is a follow-up patch to actually
increment it in the following change:
I476d3e03c8ee763cc4be6d679fe9f501eb3a19b5

1. http://docs.sqlalchemy.org/en/latest/orm/versioning.html

Partially-Implements: bp/push-notifications
Change-Id: Ia2d911a6a90b1baba1d5cc36f7c625e156a2bc33
2016-06-10 23:53:54 +00:00