Introduce ignore list for content scans
[releng-anteater.git] / anteater / src / get_lists.py
index d7b0c47..17de7cb 100644 (file)
     Gathers various values from the gate check yaml file and return them to the
     calling instance
 """
+from __future__ import absolute_import
 
-import anteater.utils.anteater_logger as antlog
-import ConfigParser
+import logging
+import six.moves.configparser
 import copy
 import os
 import yaml
 import re
 
-config = ConfigParser.RawConfigParser()
+
+config = six.moves.configparser.RawConfigParser()
 config.read('anteater.conf')
-logger = antlog.Logger(__name__).getLogger()
+logger = logging.getLogger(__name__)
 master_list = config.get('config', 'master_list')
 
 with open(master_list, 'r') as f:
@@ -83,9 +85,11 @@ class GetLists(object):
         file_name = os.path.basename(patch_file)
         try:
             binary_hash = (yl['binaries'][project][file_name])
+            return binary_hash
         except KeyError:
-            logger.error('Key Error processing binary hash values')
-        return binary_hash
+            binary_hash = 'null'
+            return binary_hash
+
 
     def file_audit_list(self, project):
         project_list = False
@@ -96,11 +100,9 @@ class GetLists(object):
             logger.error('Key Error processing file_names list values')
         try:
             project_list = set((yl['file_audits'][project]['file_names']))
-            logger.info('file_names waivers found for {0}'.
-                        format(project))
+            logger.info('file_names waivers found for %s', project)
         except KeyError:
-            logger.info('No file_names waivers found for {0}'.
-                        format(project))
+            logger.info('No file_names waivers found for %s', project)
 
         file_names_re = re.compile("|".join(default_list),
                                    flags=re.IGNORECASE)
@@ -117,25 +119,26 @@ class GetLists(object):
         project_list = False
         self.load_project_exception_file(yl.get('project_exceptions'), project)
         try:
-            default_list = set((yl['file_audits']['file_contents']))
+            master_list = (yl['file_audits']['file_contents'])
+
         except KeyError:
             logger.error('Key Error processing file_contents list values')
+
         try:
             project_list = set((yl['file_audits'][project]['file_contents']))
+            project_list_re = re.compile("|".join(project_list),
+                                               flags=re.IGNORECASE)
         except KeyError:
-            logger.info('No file_contents waivers found  for {0}'.
-                        format(project))
+            logger.info('No file_contents waivers found  for %s', project)
 
-        file_contents_re = re.compile("|".join(default_list),
-                                      flags=re.IGNORECASE)
+        return master_list, project_list_re
 
-        if project_list:
-            file_contents_proj_re = re.compile("|".join(project_list),
-                                               flags=re.IGNORECASE)
-            return file_contents_re, file_contents_proj_re
-        else:
-            file_contents_proj_re = re.compile("")
-            return file_contents_re, file_contents_proj_re
+    def file_ignore(self):
+        try:
+            file_ignore = (yl['file_ignore'])
+        except KeyError:
+            logger.error('Key Error processing file_ignore list values')
+        return file_ignore
 
     def licence_extensions(self):
         try: