awslabs / aws-cloudformation-templates
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 54% duplication:
    • 22,604 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 12,215 duplicated lines
  • 1,129 duplicates
system54% (12,215 lines)
Duplication per Extension
yaml58% (8,749 lines)
yml54% (2,472 lines)
py32% (841 lines)
js37% (153 lines)
Duplication per Component (primary)
aws/services/ECS96% (2,018 lines)
aws/services/ElasticLoadBalancing91% (1,745 lines)
aws/services/AutoScaling86% (1,222 lines)
aws/solutions/CloudFormationEndpointSignals97% (949 lines)
aws/solutions/OperatingSystems88% (936 lines)
aws/solutions/lambda-backed-cloudformation-custom-resources59% (613 lines)
aws/solutions/VPCPeering61% (527 lines)
aws/services/VPC57% (473 lines)
aws/solutions/PrefixListResource69% (393 lines)
aws/solutions/ADConnector49% (334 lines)
aws/services/S370% (312 lines)
aws/solutions/VPCFlowLogs54% (276 lines)
aws/solutions/StackSetsResource30% (234 lines)
aws/services/CloudFormation15% (219 lines)
community/codestar/python-webservice-lambda23% (182 lines)
aws/solutions/ManagedAD62% (169 lines)
aws/solutions/LambaStaticIP68% (162 lines)
community/solutions/StaticWebSiteWithPipeline38% (153 lines)
aws/solutions/DirectoryADClients32% (134 lines)
aws/services/NeptuneDB22% (121 lines)
aws/solutions/DirectoryServiceSettings29% (118 lines)
aws/services/IoT14% (117 lines)
aws/services/EC250% (103 lines)
community/codestar/custom-ci-cd-pipeline32% (89 lines)
community/custom_resources/python_custom_resource_helper96% (79 lines)
aws/solutions19% (74 lines)
aws/services/RDS28% (69 lines)
aws/services/ServiceCatalog20% (68 lines)
aws/solutions/S3CrossAccountReplicationWithKMS33% (66 lines)
aws/solutions/TaggingRootVolumesInEC239% (47 lines)
aws/solutions/Fetch-AMI-From-Parameter-Store78% (37 lines)
aws/solutions/AutomateCreatingHanaBackupBucket8% (36 lines)
aws/solutions/PersistAZMapping20% (30 lines)
aws/services/DynamoDB25% (30 lines)
aws/services/Config13% (26 lines)
aws/services/Cloud929% (26 lines)
aws/solutions/CloudFrontCustomOriginLambda@Edge1% (12 lines)
aws/solutions/S3AccessLogs10% (8 lines)
community/services/Lambda8% (8 lines)
aws/services/IAM0% (0 lines)
aws/services/DirectoryService0% (0 lines)
aws/solutions/EC2DomainJoin0% (0 lines)
community/services/RDS0% (0 lines)
community/solutions0% (0 lines)

Duplication Between Components (50+ lines)

