OpenStack Networking (Neutron)
Go to file
Matthew Booth c3ffac8200 Fix invalid JSON generated by quota details
The value fetched by Quotasv2_detail.get_resources() is ultimately
returned by Reservation.get_total_reservations_map. The total_reserved
value is returned by a sqlalchemy sum(), and is of a type defined by
the database driver in use. PyMySQL returns a Decimal here, which
the api layer serialises to JSON as a string.

Note that if a resource has no reservations then its value will be
defaulted in DbQuotaDriver.get_detailed_tenant_quotas to the integer
value 0. This means that the value is an integer if zero, or a string
otherwise. This causes parsing difficulties for client libraries which
do strict type checking.

Testing note:
This method is already covered by the unit test
TestQuotaDbApi.test_get_reservations_for_resource, which also already
tests the return value and, implicitly, its type. However, it does not
currently fail because the unit tests run with SQLite rather than MySQL.
SQLite returns an int where MySQL returns a Decimal, which does not
trigger the bug.

TestQuotaDbApi.test_get_reservations_for_resource is sufficient to
demonstrate that the patch doesn't regress SQLite. We were not able to
think of a deterministic way to write a Tempest test for this, which
would cover MySQL. Ideally we would have the ability to run the DB test
suites under MySQL and PostreSQL in addition to SQLite using oslo.db's
OpportunisticDbFixture, but the scope of that is larger than this
change.

Closes-Bug: #1918565
Change-Id: Icda0d63f2f5ea72bde423296c76aa46646fa98a8
(cherry picked from commit 9ed17cec2d)
2021-03-19 15:03:07 +00:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
devstack [OVN] Use the OVN DevStack module 2020-08-26 10:09:28 +01:00
doc [OVS FW] Allow egress ICMPv6 only for know addresses 2021-02-27 20:10:13 +00:00
etc Merge "Migrate "ethtool" to oslo.privsep" 2020-08-14 22:58:44 +00:00
neutron Fix invalid JSON generated by quota details 2021-03-19 15:03:07 +00:00
playbooks Convert neutron-grenade-ovn job to be zuulv3 2020-10-11 21:41:38 +02:00
rally-jobs [ci] Fix several rally task arguments 2020-05-06 14:56:27 +03:00
releasenotes [OVN] Set mcast_flood_reports on LSPs 2021-03-10 10:33:58 +00:00
roles [OVN] Use the OVN DevStack module 2020-08-26 10:09:28 +01:00
tools Merge "[OVN] Updates to tools/migrate_names.txt" 2020-09-17 21:17:44 +00:00
vagrant/ovn [OVN] Merge networking-ovn vagrant into neutron 2020-02-18 17:26:15 -05:00
zuul.d jobs: remove devstack-gate references 2021-03-10 00:48:21 +01: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 Update .gitreview for stable/victoria 2020-09-28 15:20:21 +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
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
README.rst Start README.rst with a better title 2019-11-19 17:42:57 +01:00
TESTING.rst Dropping lower constraints testing (stable Victoria) 2021-01-12 15:47:46 +00:00
bindep.txt Merge "Stop testing python 2" 2019-10-28 00:52:16 +00:00
plugin.spec Add OSP16.1 choice to migration plugin spec 2020-05-04 20:34:16 +03:00
requirements.txt Update requirements for recent pip failures 2020-12-14 11:35:53 +01:00
setup.cfg Remove translation sections from setup.cfg 2020-05-27 22:43:15 +08:00
setup.py Updated from global requirements 2017-03-04 11:19:58 +00:00
test-requirements.txt Update requirements for recent pip failures 2020-12-14 11:35:53 +01:00
tox.ini Ignore python warnings in the fullstack job 2021-03-04 13:33:36 +00:00

README.rst

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.