yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #38345
[Bug 1494310] [NEW] Arista ML2 driver doesn't synchronize HA networks with EOS correctly
Public bug reported:
Running Openstack Kilo and networking-arista from master (1aa15e8).
With some HA networks already created in Neutron (created automatically
when adding HA routers), restarting the CVX and neutron-server lead to
those networks disappearing from EOS (not listed by "show openstack
networks" anymore).
The problem seems to come from _cleanup_db() in
neutron/plugins/ml2/drivers/arista/mechanism_arista.py, which is called
by initialize() in the same file:
def _cleanup_db(self):
"""Clean up any uncessary entries in our DB."""
db_tenants = db_lib.get_tenants()
for tenant in db_tenants:
neutron_nets = self.ndb.get_all_networks_for_tenant(tenant)
neutron_nets_id = []
for net in neutron_nets:
neutron_nets_id.append(net['id'])
db_nets = db_lib.get_networks(tenant)
for net_id in db_nets.keys():
if net_id not in neutron_nets_id:
db_lib.forget_network(tenant, net_id)
Since HA networks have no tenant_id, they won't be returned by
self.ndb.get_all_networks_for_tenant(tenant), so they will be removed
from the DB and won't be added to EOS during synchronization (checking
the arista_provisioned_nets table in the neutron database shows that the
HA networks are indeed missing, while they are listed by "neutron net-
list").
** Affects: neutron
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1494310
Title:
Arista ML2 driver doesn't synchronize HA networks with EOS correctly
Status in neutron:
New
Bug description:
Running Openstack Kilo and networking-arista from master (1aa15e8).
With some HA networks already created in Neutron (created
automatically when adding HA routers), restarting the CVX and neutron-
server lead to those networks disappearing from EOS (not listed by
"show openstack networks" anymore).
The problem seems to come from _cleanup_db() in
neutron/plugins/ml2/drivers/arista/mechanism_arista.py, which is
called by initialize() in the same file:
def _cleanup_db(self):
"""Clean up any uncessary entries in our DB."""
db_tenants = db_lib.get_tenants()
for tenant in db_tenants:
neutron_nets = self.ndb.get_all_networks_for_tenant(tenant)
neutron_nets_id = []
for net in neutron_nets:
neutron_nets_id.append(net['id'])
db_nets = db_lib.get_networks(tenant)
for net_id in db_nets.keys():
if net_id not in neutron_nets_id:
db_lib.forget_network(tenant, net_id)
Since HA networks have no tenant_id, they won't be returned by
self.ndb.get_all_networks_for_tenant(tenant), so they will be removed
from the DB and won't be added to EOS during synchronization (checking
the arista_provisioned_nets table in the neutron database shows that
the HA networks are indeed missing, while they are listed by "neutron
net-list").
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1494310/+subscriptions
Follow ups