OpenStack Networking (Neutron)
Go to file
Rodolfo Alonso Hernandez e135a8221d New Quota driver `DbQuotaNoLockDriver`
This new quota driver, ``DbQuotaNoLockDriver``, does not create a lock
per (resource, project_id) but retrieves the instant (resource,
project_id) usage and the current (resource, project_id) reservations.
If the requested number of resources fit the available quota, a new
``Reservation`` register is created with the amount of units requested.

All those operations are done inside a DB transaction context. That
means the amount of resources and reservations is guaranteed inside
this transaction (depending on the DB backend isolation level defined)
and the new reservation created will not clash with other DB transation.
That will guarantee the number of resources and instant reservations
never exceed the quota limits defined for this (resource, project_id).

NOTES:
- This change tries to be as unobtrusive as possible. The new driver
  uses the same ``DbQuotaDriver`` dabatase tables (except for
  ``QuotaUsage``) and the same Quota engine API, located in
  ``neutron.quota``. However, the Quota engine resources implements some
  particular API actions like "dirty", that are not used in the new
  driver.
- The Pecan Quota enforcement hooks,
  ``neutron.pecan_wgsi.hooks.quota_enforcement``, execute actions like
  "resync", "mark_resources_dirty" or "set_resources_dirty", that has
  no meaning in the new driver.
- The isolation between the Quota engine and the Pecan hook, and the
  driver itself is not clearly defined. A refactor of the Quota engine,
  Quota service, Quota drivers and a common API between the driver and
  the engine is needed.
- If ``DbQuotaDriver`` is deprecated, ``CountableResource`` and
  ``TrackedResource`` will be joined in a single class. This resource
  class will have a count method (countable) or a hard dependency on a
  database table (tracked resource). The only difference will be the
  "count" method implementation.

Closes-Bug: #1926787

Change-Id: I4f98c6fcd781459fd7150aff426d19c7fdfa98c1
2021-05-20 07:55:59 +00:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
devstack [OVN] security group logging support (2 of 2) 2021-03-02 10:48:23 -05:00
doc New Quota driver `DbQuotaNoLockDriver` 2021-05-20 07:55:59 +00:00
etc Adding placement auth options to oslo.config entry_points 2021-05-10 09:00:57 -04:00
neutron New Quota driver `DbQuotaNoLockDriver` 2021-05-20 07:55:59 +00:00
playbooks Add periodic jobs to test "nftables" binaries 2021-04-12 09:48:11 +00:00
rally-jobs [ci] Fix several rally task arguments 2020-05-06 14:56:27 +03:00
releasenotes New Quota driver `DbQuotaNoLockDriver` 2021-05-20 07:55:59 +00:00
roles Fix "nftables" ansible role 2021-04-27 15:56:43 +00:00
tools Remove call to "fixup_ubuntu" 2021-05-18 14:13:31 +00:00
vagrant/ovn Fix local neutron folder path in ovn/sparse/Vagrantfile 2020-11-03 17:02:34 +01:00
zuul.d Merge "[OVN] Re-enable test_port_security_macspoofing_port for slow jobs" 2021-05-14 12:47:26 +00:00
.coveragerc Cleanup coverage configuration 2016-10-17 17:06:19 +05:30
.gitignore Add etc/neutron/*.sample files to be ignored by git 2019-12-12 12:38:24 +01:00
.gitreview OpenDev Migration Patch 2019-04-19 19:38:27 +00:00
.mailmap Add mailmap entry 2014-05-16 13:40:04 -04:00
.pylintrc Remove "six" library 2020-07-28 16:55:52 +00:00
.stestr.conf Fix post gate hook to accommodate for new os-testr 2017-09-12 14:20:12 -06:00
bindep.txt include python36-devel in bindep, for tests 2020-10-03 21:58:20 +10:00
CONTRIBUTING.rst [Community goal] Add contributor and PTL guide 2020-03-03 04:43:26 +01:00
HACKING.rst Remove "six" library 2020-07-28 16:55:52 +00:00
LICENSE Adding Apache Version 2.0 license file. This is the official license agreement under which Quantum code is available to 2011-08-08 12:31:04 -07:00
lower-constraints.txt Merge "Improve "objects.db.api.count" method" 2021-04-29 17:31:15 +00:00
plugin.spec Add OVN migration OSP 16.2 option 2021-01-24 17:18:55 +02:00
README.rst Start README.rst with a better title 2019-11-19 17:42:57 +01:00
requirements.txt Merge "Improve "objects.db.api.count" method" 2021-04-29 17:31:15 +00:00
setup.cfg setup.cfg: Replace dashes with underscores 2021-05-12 18:23:20 +08:00
setup.py Updated from global requirements 2017-03-04 11:19:58 +00:00
test-requirements.txt Follow-up: Move linters dependencies to tox.ini 2021-01-07 04:26:07 +09:00
TESTING.rst [Docs] Guide about running and debugging tempest tests 2021-01-07 21:36:42 +01:00
tox.ini Group execution of SQL functional tests 2021-04-09 09:52:11 +00:00

OpenStack Neutron

image

Neutron is an OpenStack project to provide "network connectivity as a service" between interface devices (e.g., vNICs) managed by other OpenStack services (e.g., Nova).

To learn more about neutron:

Get in touch via email. Use [Neutron] in your subject.

To learn how to contribute, please read the CONTRIBUTING.rst file.