8915febaaf
SQLAlchemy may asynchronously push models out of session cache in which
case we may receive DetachedInstanceError.
In the test case, instead of deepcopying models to compare, compare
each modified attribute independently.
This change also includes conversion from InstrumentedLists to regular
lists when converting model attributes to object fields. The fact that
we were returning InstrumentedLists was always an oversight but it
revealed itself after the modification of the test case that is the
core of this patch.
When converting object fields to db, convert Port's distributed_binding
None value to a empty list to reflect that the relationship of the Port
database model is a list. It was not an issue before the patch because
we were not comparing model attribute for equality but for in-equality
before, and so None was always != [].
Finally, this patch moves a bunch of TODOs to better reflect where they
belong to.
Closes-Bug: #1770452
Change-Id: I42cdf540129bd4470ec1a59345db9845a6198328
(cherry picked from commit
|
||
---|---|---|
.. | ||
db | ||
extensions | ||
logapi | ||
plugins | ||
port | ||
qos | ||
README.rst | ||
__init__.py | ||
address_scope.py | ||
agent.py | ||
auto_allocate.py | ||
base.py | ||
common_types.py | ||
flavor.py | ||
floatingip.py | ||
ipam.py | ||
l3_hamode.py | ||
l3agent.py | ||
metering.py | ||
network.py | ||
ports.py | ||
provisioning_blocks.py | ||
quota.py | ||
rbac_db.py | ||
router.py | ||
securitygroup.py | ||
servicetype.py | ||
stdattrs.py | ||
subnet.py | ||
subnetpool.py | ||
tag.py | ||
trunk.py | ||
utils.py |
README.rst
Neutron Objects
Directory
This directory is designed to contain all modules which have objects definitions shipped with core Neutron. The files and directories located inside of this directory should follow the guidelines below.
Structure
The Neutron objects tree should have the following structure:
- The expected directory structure is flat, except for the ML2 plugins. All ML2 plugin objects should fall under the plugins subdirectory (i.e. plugins/ml2/gre_allocation).
- Module names should use singular forms for nouns (network.py, not networks.py).