diff --git a/vppcfg/vpp/vppapi.py b/vppcfg/vpp/vppapi.py index edc1ee7..e0d3de2 100644 --- a/vppcfg/vpp/vppapi.py +++ b/vppcfg/vpp/vppapi.py @@ -381,18 +381,20 @@ 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") + 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 + except AttributeError as err: + self.logger.warning(f"ACL API not found - missing plugin: {err}") try: self.logger.debug("Retrieving ACLs")