f9cbd939b9
Sometime between liberty and pike, adding rules to SG's got slow, and slower with every rule. Streamline the rule create path, and get close to the old performance back. Two performance fixes: 1. Get rid of an n^2 duplicate check, using a hash table instead, on bulk creates. This is more memory intensive than the previous loop, but usable far past where the other becomes too slow to be useful. 2. Use an object existence check in a few places where we do not want to load all of the child rules. Also squashed in: Restore tenant_id check on security group rule adds to previous semantic We switched from swapping the tenant_id in the context to explicitly checking the db column. Switch back, and a test that checks for not breaking this rather odd behavior. At least, until we decide to fix it as a bug. Co-Authored-By: William Hager <whager@salesforce.com> Change-Id: I34e41a128f28211f2e7ab814a2611ce22620fcf3 Closes-bug: 1810563 (cherry picked from commit |
||
---|---|---|
.. | ||
db | ||
extensions | ||
logapi | ||
plugins | ||
port | ||
qos | ||
__init__.py | ||
address_scope.py | ||
agent.py | ||
auto_allocate.py | ||
base.py | ||
common_types.py | ||
exceptions.py | ||
flavor.py | ||
floatingip.py | ||
ipam.py | ||
l3agent.py | ||
metering.py | ||
network.py | ||
ports.py | ||
provisioning_blocks.py | ||
quota.py | ||
rbac_db.py | ||
README.rst | ||
router.py | ||
securitygroup.py | ||
servicetype.py | ||
subnet.py | ||
subnetpool.py | ||
tag.py | ||
trunk.py | ||
utils.py |
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).