Populate network mtu for erspan

Change-Id: Ic4753ba768080149b54f391c44185ec27e006044
(cherry picked from commit f26eed9182)
This commit is contained in:
snehal tembhurne 2022-04-21 19:07:24 -07:00
parent 440d226b09
commit 4635b00590
2 changed files with 23 additions and 4 deletions

View File

@ -1283,6 +1283,8 @@ class ApicMechanismDriver(api_plus.MechanismDriver,
cep_dn = self._map_port(session, port_db)
resources = self._get_erspan_aim_resources_list(port_db, cep_dn)
if resources:
self.update_summary_resource(session, resources,
port_db['network_id'])
aim_resources.extend(resources)
binding = (port_db.port_binding
if port_db.port_binding else None)
@ -2777,6 +2779,18 @@ class ApicMechanismDriver(api_plus.MechanismDriver,
port['id'], cep_dn, erspan_config))
return resources
def update_summary_resource(self, session, resources, network_id):
for resource in resources:
if type(resource) == aim_resource.SpanVepgSummary:
with session.begin(subtransactions=True):
query = BAKERY(lambda s: s.query(
models_v2.Network))
query += lambda q: q.filter_by(
id=network_id)
net = query(session).params().first()
if net:
resource.mtu = net.mtu
def _get_acc_bundle_for_host(self, aim_ctx, host_name):
if not host_name:
return None
@ -2821,6 +2835,9 @@ class ApicMechanismDriver(api_plus.MechanismDriver,
for erspan_config in port.get(cisco_apic.ERSPAN_CONFIG, []):
resources = self._get_erspan_aim_resources(port['id'], cep_dn,
erspan_config)
if resources:
self.update_summary_resource(session, resources,
port['network_id'])
# Create ERSPAN source group and source
if not self.aim.get(aim_ctx, resources[0]):
self.aim.create(aim_ctx, resources[0])
@ -7135,6 +7152,8 @@ class ApicMechanismDriver(api_plus.MechanismDriver,
cep_dn = self._map_port(mgr.actual_session, port_db)
resources = self._get_erspan_aim_resources_list(port_db,
cep_dn)
self.update_summary_resource(mgr.actual_session, resources,
port_db['network_id'])
# Copy the bundle group pre-existing resources, if they
# are monitored, from the actual AIM store to the validation
# AIM store, so that the resource behaves as expected

View File

@ -7665,7 +7665,7 @@ class TestExtensionAttributes(ApicAimTestCase):
name=dest_name)],
[aim_resource.SpanVepgSummary(vdg_name=dest_name,
vd_name=dest_name, dst_ip='192.168.0.10',
flow_id='1023')]]
flow_id='1023', mtu=str(net['network']['mtu']))]]
dest_resources.append([
aim_resource.InfraAccBundleGroup(name=host1_pg,
span_vsource_group_names=[source_resources[0][0].name],
@ -7697,7 +7697,7 @@ class TestExtensionAttributes(ApicAimTestCase):
name=dest_name))
dest_resources[2].append(aim_resource.SpanVepgSummary(
vdg_name=dest_name, vd_name=dest_name, dst_ip='192.168.0.11',
flow_id='1022'))
flow_id='1022', mtu=str(net['network']['mtu'])))
dest_resources[3] = [aim_resource.InfraAccBundleGroup(
name=host1_pg,
span_vsource_group_names=[res.name for res in source_resources[0]],
@ -7753,8 +7753,8 @@ class TestExtensionAttributes(ApicAimTestCase):
[aim_resource.SpanVdest(vdg_name=dest_name,
name=dest_name)],
[aim_resource.SpanVepgSummary(vdg_name=dest_name,
vd_name=dest_name, dst_ip='192.168.0.10',
flow_id='1023')]]
vd_name=dest_name, dst_ip='192.168.0.10', flow_id='1023',
mtu=str(net['network']['mtu']))]]
dest_resources.append([aim_resource.InfraAccBundleGroup(
name=host1_pg,
span_vsource_group_names=[res.name for res in source_resources[0]],