From a4dfbf055fe264b6be34e35584f0dd37b8da88bb Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Mon, 16 Jan 2023 19:07:04 +0000 Subject: [PATCH] Refuse to work with ACLs if there are duplicate tags -- it means something/somebody has been inserting them outside of vppcfg, and this breaks the requirement that vppcfg.acls. is the same uniquely identified vpp.acl.tag --- vppcfg/vpp/vppapi.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/vppcfg/vpp/vppapi.py b/vppcfg/vpp/vppapi.py index 639c3f1..edc1ee7 100644 --- a/vppcfg/vpp/vppapi.py +++ b/vppcfg/vpp/vppapi.py @@ -381,6 +381,18 @@ class VPPApi: self.logger.warning( f"MPLS state retrieval requires https://gerrit.fd.io/r/c/vpp/+/39022" ) +======= + self.logger.debug("Retrieving ACLs") + api_response = self.vpp.api.acl_dump(acl_index=0xFFFFFFFF) + for acl in api_response: + self.cache["acls"][acl.acl_index] = acl + if acl.tag in self.cache["acl_tags"]: + self.logger.error( + f"Duplicate ACL tag '{acl.tag}' found - cannot safely preoceed, bailing" + ) + return False + self.cache["acl_tags"][acl.tag] = acl.acl_index +>>>>>>> ace08ac (Refuse to work with ACLs if there are duplicate tags -- it means something/somebody has been inserting them outside of vppcfg, and this breaks the requirement that vppcfg.acls. is the same uniquely identified vpp.acl.tag) try: self.logger.debug("Retrieving ACLs")