diff --git a/checkov/common/sca/reachability/abstract_alias_mapping_strategy.py b/checkov/common/sca/reachability/abstract_alias_mapping_strategy.py index d8d3e6d1cae..12c7c638252 100644 --- a/checkov/common/sca/reachability/abstract_alias_mapping_strategy.py +++ b/checkov/common/sca/reachability/abstract_alias_mapping_strategy.py @@ -4,7 +4,6 @@ import os from checkov.common.sca.reachability.typing import FileParserOutput -from checkov.common.sca.reachability.commons import add_package_aliases class AbstractAliasMappingStrategy(ABC): @@ -16,6 +15,17 @@ def get_language(self) -> str: def get_file_name_to_parser_map(self) -> Dict[str, Callable[[str, Set[str]], FileParserOutput]]: pass + @staticmethod + def _add_package_aliases(package_aliases_map: Dict[str, Any], language: str, repository_name: str, + file_relative_path: str, package_name: str, package_aliases: List[str]) -> None: + package_aliases_for_file = package_aliases_map.setdefault(language, {"repositories": dict()})["repositories"] \ + .setdefault(repository_name, {"files": dict()})["files"] \ + .setdefault(file_relative_path, {"packageAliases": dict()})["packageAliases"] + if package_name in package_aliases_for_file: + raise Exception(f"aliases for \'{package_name}\' in the file \'{file_relative_path}\' in the repository " + f"\'{repository_name}\' already were set") + package_aliases_for_file[package_name] = {"packageAliases": package_aliases} + def update_alias_mapping(self, alias_mapping: Dict[str, Any], repository_name: str, root_dir: str, relevant_packages: Set[str])\ -> Dict[str, List[str]]: logging.debug("[AbstractAliasMappingStrategy](create_alias_mapping) - starting") @@ -31,8 +41,8 @@ def update_alias_mapping(self, alias_mapping: Dict[str, Any], repository_name: s try: output = file_name_to_parser_map[file_name](file_content, relevant_packages) for package_name in output: - add_package_aliases(alias_mapping, self.get_language(), repository_name, file_relative_path, - package_name, output[package_name]["packageAliases"]) + self._add_package_aliases(alias_mapping, self.get_language(), repository_name, + file_relative_path, package_name, output[package_name]["packageAliases"]) logging.debug( f"[AbstractAliasMappingStrategy](create_alias_mapping) - done parsing for ${file_name}") except Exception: diff --git a/checkov/common/sca/reachability/commons.py b/checkov/common/sca/reachability/commons.py deleted file mode 100644 index 6705b7d887a..00000000000 --- a/checkov/common/sca/reachability/commons.py +++ /dev/null @@ -1,11 +0,0 @@ -from typing import Dict, List, Any - - -def add_package_aliases(package_aliases_map: Dict[str, Any], language: str, repository_name: str, - file_relative_path: str, package_name: str, package_aliases: List[str]) -> None: - package_aliases_for_file = package_aliases_map.setdefault(language, {"repositories": dict()})["repositories"]\ - .setdefault(repository_name, {"files": dict()})["files"].setdefault(file_relative_path, {"packageAliases": dict()})["packageAliases"] - if package_name in package_aliases_for_file: - raise Exception(f"aliases for \'{package_name}\' in the file \'{file_relative_path}\' in the repository " - f"\'{repository_name}\' already were set") - package_aliases_for_file[package_name] = {"packageAliases": package_aliases}