""" Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: MIT-0 """ from cfnlint.rules import CloudFormationLintRule, RuleMatch class Used(CloudFormationLintRule): """Check if Mappings are used anywhere in the template""" id = "W7001" shortdesc = "Check if Mappings are Used" description = "Making sure the mappings defined are used" source_url = "https://github.com/aws-cloudformation/cfn-python-lint" tags = ["mappings"] def match(self, cfn): matches = [] findinmap_mappings = [] mappings = cfn.template.get("Mappings", {}) if mappings: # Get all "FindInMaps" that reference a Mapping maptrees = cfn.transform_pre["Fn::FindInMap"] for maptree in maptrees: if isinstance(maptree[-1], list): map_name = maptree[-1][0] if isinstance(map_name, dict): self.logger.debug( "Mapping Name has a function that can have too many variations. " "Disabling check %s", self.id, ) return matches findinmap_mappings.append(maptree[-1][0]) else: findinmap_mappings.append(maptree[-1]) # Check if the mappings are used for mapname, _ in mappings.items(): if mapname not in findinmap_mappings: message = "Mapping '{0}' is defined but not used" matches.append( RuleMatch(["Mappings", mapname], message.format(mapname)) ) return matches
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
ApproachingLimitAttributes.py | File | 1.51 KB | 0644 |
|
ApproachingLimitName.py | File | 697 B | 0644 |
|
ApproachingLimitNumber.py | File | 685 B | 0644 |
|
Configuration.py | File | 2.24 KB | 0644 |
|
KeyName.py | File | 2.58 KB | 0644 |
|
LimitAttributes.py | File | 1.44 KB | 0644 |
|
LimitName.py | File | 699 B | 0644 |
|
LimitNumber.py | File | 687 B | 0644 |
|
Name.py | File | 644 B | 0644 |
|
Used.py | File | 1.72 KB | 0644 |
|
__init__.py | File | 106 B | 0644 |
|