Esempio n. 1
0
    def test_non_colliding_graph_check_ids(self):
        check_id_check_class_map = {}
        graph_registry = Registry(parser=NXGraphCheckParser())
        graph_registry.load_checks()
        for check in graph_registry.checks:
            check_id_check_class_map.setdefault(check.id, []).append(check)

        for check_id, check_classes in check_id_check_class_map.items():
            self.assertEqual(len(set(check_classes)), 1,
                             "collision on check_id={}".format(check_id))
Esempio n. 2
0
 def setUp(self):
     self.source = "Terraform"
     self.registry = Registry(parser=NXGraphCheckParser(), checks_dir=self.checks_dir)
     self.registry.load_checks()
     self.runner = Runner(external_registries=[self.registry])
Esempio n. 3
0
 def test_registry_load(self):
     registry = Registry(parser=NXGraphCheckParser())
     registry.load_checks()
     self.assertGreater(len(registry.checks), 0)
Esempio n. 4
0
from checkov.terraform.checks_infra.registry import Registry
from checkov.terraform.context_parsers.registry import parser_registry
from checkov.terraform.evaluation.base_variable_evaluation import BaseVariableEvaluation
from checkov.terraform.graph_builder.graph_components.attribute_names import CustomAttributes
from checkov.terraform.graph_builder.graph_to_tf_definitions import convert_graph_vertices_to_tf_definitions
from checkov.terraform.graph_builder.local_graph import LocalGraph
from checkov.terraform.graph_manager import GraphManager

# Allow the evaluation of empty variables
from checkov.terraform.parser import Parser
from checkov.terraform.tag_providers import get_resource_tags

dpath.options.ALLOW_EMPTY_STRING_KEYS = True

CHECK_BLOCK_TYPES = frozenset(['resource', 'data', 'provider', 'module'])
graph_registry = Registry(parser=NXGraphCheckParser())


class Runner(BaseRunner):
    check_type = "terraform"

    def __init__(self,
                 parser=Parser(),
                 db_connector=NetworkxConnector(),
                 external_registries=None,
                 source="Terraform",
                 graph_class=LocalGraph,
                 graph_manager=None):
        self.external_registries = [] if external_registries is None else external_registries
        self.graph_class = graph_class
        self.parser = parser