Ejemplo n.º 1
0
    def check_tf_definition(self,
                            report,
                            root_folder,
                            runner_filter,
                            collect_skip_comments=True,
                            external_definitions_context=None):
        parser_registry.reset_definitions_context()
        if external_definitions_context:
            definitions_context = external_definitions_context
        else:
            definitions_context = {}
            for definition in self.tf_definitions.items():
                definitions_context = parser_registry.enrich_definitions_context(
                    definition, collect_skip_comments)
            self.definitions_context = definitions_context
            logging.debug('Created definitions context')

        for full_file_path, definition in self.tf_definitions.items():
            abs_scanned_file, abs_referrer = self._strip_module_referrer(
                full_file_path)
            scanned_file = f"/{os.path.relpath(abs_scanned_file, root_folder)}"
            logging.debug(f"Scanning file: {scanned_file}")
            self.run_all_blocks(definition, definitions_context,
                                full_file_path, root_folder, report,
                                scanned_file, runner_filter, abs_referrer)
Ejemplo n.º 2
0
    def check_tf_definition(self,
                            report,
                            root_folder,
                            runner_filter,
                            collect_skip_comments=True,
                            external_definitions_context=None):
        parser_registry.reset_definitions_context()
        logging.debug('Evaluating string booleans')
        self.evaluate_string_booleans()
        logging.debug('Evaluated string booleans')
        if external_definitions_context:
            definitions_context = external_definitions_context
        else:
            logging.debug('Creating definitions context')
            definitions_context = {}
            for definition in self.tf_definitions.items():
                definitions_context = parser_registry.enrich_definitions_context(
                    definition, collect_skip_comments)
            variable_evaluator = ConstVariableEvaluation(
                root_folder, self.tf_definitions, definitions_context)
            variable_evaluator.evaluate_variables()
            self.tf_definitions, self.definitions_context = variable_evaluator.tf_definitions, variable_evaluator.definitions_context
            logging.debug('Created definitions context')

        for full_file_path, definition in self.tf_definitions.items():
            scanned_file = f"/{os.path.relpath(full_file_path, root_folder)}"
            logging.debug(f"Scanning file: {scanned_file}")
            for block_type in definition.keys():
                if block_type in ['resource', 'data', 'provider', 'module']:
                    self.run_block(definition[block_type], definitions_context,
                                   full_file_path, report, scanned_file,
                                   block_type, runner_filter)
Ejemplo n.º 3
0
 def check_tf_definition(self, report, root_folder):
     definitions_context = {}
     parser_registry.reset_definitions_context()
     for definition in self.tf_definitions.items():
         definitions_context = parser_registry.enrich_definitions_context(definition)
     self.evaluate_string_booleans()
     variable_evaluator = ConstVariableEvaluation(root_folder, self.tf_definitions, definitions_context)
     variable_evaluator.evaluate_variables()
     self.tf_definitions, self.definitions_context = variable_evaluator.tf_definitions, variable_evaluator.definitions_context
     for full_file_path, definition in self.tf_definitions.items():
         scanned_file = f"/{os.path.relpath(full_file_path, root_folder)}"
         logging.debug(f"Scanning file: {scanned_file}")
         for block_type in definition.keys():
             if block_type in ['resource', 'data', 'provider']:
                 self.run_block(definition[block_type], definitions_context, full_file_path, report, scanned_file,
                                block_type)