The quota engine was still using oslo_db wrap_db_retry
which does not automatically take into account deadlocks
that occur inside of nested savepoint transactions.
In one case it didn't matter because it passed in the correct
exception checker but in the one that protected 'set_quota_usage'
it did not use is_retriable so a deadlock inside of the savepoint
would have resulted in a much more expensive retry all of the way
up at the API layer.
This patch just adjusts them to both use the standard neutron
retry_db_errors decorator.
Change-Id: I1e45eb15f14bf35881e5b1dce77733e831e9c6b1
Related-Bug: #1596075
Change Ia0f39697afddec7cd04f870746a4bdd8b9410a32 introduce
contract_creation_exceptions which should be implemented in
migrations that add something in contract branch. Put some
details of its usage in devref.
Change-Id: I1a0b3d384ee8a967ce7f697886630b688843cdaa
Related-bug: #1589328
A problem was found with the --expand (and --contract) options, see the bug report. I am reverting this patch so that I can redo it and have one single patch that can be back-ported.
Closes-Bug: #1599574
This reverts commit 88359e3fe91b7e8f430b48da30b6d4f1ddf17d62.
Change-Id: Iebca469c6fec32bac0480be6627ad5e9dedaad9d
Fix broken link of Core Reviews at the
Effective Neutron: 100 specific ways to improve your Neutron contributions
Change-Id: I929ddbcccd202b42fc48698fda14447f3c3d0e83
We plan to have all projects that integrate with Neutron use the same
alembic environment (Neutron's) instead of having a separate alembic
env.py in each repo. This means that each project will need to label
their contract and expand branches uniquely.
With this patch we add support for branch labels of the form
'networking-foo-contract'
'networking-foo-expand'
We also support the old labels ('contract' and 'expand') with the
intent of backporting this patch to Mitaka so that projects can be
backwards compatible when they update their alembic branch labels. A
best effort will be made to backport this patch to Liberty also.
Support has been removed for label names starting with a "liberty_"
prefix. Such labels temporarily existed during the Liberty cycle but
have now all been cleaned up.
Partial-Bug: #1497830
Change-Id: Ibf38b3125d5d404d57f3e8ef0c7ecfa56eaf8042
This patch explains in details the changes needed for the OVS
agent to support vlan aware vms using two different models:
vlan interfaces and trunk bridge.
Change-Id: I74e0748869d1a2f27db95aafadf7d104cb1a1b3d
Partially-implements: blueprint vlan-aware-vms
Based on changes in Keystone we try to unify naming across the projects.
Change-Id: I9fb3a9aa32b9834cb7bd7ae651c75939a0f5f687
Partially-Implements: blueprint keystone-v3
This corner case was handled to consider the version of non reporting
agents which could have the qos extension enabled.
It's not necessary anymore and has been therefore removed.
The devref details have been updated to present tense, as they should be.
Change-Id: Ie40d3f34a46950f5124cf8ef7f486d90513271f4
The networking-ovn project no longer provides a monolithic
plugin. It has switched to an ML2 mechanism driver with a
Layer 3 service plugin.
Change-Id: I7c7a61180090867bc72c9c09190f6475810e63a9
Related-Bug: #1578198
The previous version depended on the AgentDbMixin to be loaded by
any plugin, and also introduced an __init__ on the mixin which
was problematic: mixins are expected to be classes which add methods
to another class, but to implement no constructor. One of the plugins
had one of the elements of MRO not calling to super().__init__ and
hence not triggering this __init__ method.
This change requires the plugins using the rpc callback mechanism
to provide the AgentDbMixin which is used to refresh cache of known
resource consumers (agents) and versions on demand, this way
we make it more clear that the rpc_callback api is currently designed
to be used with agents only, despite of its extensibility to other
areas.
Change-Id: Ie96b52dbe3a1f32cd4c11de8d8a5eff663fbf7f6
Related-Bug: #1584204
The hacking rule already ensures everyone uses neutron._i18n.
Now we can drop neutron.i18n.
Closes-Bug: #1520094
Change-Id: I1a415c23fd1db103742e8f3a92a3dd26c7252233
With I108242ca9f27c9ec47959ce7615bc7d84cae014b, the last bit from
neutron.openstack.common was removed, and with it, all incubator code
that could be used by subprojects. It's time to remove the warning on
how to properly use incubator.
Also removed neutron/openstack directory that is now unused.
Change-Id: I0a0744fe68588bd5e3966b7c2457b56583231f42
The file sub_projects.rst was moved from the devref directory to the stadium
directory. This change corrects a couple of broken links and a reference to
the rst in the old location.
Change-Id: I828ab4c3d5ff48e6ed915df2962f55335a70c672
This change refactors the rule-specific methods in qos_plugin.py
in order to facilitate implementation of additional QoS rule types.
Further, with the recent merge of
https://review.openstack.org/#/c/292488/, which prevents primary
keys in Neutron's oslo.versioned objects from being updated, the
QoS plugin needed additional refactoring. This change implements a
generic method in Neutron's base objects to handle object updates
without updating the primary key. This method is then used in the
QoS plugin.
Co-Authored-By: Slawek Kaplonski <slawek@kaplonski.pl>
Change-Id: I863f063a0cfbb464cedd00bddc15dd853cbb6389
Partial-Bug: #1468353
This patch documents the various strategies that can be
considered to support the vlan-aware-vms API with the
OVS mech driver and respective agent.
A proposal is chosen based on the tradeoffs amongst design,
implementation, upgrade, and performance complexities, and
it has the aim of fostering brainstorming and discussion.
More patches will follow up on design internals for the
adopted implementation strategy.
Partially-implements: blueprint vlan-aware-vms
Co-Authored-By: Armando Migliaccio <armamig@gmail.com>
Co-Authored-By: Rossella Sblendido <rsblendido@suse.com>
Change-Id: Ib4a176da2863b796283d6c1fff05f08edf40efb4
The interaction steps should be presented as a numbered list and not as
a literal block, which makes it look like bash comments.
Change-Id: Id00ae50255a3487830d1d77b6cb5862e186283ee
Update document and configuration help.
A release-note for removing ofagent is added in the following.
I5dbcd38b0ccc156a6c1cbac4d7fa7f9d297ec466
Change-Id: I586c0d5a7f9d3b742e8c65ff7e2986fd5d837f94
Partial-Bug: #1521477
Sometimes an object requires multiple disjoint actors to complete
a set of tasks before the status of the object should be transitioned
to ACTIVE. The main example of this is when a port is being created.
The L2 agent has to do its business to wire up the VIF, but at the same
time the DHCP agent has to setup the DHCP reservation. This led to
Nova booting the VM when the L2 agent was done even though the DHCP
agent may have been nowhere near ready.
This patch introduces a provisioning blocks mechansim that allows the
entities to be tracked that need to be involved to make a transition
to ACTIVE happen. See the devref in the dependent patch for a high-level
view of how this works.
The ML2 code is updated to use this new mechanism to prevent updating
the port status to ACTIVE without both the DHCP agent and L2 agent
reporting that the port is ready.
The DHCP RPC API required a version bump to allow the port ready
notification.
This also adds a devref doc for the provisioning_blocks
module with a high-level overview of how it works in addition
to a detailed description of how it is used specifically with
ML2, the L2 agents, and the DHCP agents.
Closes-Bug: #1453350
Change-Id: Id85ff6de1a14a550ab50baf4f79d3130af3680c8