Brocade code decomposition of VDX mechanism driver,
includes moving out the driver and unit tests. Left
behind are the DB model for migration and config
Closes bug: #1427793
Change-Id: I3b06a1800cce1ddbb87c6ebd7981e3f249df5060
Updates required to the upstream neutron ML2 cisco nexus MD code to
support stackforge repo changes.
Original development done under cisco-openstack repo. File history for
these changes can be found under the staging/junoplus branch.
Change-Id: Idc9da84cefa4131a84b911f77d99a3b1647103a8
Closes-Bug: 1429879
Use oslo_db helper that will allow to restart the whole
transaction in case it needs a certain operation to be repeated.
This is a workaround for the REPEATABLE READ problem where
retrying logic will not work because queries inside a transation
will not see updates made by other transactions.
So, run every attempt in a separate transaction.
Change-Id: I68f9ae8019879725df58f5da2c83bb699a548255
Closes-Bug: #1382064
This is an initial patch in a series that, by using an event framework,
cleans up the relationship between ML2 and L3, so that they are no longer
tightly coupled. A follow-up will take address the coupling during the
port delete operation.
The newly introduced notification hooks not only benefit the L3 service
plugin, but any other plugin that has an interest in knowing about port
events.
Long term, the notification bits can move in a more 'common' place so that
other plugins can take advantage of them, but as mentioned in a parent patch,
the perestroika is not quite there yet.
Related-blueprint: services-split
Related-blueprint: plugin-interface-perestroika
Change-Id: I6527b1cb53a71a1f68329a7a3b1878094558f8c2
It's mostly a matter of changing imports to a new location.
Non-obvious changes needed:
* pass overwrite= argument to oslo_context since oslo.log reads context
from its thread local store and not local.store from incubator
* don't store context at local.store now that there is no code that
would consume it
* LOG.deprecated() -> versionutils.report_deprecated_feature()
* dropped LOG.audit check from hacking rule since now the method does
not exist
* WritableLogger is now located in oslo_log.loggers
Dropped log module from the tree. Also dropped local module that is now
of no use (and obsolete, as per oslo team).
Added versionutils back to openstack-common.conf since now we use the
module directly from neutron code and not just as a dependency of some
other oslo-incubator module.
Note: tempest tests are expected to be broken now, so instead of fixing
all the oslo.log related issues for the subtree in this patch, I only
added TODOs with directions for later fix.
Closes-Bug: #1425013
Change-Id: I310e059a815377579de6bb2aa204de168e72571e
Moving back-end drivers of Arista L3
Service Plugin from neutron tree to
stackforge networking-arista.
Change-Id: I0b10ce12bc10fb74c905ec11e64be8da12f341f4
Closes-bug: 1428909
Related-blueprint: core-vendor-decomposition
All the Neutron code was scanned for places where in_ is being used
and added checks to ensure that the input is not an empty sequence.
Change-Id: I1e27f94ea350ce1dfabdd7eb14e4397ca29e8eb7
Closes-Bug:1264579
It seems preferable to have a thin driver module
rather than directly referencing an external module in setup.cfg.
This also introduces "ofagent" directory which can be used to
put requirements.txt later.
Closes-Bug: #1412653
Related: blueprint core-vendor-decomposition
Change-Id: Id86ade4ae75dceb5ce4283869f42f4c0d1af7c4d
If there are no resources associated with a
tenant, it was deleted from Arista DB in
delete_xxx_precommit() methods. The sync
mechanism used to make sure that back-end is in
sync with DB.
Lately, the sync mechanism has been enhanced to
support scaled deployment. Therefore, the
delete_tenat() call now needs to be invoked from
delete_xxx_postcommit() methods instead of
delete_xxx_precommit() methods. Additionally,
when the tenant is removed from the DB, it is
removed from the back-end as well. This removes
the dependancy on the sync mechanism to take
care of this.
[Note: Sync will still do it, but, this way it
gets done right away]
Closes-bug: 1429968
Change-Id: I2f6ddb01079fe4e2648685ca97d0be06db2d1a55
This commit removes all of the Big Switch Networks
code from the tree and replaces it with the import
statements required to pull in the entry points
from the new 'bsnstacklib' module.
All patches for BSN code should now be submitted
to the stackforge/networking-bigswitch project.
Partial-implements: blueprint core-vendor-decomposition
Change-Id: I4d83c9fd6a2953c329c247c78425f8e3280e8a42
Fixes an issue where SLAAC and DHCPV6-stateless subnets can be
deleted even if they are attached to an internal router port.
This patch raises an exception whenever a subnet is deleted
that has existing IP Allocations on an internal router port.
Change-Id: I0a16156274b5736236654fca6700ef2d67f4519b
Closes-Bug: #1424760
ml2 plugin sometimes uses immediates and constants as the key for
resource like 'network'. Such inconsistency is undesirable, this patch
makes use of constants in neutron.api.v2.attributes consistently.
Change-Id: I965035a6db54a5db54942eb4b584aaf8d6a68c43
This patch adds more tests for ML2 extension driver.
It also fixes a minor bug which was revealed.
The data argument for process/update method of extension driver
was inconsist. some are given data like
{'resource': {'arg': 'value'...}}. But some are given one like
{'arg': 'value'}.
This inconsistency needs to be fixed so that argument is
{'arg': 'value'}. Given the argument is known to be network,
there is no point to carry outer dictionary.
Partially Implements: blueprint ml2-ovs-portsecurity
Change-Id: I4614c3ba5eff0ace46cc928517e31c14b7b2e448
When we remove a router from an agent that has already been
unscheduled from we raise an exception that eventually causes an error.
The method '_unbind_router' raises a 'RouterNotHostedByL3Agent' exception
on failure. In both cases the actual removal of the router
from the same agent has no effect.
The solution is to stop raising 'RouterNotHostedByL3Agent' so
that _unbind_router() being invoked without error can indicate that
the router is no longer bound.
This solution matches the behaviour found when trying
to schedule a router to the same agent twice.
This change is a result of the discussion in:
https://review.openstack.org/#/c/144681/2
Closes-Bug: #1406705
Change-Id: I015bfc0fde11ba4f39417e4c134faa8132cb3eac
Sentinel patch to establish whether commit [1] is at
fault of the sudden spike of DBDeadlock errors.
[1] d6a55c1736
Change-Id: I021e94e322f9b5eca665ea3aede41e034d3047cc
Closed-Bug: #1426543
Added code to implement filters for provider network attributes
in ML2 plugin. There was a todo item in code but never got done.
It is needed to lookup networks based on provider network attributes.
Change-Id: I9eaa8bd8fa35cfe2b94551f9c27336503f118ce6
Closes-Bug: 1333475
Many neutron extensions(like portsecurity) use the plugin_context
variable instead of just the database session. This change
modifies the extension driver api to pass the plugin_context
Change request also modifies the extend_XXX resource api to use the
respective data model(network/subnet/port) passed to it.
Implements: blueprint extensions-in-ml2
Partially Implements: blueprint ml2-ovs-portsecurity
Closes-Bug: 1382448
Change-Id: Icf84615e5fee8b59cbc95ab9b634f1a49f4b56a3
Taking out Nuage's core plugin out of tree and putting
it at nuage's github repository.
https://github.com/nuage-networks/nuage-openstack-neutron
Change-Id: I6d02df85c7a2c307ad11442d0afdd50c64210af4
Partially-implements: blueprint core-vendor-decomposition
Closes-bug: #1422930
There's no need to get the network from the DB in
_commit_port_binding since it's stored in the PortContext
Change-Id: Icd5200746dc8fbba336bd4e5714b90b9f89704c0
This adds a thin shim replacing the Cisco Nexus mech driver so that it
may use the code now stored in the networking-cisco stackforge. The code
for this driver that has been moved into the stackforge is also removed by
this patch.
Partial-Implements: blueprint core-vendor-decomposition
Change-Id: Ib88fd121509e96be42fb0bd22422ccaa7d4eb0f1
Closes-Bug: 1419010