awslabs / aws-service-catalog-puppet
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
  • 28% duplication:
    • 15,775 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 4,460 duplicated lines
  • 609 duplicates
system28% (4,460 lines)
Duplication per Extension
py26% (3,661 lines)
yaml39% (799 lines)
Duplication per Component (primary)
servicecatalog_puppet28% (1,375 lines)
servicecatalog_puppet/workflow/portfolio29% (500 lines)
servicecatalog_puppet/workflow/stack54% (438 lines)
servicecatalog_puppet/workflow/workspaces56% (423 lines)
servicecatalog_puppet/template_builder/hub27% (337 lines)
servicecatalog_puppet/workflow/launch34% (334 lines)
servicecatalog_puppet/commands11% (158 lines)
servicecatalog_puppet/workflow/spoke_local_portfolios41% (156 lines)
servicecatalog_puppet/workflow/service_control_policies33% (112 lines)
servicecatalog_puppet/workflow/simulate_policies42% (98 lines)
servicecatalog_puppet/workflow/codebuild_runs41% (83 lines)
servicecatalog_puppet/workflow/assertions42% (82 lines)
servicecatalog_puppet/workflow6% (78 lines)
servicecatalog_puppet/workflow/lambda_invocations32% (66 lines)
servicecatalog_puppet/workflow/generic30% (57 lines)
servicecatalog_puppet/workflow/apps47% (55 lines)
servicecatalog_puppet/workflow/manifest10% (37 lines)
servicecatalog_puppet/workflow/general13% (36 lines)
servicecatalog_puppet/workflow/generate13% (23 lines)
servicecatalog_puppet/manifests12% (12 lines)
servicecatalog_puppet/template_builder0% (0 lines)
servicecatalog_puppet/templates0% (0 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G servicecatalog_puppet/workflow/launch servicecatalog_puppet/workflow/launch servicecatalog_puppet/workflow/stack servicecatalog_puppet/workflow/stack servicecatalog_puppet/workflow/launch--servicecatalog_puppet/workflow/stack 290 servicecatalog_puppet/workflow/workspaces servicecatalog_puppet/workflow/workspaces servicecatalog_puppet/workflow/launch--servicecatalog_puppet/workflow/workspaces 134 servicecatalog_puppet/workflow/portfolio servicecatalog_puppet/workflow/portfolio servicecatalog_puppet/workflow/launch--servicecatalog_puppet/workflow/portfolio 52 servicecatalog_puppet/workflow/stack--servicecatalog_puppet/workflow/workspaces 147 servicecatalog_puppet servicecatalog_puppet servicecatalog_puppet/commands servicecatalog_puppet/commands servicecatalog_puppet--servicecatalog_puppet/commands 135 servicecatalog_puppet/workflow/apps servicecatalog_puppet/workflow/apps servicecatalog_puppet/workflow/apps--servicecatalog_puppet/workflow/launch 95 servicecatalog_puppet/workflow/apps--servicecatalog_puppet/workflow/stack 64 servicecatalog_puppet/workflow/apps--servicecatalog_puppet/workflow/workspaces 128 servicecatalog_puppet/workflow/assertions servicecatalog_puppet/workflow/assertions servicecatalog_puppet/workflow/apps--servicecatalog_puppet/workflow/assertions 54 servicecatalog_puppet/workflow/lambda_invocations servicecatalog_puppet/workflow/lambda_invocations servicecatalog_puppet/workflow/apps--servicecatalog_puppet/workflow/lambda_invocations 54 servicecatalog_puppet/template_builder/hub servicecatalog_puppet/template_builder/hub servicecatalog_puppet/template_builder/hub--servicecatalog_puppet/workflow/workspaces 99 servicecatalog_puppet/workflow/codebuild_runs servicecatalog_puppet/workflow/codebuild_runs servicecatalog_puppet/workflow/simulate_policies servicecatalog_puppet/workflow/simulate_policies servicecatalog_puppet/workflow/codebuild_runs--servicecatalog_puppet/workflow/simulate_policies 58 servicecatalog_puppet/workflow/assertions--servicecatalog_puppet/workflow/launch 50 servicecatalog_puppet/workflow/assertions--servicecatalog_puppet/workflow/lambda_invocations 54 servicecatalog_puppet/workflow/lambda_invocations--servicecatalog_puppet/workflow/launch 50

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 609 duplicates...
Size#FoldersFilesLinesCode
84 x 2 servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
terminate_dry_run_workspace_task.py
terminate_workspace_task.py
22:120 (91%)
22:120 (89%)
view
84 x 2 servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
provision_dry_run_workspace_task.py
terminate_dry_run_workspace_task.py
22:120 (91%)
22:120 (91%)
view
84 x 2 servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
provision_dry_run_workspace_task.py
terminate_workspace_task.py
22:120 (91%)
22:120 (89%)
view
66 x 2 servicecatalog_puppet
servicecatalog_puppet
manifest_utils.py
manifest_utils.py
861:928 (4%)
962:1029 (4%)
view
51 x 2 servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
provision_workspace_task.py
terminate_dry_run_workspace_task.py
61:117 (40%)
62:118 (55%)
view
51 x 2 servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
provision_dry_run_workspace_task.py
provision_workspace_task.py
62:118 (55%)
61:117 (40%)
view
51 x 2 servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
provision_workspace_task.py
terminate_workspace_task.py
61:117 (40%)
62:118 (54%)
view
35 x 2 servicecatalog_puppet/workflow/stack
servicecatalog_puppet/workflow/stack
provision_stack_task.py
terminate_stack_task.py
106:142 (11%)
62:98 (44%)
view
34 x 2 servicecatalog_puppet
servicecatalog_puppet
servicecatalog-puppet.template.yaml
servicecatalog-puppet.template.yaml
683:718 (3%)
839:873 (3%)
view
32 x 2 servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
provision_workspace_task.py
terminate_workspace_task.py
20:59 (25%)
22:61 (34%)
view
32 x 2 servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
provision_dry_run_workspace_task.py
provision_workspace_task.py
22:61 (34%)
20:59 (25%)
view
32 x 2 servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
provision_workspace_task.py
terminate_dry_run_workspace_task.py
20:59 (25%)
22:61 (34%)
view
31 x 2 servicecatalog_puppet
servicecatalog_puppet
servicecatalog-puppet.template.yaml
servicecatalog-puppet.template.yaml
615:646 (3%)
762:794 (3%)
view
30 x 2 servicecatalog_puppet/workflow/simulate_policies
servicecatalog_puppet/workflow/simulate_policies
do_execute_simulate_policy_task.py
execute_simulate_policy_task.py
13:47 (39%)
15:49 (51%)
view
29 x 2 servicecatalog_puppet
servicecatalog_puppet
servicecatalog-puppet.template.yaml
servicecatalog-puppet.template.yaml
768:798 (3%)
848:877 (3%)
view
28 x 2 servicecatalog_puppet/workflow/launch
servicecatalog_puppet/workflow/launch
do_terminate_product_task.py
terminate_product_task.py
18:54 (32%)
12:48 (53%)
view
27 x 2 servicecatalog_puppet
servicecatalog_puppet
servicecatalog-puppet.template.yaml
servicecatalog-puppet.template.yaml
621:648 (2%)
692:720 (2%)
view
27 x 2 servicecatalog_puppet/workflow/launch
servicecatalog_puppet/workflow/launch
provision_product_task.py
terminate_product_task.py
20:54 (10%)
12:46 (51%)
view
27 x 2 servicecatalog_puppet
servicecatalog_puppet
aws.py
aws.py
366:393 (5%)
422:449 (5%)
view
27 x 2 servicecatalog_puppet/workflow/launch
servicecatalog_puppet/workflow/launch
do_terminate_product_task.py
provision_product_task.py
18:52 (31%)
20:54 (10%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 22 unit duplicates...
Size#FoldersFilesLinesCode
32 x 2 servicecatalog_puppet/workflow/stack
servicecatalog_puppet/workflow/stack
provision_stack_task.py
terminate_stack_task.py
0:0 
0:0 
view
15 x 2 servicecatalog_puppet/workflow/stack
servicecatalog_puppet/workflow/stack
terminate_stack_dry_run_task.py
provision_stack_dry_run_task.py
0:0 
0:0 
view
10 x 3 servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
terminate_workspace_task.py
terminate_dry_run_workspace_task.py
provision_dry_run_workspace_task.py
0:0 
0:0 
0:0 
view
9 x 3 servicecatalog_puppet/wo.../portfolio/associations
servicecatalog_puppet/workflow/portfolio/accessors
servicecatalog_puppet/workflow/portfolio/accessors
create_associations_in_python_for_por...
search_products_as_admin_task.py
describe_product_as_admin_task.py
0:0 
0:0 
0:0 
view
9 x 2 servicecatalog_puppet/wo...olio/sharing_management
servicecatalog_puppet/wo...olio/sharing_management
share_portfolio_task.py
share_portfolio_via_orgs_task.py
0:0 
0:0 
view
9 x 2 servicecatalog_puppet/workflow/portfolio/accessors
servicecatalog_puppet/workflow/portfolio/accessors
get_version_id_by_version_name_task.py
get_version_details_by_names_task.py
0:0 
0:0 
view
8 x 2 servicecatalog_puppet
servicecatalog_puppet/commands
cli.py
spoke_management.py
0:0 
0:0 
view
8 x 2 servicecatalog_puppet/wo...ervice_control_policies
servicecatalog_puppet/wo...ervice_control_policies
execute_service_control_policies_task.py
do_execute_service_control_policies_t...
0:0 
0:0 
view
8 x 4 servicecatalog_puppet/wo.../portfolio/associations
servicecatalog_puppet/wo...io/portfolio_management
servicecatalog_puppet/wo...io/portfolio_management
servicecatalog_puppet/wo.../constraints_management
create_associations_for_spoke_local_p...
import_into_spoke_local_portfolio_tas...
copy_into_spoke_local_portfolio_task.py
create_launch_role_constraints_for_sp...
0:0 
0:0 
0:0 
0:0 
view
8 x 2 servicecatalog_puppet/workflow/portfolio/accessors
servicecatalog_puppet/workflow/portfolio/accessors
get_product_id_by_product_name_task.py
describe_product_as_admin_task.py
0:0 
0:0 
view
7 x 2 servicecatalog_puppet/workflow/lambda_invocations
servicecatalog_puppet/workflow/lambda_invocations
invoke_lambda_task.py
do_invoke_lambda_task.py
0:0 
0:0 
view
7 x 4 servicecatalog_puppet/wo.../spoke_local_portfolios
servicecatalog_puppet/wo.../spoke_local_portfolios
servicecatalog_puppet/wo.../spoke_local_portfolios
servicecatalog_puppet/wo.../spoke_local_portfolios
do_terminate_portfolio_in_spoke_task.py
terminate_portfolio_in_spoke_task.py
do_share_portfolio_with_spoke_task.py
share_portfolio_with_spoke_task.py
0:0 
0:0 
0:0 
0:0 
view
7 x 3 servicecatalog_puppet/workflow/launch
servicecatalog_puppet/workflow/launch
servicecatalog_puppet/workflow/launch
provision_product_task.py
terminate_product_task.py
do_terminate_product_task.py
0:0 
0:0 
0:0 
view
7 x 4 servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
servicecatalog_puppet/workflow/workspaces
terminate_workspace_task.py
provision_workspace_task.py
terminate_dry_run_workspace_task.py
provision_dry_run_workspace_task.py
0:0 
0:0 
0:0 
0:0 
view
7 x 2 servicecatalog_puppet/workflow/codebuild_runs
servicecatalog_puppet/workflow/codebuild_runs
do_execute_code_build_run_task.py
execute_code_build_run_task.py
0:0 
0:0 
view
7 x 4 servicecatalog_puppet/wo...io/portfolio_management
servicecatalog_puppet/wo...olio/sharing_management
servicecatalog_puppet/workflow/portfolio/accessors
servicecatalog_puppet/workflow/portfolio/accessors
create_spoke_local_portfolio_task.py
share_portfolio_task.py
search_products_as_admin_task.py
get_portfolio_by_portfolio_name_task.py
0:0 
0:0 
0:0 
0:0 
view
7 x 2 servicecatalog_puppet/workflow/assertions
servicecatalog_puppet/workflow/assertions
assert_task.py
do_assert_task.py
0:0 
0:0 
view
7 x 2 servicecatalog_puppet/workflow/stack
servicecatalog_puppet/workflow/stack
provision_stack_task.py
terminate_stack_task.py
0:0 
0:0 
view
7 x 2 servicecatalog_puppet/workflow/simulate_policies
servicecatalog_puppet/workflow/simulate_policies
do_execute_simulate_policy_task.py
execute_simulate_policy_task.py
0:0 
0:0 
view
6 x 2 servicecatalog_puppet
servicecatalog_puppet/commands
cli.py
spoke_management.py
0:0 
0:0 
view