G aws/services/AutoScaling aws/services/AutoScaling aws/services/ElasticLoadBalancing aws/services/ElasticLoadBalancing aws/services/AutoScaling--aws/services/ElasticLoadBalancing 2912 aws/services/VPC aws/services/VPC aws/services/AutoScaling--aws/services/VPC 1047 aws/services/ECS aws/services/ECS aws/services/AutoScaling--aws/services/ECS 78 aws/solutions aws/solutions aws/services/AutoScaling--aws/solutions 136 aws/services/EC2 aws/services/EC2 aws/services/AutoScaling--aws/services/EC2 55 aws/services/ElasticLoadBalancing--aws/services/VPC 1284 aws/solutions/OperatingSystems aws/solutions/OperatingSystems aws/services/ElasticLoadBalancing--aws/solutions/OperatingSystems 54 aws/services/ElasticLoadBalancing--aws/solutions 170 aws/services/VPC--aws/solutions 68 aws/solutions/CloudFormationEndpointSignals aws/solutions/CloudFormationEndpointSignals aws/solutions/PrefixListResource aws/solutions/PrefixListResource aws/solutions/CloudFormationEndpointSignals--aws/solutions/PrefixListResource 1197 aws/solutions/PersistAZMapping aws/solutions/PersistAZMapping aws/solutions/CloudFormationEndpointSignals--aws/solutions/PersistAZMapping 108 aws/solutions/StackSetsResource aws/solutions/StackSetsResource aws/solutions/PrefixListResource--aws/solutions/StackSetsResource 126 aws/services/ECS--aws/services/ElasticLoadBalancing 78 aws/solutions/LambaStaticIP aws/solutions/LambaStaticIP aws/services/ECS--aws/solutions/LambaStaticIP 574 aws/solutions/ADConnector aws/solutions/ADConnector aws/solutions/ManagedAD aws/solutions/ManagedAD aws/solutions/ADConnector--aws/solutions/ManagedAD 410 aws/solutions/DirectoryServiceSettings aws/solutions/DirectoryServiceSettings aws/solutions/ADConnector--aws/solutions/DirectoryServiceSettings 210 aws/solutions/VPCPeering aws/solutions/VPCPeering aws/solutions/ADConnector--aws/solutions/VPCPeering 134 aws/solutions/DirectoryServiceSettings--aws/solutions/VPCPeering 102 aws/solutions/OperatingSystems--aws/solutions 204 community/custom_resources/python_custom_resource_helper community/custom_resources/python_custom_resource_helper aws/solutions/StackSetsResource--community/custom_resources/python_custom_resource_helper 158 aws/services/Cloud9 aws/services/Cloud9 aws/services/Cloud9--aws/solutions/OperatingSystems 114 aws/services/Cloud9--aws/solutions 50 aws/solutions/VPCFlowLogs aws/solutions/VPCFlowLogs aws/solutions/VPCFlowLogs--aws/solutions/VPCPeering 109 aws/solutions/PersistAZMapping--aws/solutions/PrefixListResource 60 aws/solutions/Fetch-AMI-From-Parameter-Store aws/solutions/Fetch-AMI-From-Parameter-Store aws/solutions/lambda-backed-cloudformation-custom-resources aws/solutions/lambda-backed-cloudformation-custom-resources aws/solutions/Fetch-AMI-From-Parameter-Store--aws/solutions/lambda-backed-cloudformation-custom-resources 82 aws/services/NeptuneDB aws/services/NeptuneDB aws/services/ServiceCatalog aws/services/ServiceCatalog aws/services/NeptuneDB--aws/services/ServiceCatalog 82 aws/services/EC2--aws/services/ElasticLoadBalancing 65 aws/services/EC2--aws/solutions/OperatingSystems 72

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 1,129 duplicates...
Size#FoldersFilesLinesCode
328 x 2 aws/services/AutoScaling
aws/services/ElasticLoadBalancing
AutoScalingScheduledAction.yaml
ELBWithLockedDownAutoScaledInstances....
10:337 (71%)
12:339 (73%)
view
324 x 2 aws/services/ElasticLoadBalancing
aws/services/ElasticLoadBalancing
ELBGuidedAutoScalingRollingUpgrade.yaml
ELBWithLockedDownAutoScaledInstances....
12:335 (67%)
12:335 (72%)
view
324 x 2 aws/services/AutoScaling
aws/services/ElasticLoadBalancing
AutoScalingScheduledAction.yaml
ELBGuidedAutoScalingRollingUpgrade.yaml
10:333 (70%)
12:335 (67%)
view
323 x 2 aws/services/AutoScaling
aws/services/ElasticLoadBalancing
AutoScalingScheduledAction.yaml
ELBStickinessSample.yaml
9:331 (70%)
12:334 (70%)
view
322 x 2 aws/services/ElasticLoadBalancing
aws/services/ElasticLoadBalancing
ELBStickinessSample.yaml
ELBWithLockedDownAutoScaledInstances....
13:334 (70%)
12:333 (72%)
view
322 x 2 aws/services/ElasticLoadBalancing
aws/services/ElasticLoadBalancing
ELBGuidedAutoScalingRollingUpgrade.yaml
ELBStickinessSample.yaml
12:333 (66%)
13:334 (70%)
view
321 x 2 aws/services/ElasticLoadBalancing
aws/services/ElasticLoadBalancing
ELBGuidedAutoScalingRollingUpgrade.yaml
ELB_Access_Logs_And_Connection_Draini...
12:332 (66%)
9:329 (61%)
view
321 x 2 aws/services/AutoScaling
aws/services/ElasticLoadBalancing
AutoScalingScheduledAction.yaml
ELB_Access_Logs_And_Connection_Draini...
10:330 (70%)
9:329 (61%)
view
321 x 2 aws/services/ElasticLoadBalancing
aws/services/ElasticLoadBalancing
ELBWithLockedDownAutoScaledInstances....
ELB_Access_Logs_And_Connection_Draini...
12:332 (71%)
9:329 (61%)
view
321 x 2 aws/services/ElasticLoadBalancing
aws/services/ElasticLoadBalancing
ELBStickinessSample.yaml
ELB_Access_Logs_And_Connection_Draini...
13:333 (69%)
9:329 (61%)
view
299 x 2 aws/services/AutoScaling
aws/services/AutoScaling
AutoScalingMultiAZWithNotifications.yaml
AutoScalingScheduledAction.yaml
40:338 (59%)
33:331 (65%)
view
299 x 2 aws/services/AutoScaling
aws/services/ElasticLoadBalancing
AutoScalingMultiAZWithNotifications.yaml
ELBWithLockedDownAutoScaledInstances....
40:338 (59%)
35:333 (67%)
view
299 x 2 aws/services/AutoScaling
aws/services/ElasticLoadBalancing
AutoScalingMultiAZWithNotifications.yaml
ELBStickinessSample.yaml
40:338 (59%)
36:334 (65%)
view
299 x 2 aws/services/AutoScaling
aws/services/ElasticLoadBalancing
AutoScalingMultiAZWithNotifications.yaml
ELBGuidedAutoScalingRollingUpgrade.yaml
40:338 (59%)
35:333 (61%)
view
298 x 2 aws/services/AutoScaling
aws/services/ElasticLoadBalancing
AutoScalingMultiAZWithNotifications.yaml
ELB_Access_Logs_And_Connection_Draini...
40:337 (58%)
32:329 (56%)
view
227 x 2 aws/services/AutoScaling
aws/services/VPC
AutoScalingRollingUpdates.yaml
VPC_EC2_Instance_With_Multiple_Static...
30:256 (50%)
47:273 (57%)
view
218 x 2 aws/services/AutoScaling
aws/services/ElasticLoadBalancing
AutoScalingRollingUpdates.yaml
ELBStickinessSample.yaml
39:256 (48%)
67:284 (47%)
view
218 x 2 aws/services/AutoScaling
aws/services/VPC
AutoScalingMultiAZWithNotifications.yaml
VPC_EC2_Instance_With_Multiple_Static...
71:288 (43%)
56:273 (55%)
view
218 x 2 aws/services/ElasticLoadBalancing
aws/services/VPC
ELB_Access_Logs_And_Connection_Draini...
VPC_EC2_Instance_With_Multiple_Static...
63:280 (41%)
56:273 (55%)
view
218 x 2 aws/services/AutoScaling
aws/services/ElasticLoadBalancing
AutoScalingRollingUpdates.yaml
ELBWithLockedDownAutoScaledInstances....
39:256 (48%)
66:283 (48%)
view
Duplicated Units
The list of top 12 duplicated units.
See data for all 12 unit duplicates...
Size#FoldersFilesLinesCode
34 x 2 community/solutions/Stat...iteWithPipeline/lambdas
community/solutions/Stat...iteWithPipeline/lambdas
getHostedZoneName.js
clearBuckets.js
26:69 
67:110 
view
30 x 2 aws/solutions/StackSetsResource/FunctionCode
community/custom_resourc..._custom_resource_helper
crhelper.py
crhelper.py
0:0 
0:0 
view
25 x 3 aws/solutions/lambda-bac.../update_endpoint_policy
aws/solutions/lambda-bac...urces/update_kms_policy
aws/solutions/lambda-bac...urces/get_latest_ami_id
lambda_function.py
lambda_function.py
lambda_function.py
0:0 
0:0 
0:0 
view
21 x 2 aws/solutions/Fetch-AMI-From-Parameter-Store
aws/solutions/lambda-bac...MI-From-Parameter-Store
lambda_function.py
lambda_function.py
0:0 
0:0 
view
21 x 3 aws/solutions/lambda-bac.../update_endpoint_policy
aws/solutions/lambda-bac...urces/update_kms_policy
aws/solutions/lambda-bac...urces/get_latest_ami_id
lambda_function.py
lambda_function.py
lambda_function.py
0:0 
0:0 
0:0 
view
20 x 3 aws/solutions/StackSetsResource/FunctionCode
aws/solutions/PrefixListResource/FunctionCode
community/custom_resourc..._custom_resource_helper
crhelper.py
crhelper.py
crhelper.py
0:0 
0:0 
0:0 
view
20 x 3 aws/solutions/PrefixListResource/FunctionCode
aws/solutions/StackSetsResource/FunctionCode
community/custom_resourc..._custom_resource_helper
crhelper.py
crhelper.py
crhelper.py
0:0 
0:0 
0:0 
view
17 x 3 aws/solutions/lambda-bac.../update_endpoint_policy
aws/solutions/lambda-bac...urces/update_kms_policy
aws/solutions/lambda-bac...urces/get_latest_ami_id
lambda_function.py
lambda_function.py
lambda_function.py
0:0 
0:0 
0:0 
view
10 x 3 aws/solutions/lambda-bac.../update_endpoint_policy
aws/solutions/lambda-bac...urces/update_kms_policy
aws/solutions/lambda-bac...urces/get_latest_ami_id
lambda_function.py
lambda_function.py
lambda_function.py
0:0 
0:0 
0:0 
view
10 x 2 aws/solutions/lambda-bac.../update_endpoint_policy
aws/solutions/lambda-bac...urces/get_latest_ami_id
lambda_function.py
lambda_function.py
0:0 
0:0 
view
6 x 2 community/solutions/Stat...iteWithPipeline/lambdas
community/solutions/Stat...iteWithPipeline/lambdas
requestCertificate.js
approveCertificate.js
3:11 
3:11 
view
7 x 2 aws/solutions/ADConnector/src
aws/solutions/DirectoryServiceSettings/src
adconnector_custom_resource.py
directory_settings_custom_resource.py
0:0 
0:0 
view