When selecting IPs for MLAG peers SVIs, we typically choose
the top two IPs in the subnet (eg. .254 and .253 in a /24).
However, this may collide with the fixed_ip for the router,
which will cause EOS to reject the router create on one of
the peers as the VARP IP cannot be the same as the SVI IP.
The fix prosed here is to use the third highest IP in the
subnet if the fixed_ip is one of the two highest IPs in the
- bump hacking to make it py38+ compatible
- (with changes to pass against the newer pep8 rules)
- ensure requests get monkey-patched to avoid exceeding
maximum recursion depth in SSL
- start running openstack-python3-yoga-jobs-neutron
A recent to the way neutron sends network info in callbacks
partially breaks the Arista L3 plugin.
This change moves over to the new format.
This change removes the delete_default_gateway function from
create_router call path and updates the synchronize function to update
proper VRF default gateways only when needed.
On switches that do not support vrf instance command, if the command
fails it will try again to check which commands are supported and will
generate a loop. This will prevent the L3 plugin to check for vrf
supported commands while it is checking what command are supported
This commit is removing support fro python2 in networking-arista and
synchrinizing the package requirements with neutron. Because of this
some code changes have been performed in order for the pep8 test to pass
When an exception happens in synchronize thread, it will die and not
recover. Wrapping in try/catch to protect against any error. Also added
some logging to know step in processing
This change adds the option to create default route for routers that
have a default gateway defined. This is controled by setting
vrf_default_route option in the configution
We were filtering ports only by device_id for the purpose of SVI/VLAN
creation. We only create SVIs for network:router_interface ports in the
driver, so the same should hold for the sync worker.
This adds two new config settings: enable_cleanup and protected_vlans
that allows the L3 sync worker to cleanup stale VRFs, SVIs and VLANs
on L3 hosts without affecting config from sources that are not the Arista
L3 plugin. This change also adds support for automatic config file
generation with oslo-config-generator.
The neutron.common.rpc and exceptions were rehomed into neutron-lib and
are currently shimmed in neutron 
This patch consumes those modules from neutron-lib by using lib's
modules rather than neutrons.
- Improved error logging for L3/SG/arista_vlan
- Fixed tenant_id filter for router query
- Fixed VRF creation for routers with a space in their name
The create_connection function in neutron.common.rpc is just an alias to
Connection. This patch switches to the later so we can remove the former
The neutron.common.topics module was rehomed into neutron-lib with
This patch consumes it by using neutron-lib's version of the module in
prep for Ia4a4604c259ce862597de80c6deeb3d408bf0e95
This change documents option dependencies within the code and ensures
isolated test runs will work properly and not depend on other import side
Remove the external dependency on jsonrpclib to better align with the
upstream OpenStack requirements. This change introduces a new
EAPIClient class for the L3 agent. In the future, the ML2 driver will be
refactored to use shared EAPI code.
The jsonrpclib library module is not python 3 compatible and not
actively maintained. jsonrpc-requests is newer, python compatible and
based upon the underlying requests library already in use.
Ensure that the plugin uses the constant defined in neutron-lib.
L3_ROUTER_NAT will be dropped in favor of this. This change is in
Partially-implements: blueprint neutron-lib
Some of router functions (i.e. update, delete, etc) have been updated
to invoke ML2 fuctions which are executed in the session's context.
Arista L3 Plugin was invoking router base class funtions in context
as well. This now causes the problem because of upstream changes.
This patch removes those calls from the session's context.
occured -> occurred
Also fixed following spelling typo in comments:
authentification -> authentication
genric -> generic
vaild -> valid
infromation -> information
Signed-off-by: Zhao Lei <email@example.com>
Fixes three unit tests which have been broken since the network
type check was added. Adds the network_type field to the network
context dummy object.