These functions assume that they won't be called inside of a
transaction for two reasons. The first is an infinite loop that
will only terminate if it can actually retrieve the latest
information from the database. The second is that ML2's post-commit
operations are expected to occur after data was actually committed
so mechanism drivers that do DB lookups using a different session
may break.
This adds an explicit guard that prevents these two functions from
being called within an active DB session. The rest of the ML2
functions should eventually be converted to this style as well
(see the partial bug).
Related-Bug: #1551958
Partial-Bug: #1540844
Change-Id: I5c00b186585369ef6c8e2b9cb5a43b8bba0e5a7c
This is unsafe when calling ML2 because ML2 assumes that its
functions will not be called inside of a transaction. This is
not only an issue for drivers that try to do DB lookups using
a different session in the post commit operation, but it's a
big issue for the delete methods.
The delete subnet and network methods in ML2 have 'while True'
loops that catch concurrency errors and retry the operation after
looking up info. If these are called inside a transaction, the
lookups will contain stale information and it can lead to the
while True loop never terminating!
Closes-Bug: #1551958
Change-Id: I33dc084ed15e5491fdda19da712a746ca87fbc8c
We need to become more diligent and rigorous about the options and/or
system behaviors that we deprecate. We need to watch for field's
feedback and ensure that we provide an alternative route once a
deprecation is followed up by a removal.
Right now, there's no way to have a comprehensive view of what has
been deprecated in a cycle and what removals have to happen. Adding
this tag is the first step to get this sorted.
Change-Id: Id25ed35c8a23c0e6f6fc1b47545c8d1bab3e8dc7
There's no RST file that uses ".. math" and thus
the pngmath Sphinx extension is not used and can
get removed.
Change-Id: I3ea4b529025c8ac3c4092f3720124647861e6668
- Updating links to Neutron and NeutronClient bugs site
- Adding information how to deal with doc bugs
Change-Id: I696061ac2d1a0c62877f5ab2322355c531d3e6f9
The code landed as I7cb61f30689dff2d7895d444060dedc1532a63ec.
Now this patch documents the new feature for subprojects benefit.
Change-Id: I191e253daffd83b271ab770bd5d49babae553c49
The following error occurs when you try to execute the docs target
locally:
Warning, treated as error:
<...>/doc/source/devref/quality_of_service.rst:340: ERROR: Unknown
target name: "http://unix.stackexchange.com/a/100797".
It fails locally only, because in gate job, we don't treat warnings as
errors.
Change-Id: I6703be19d3458d036fdd1378fe6e85784ab54191
Introduce a generic mechanism to allow the user to set tags
on Neutron resources. This patch adds the function for "network"
resource with tags.
APIImpact
DocImpact: allow users to set tags on network resources
Partial-Implements: blueprint add-tags-to-core-resources
Related-Bug: #1489291
Change-Id: I4d9e80d2c46d07fc22de8015eac4bd3dacf4c03a
Moving CRUD DB operation for objects from db/api.py to objects/db/api.py
Renaming object get_by_id(id) to get_object(**kwargs)
Many models in Neutron DB have complex primary keys, concatenated from
a few properties. This patch adds ability to define multiple primary keys
in NeutronDbObject, which are automatically evaluated into DB query
when performing operations.
Partial-Bug: #1541928
Change-Id: I0f63a62418db76415ddd40c30c778ff7541b93dc
There is a new QoS extension driver for the linuxbridge agent
being added. This driver provides support for QoS configuring
on the linuxbridge agent.
This patch introduces two new config options for Linuxbridge agent:
kernel_hz - HZ value of host kernel,
tbf_latency - value of latency in tbf qdisc to calculate size of queue.
Co-Authored-By: vikram.choudhary <vikram.choudhary@huawei.com>
Change-Id: I457ca2569b5d4a916ba09e71040505cd0ad3257b
Closes-Bug: #1500012
Closes-Bug: #1550514
DocImpact Update agent configuration to show settings related to
QoS and bandwidth limiting
This is the second patch to allow upgrades on RPC versioned
objects callbacks.
This enables resource version notifications from agents to all
neutron servers via fanout for updating the version sets in
memory, and via agent status updates for DB storage, so any
neutron server can retrieve such information at boot.
Closes-Bug: #1535247
Change-Id: I67c1323267aaf7e49f4a359ff50b94e52dba4380
Implements an API extension for reporting availibility of IP
addresses on Neutron networks/subnets based on the blueprint
proposed at https://review.openstack.org/#/c/180803/
This provides an easy way for operators to count the number of
used and total IP addresses on any or all networks and/or
subnets.
Co-Authored-By: David Bingham <dbingham@godaddy.com>
Co-Authored-By: Craig Jellick <craig.jellick@gmail.com>
APIImpact
DocImpact: As a new API, will need all new docs. See devref for details.
Implements: blueprint network-ip-usage-api
Closes-Bug: 1457986
Change-Id: I81406054d46b2c0e0ffcd56e898e329f943ba46f
generate_records_for_existing[2] assumes wrongly that:
session.execute(...).insert_primary_key
returns a value BUT it returns a list of last inserted primary keys.
This trouble affects at least mysql and postgresql backends but not
pymysql (which silently unwraps the list), it explains why grenade tests
didn't catch this trouble.
This change corrects generate_records_for_existing by extracting last
inserted primary key from insert_primary_key list.
[1] neutron.db.migration.alembic_migrations.versions.mitaka.contract\
.8a6d8bdae39_migrate_neutron_resources_table
Closes-Bug: #1546762
Change-Id: I607e485ab02f1d98874095b32ce53dfdd9cd1d51
Maintaining these dashboards in tree is a bit painful, the queries
can be brittle, the URLs are not human readable, and furthermore the
graphs are not interactive (e.g. zoomable).
We should adopt Grafana, and to see how this looks like, please check
tempest failure rate inline.
Change-Id: I422fc04015fa50e2176e41128adc41d7a22fe02b
This missing character was causing a warning during the creation of
documentation. This warning message was considered an error ending the
process to create documentation.
Change-Id: I745389150c23ffabe25eab0ead78dfc850885e9d
Closes-Bug: #1547164
This patch introduces a criterion whereby sub-projects are considered
for inclusion (or exclusion) under the Neutron fold based on team
overlap, i.e. on who is driving the development of the sub-project
from inception to production.
For instance, Neutron team members may occasionally need to create
new repos for experimentation, or for the development of new
(potentially overlapping) functional areas to be incubated as an
integral part of the Neutron end-to-end system.
This patch is the last in a series that introduces criteria for
classification of projects for inclusion/exclusion to/out of the
Neutron 'stadium'. These criteria will always be applied jointly
when assessing a project for inclusion/exclusion at discretion of
the Neutron team.
Patches that complete the inclusion/exclusion process will follow
to discuss the rationale for inclusion/exclusion of the remainder
of the sub-projects.
Change-Id: Ie8e65a94ff9ec238e7c28a8b85d92835675d0c4c
Signed-off-by: Russell Bryant <rbryant@redhat.com>
Co-authored-by: Armando Migliaccio <armamig@gmail.com>
This firewall requires OVS 2.5+ version supporting conntrack and kernel
conntrack datapath support (kernel>=4.3). For more information, see
https://github.com/openvswitch/ovs/blob/master/FAQ.md
As part of this new entry points for current reference firewalls were
added.
Configuration:
in openvswitch_agent.ini:
- in securitygroup section set firewall_driver to openvswitch
DocImpact
Closes-bug: #1461000
Co-Authored-By: Miguel Angel Ajo Pelayo <mangelajo@redhat.com>
Co-Authored-By: Amir Sadoughi <amir.sadoughi@rackspace.com>
Change-Id: I13e5cda8b5f3a13a60b14d80e54f198f32d7a529
Based on my experience as the Neutron Bug Deputy, I would like to add
some extra information to the Bug Deputy directions, so that later Bug
Deputies will be well prepared.
Change-Id: I3ddae7b6af082acb66218253e27da1f709cbd7b7
Current BEFORE_CREATE/DELETE/UPDATE event is outside of the DB
transaction. Unlike the precommit primitive in ML2 mech drivers, they
don't work in the same DB transaction of resource, so if we want to
operate the DB in mech driver related to security group, there would be
more unsync issues if we use BEFORE_XXX event directly. Moving the
BEFORE_XXX event inside may also break some current codes, as maybe RPC
call included.
This patch adds new PRECOMMIT_CREATE/DELETE/UPDATE event type for
callback function, and use it in the securitygroup/rules DB transaction.
PRECOMMIT_XXX is in the DB transaction and only purpose is to do DB
operations in its callback. A CallbackFailure will be triggered when
exception comes from the callback of the new event.
Change-Id: Icd2849bd84dab6733a572e8c85f242afcefc6c78
Closes-Bug: #1522172