aboutsummaryrefslogtreecommitdiffstats
path: root/anteater/src/get_lists.py
diff options
context:
space:
mode:
authorlhinds <lhinds@redhat.com>2017-10-10 14:13:55 +0100
committerlhinds <lhinds@redhat.com>2017-10-10 14:20:48 +0100
commit1d191aa05617587f889880bb5344c84a422706e5 (patch)
treea9f9dcdbc0a87186ae01aa2f08e364b1f1458d07 /anteater/src/get_lists.py
parent3cae5dfd7bbcb64f1ac6fb2263043b251a15ebc0 (diff)
Implements master ignore list
This change introduces a master ignore list, to save having to repeat ignore strings in every project exception file. This is achieved via a new ignore_list.yaml file that is merged with the project exception list and then used for the re.search ignore statement in both patch_scan.py and project_scan.py Change-Id: Ifb60b8ba3091603182c2025dbbbfd1a88a72439b Signed-off-by: lhinds <lhinds@redhat.com>
Diffstat (limited to 'anteater/src/get_lists.py')
-rw-r--r--anteater/src/get_lists.py51
1 files changed, 32 insertions, 19 deletions
diff --git a/anteater/src/get_lists.py b/anteater/src/get_lists.py
index 17de7cb..ff63442 100644
--- a/anteater/src/get_lists.py
+++ b/anteater/src/get_lists.py
@@ -27,9 +27,13 @@ config = six.moves.configparser.RawConfigParser()
config.read('anteater.conf')
logger = logging.getLogger(__name__)
master_list = config.get('config', 'master_list')
+ignore_list = config.get('config', 'ignore_list')
with open(master_list, 'r') as f:
- yl = yaml.safe_load(f)
+ ml = yaml.safe_load(f)
+
+with open(ignore_list, 'r') as f:
+ il = yaml.safe_load(f)
def _remove_nullvalue(contents):
@@ -65,14 +69,14 @@ class GetLists(object):
with open(exception_file, 'r') as f:
ex = yaml.safe_load(f)
for key in ex:
- if key in yl:
- yl[key][project] = _merge(yl[key][project], ex.get(key, None)) \
- if project in yl[key] else ex.get(key, None)
+ if key in ml:
+ ml[key][project] = _merge(ml[key][project], ex.get(key, None)) \
+ if project in ml[key] else ex.get(key, None)
self.loaded = True
def binary_list(self, project):
try:
- default_list = (yl['binaries']['binary_ignore'])
+ default_list = (ml['binaries']['binary_ignore'])
except KeyError:
logger.error('Key Error processing binary list values')
@@ -81,10 +85,10 @@ class GetLists(object):
return binary_re
def binary_hash(self, project, patch_file):
- self.load_project_exception_file(yl.get('project_exceptions'), project)
+ self.load_project_exception_file(ml.get('project_exceptions'), project)
file_name = os.path.basename(patch_file)
try:
- binary_hash = (yl['binaries'][project][file_name])
+ binary_hash = (ml['binaries'][project][file_name])
return binary_hash
except KeyError:
binary_hash = 'null'
@@ -93,13 +97,13 @@ class GetLists(object):
def file_audit_list(self, project):
project_list = False
- self.load_project_exception_file(yl.get('project_exceptions'), project)
+ self.load_project_exception_file(ml.get('project_exceptions'), project)
try:
- default_list = set((yl['file_audits']['file_names']))
+ default_list = set((ml['file_audits']['file_names']))
except KeyError:
logger.error('Key Error processing file_names list values')
try:
- project_list = set((yl['file_audits'][project]['file_names']))
+ project_list = set((ml['file_audits'][project]['file_names']))
logger.info('file_names waivers found for %s', project)
except KeyError:
logger.info('No file_names waivers found for %s', project)
@@ -117,39 +121,48 @@ class GetLists(object):
def file_content_list(self, project):
project_list = False
- self.load_project_exception_file(yl.get('project_exceptions'), project)
+ self.load_project_exception_file(ml.get('project_exceptions'), project)
try:
- master_list = (yl['file_audits']['file_contents'])
+ master_list = (ml['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)
+ ignore_list = il['file_audits']['file_contents']
+
+ except KeyError:
+ logger.error('Key Error processing file_contents list values')
+
+ try:
+ project_list = ml['file_audits'][project]['file_contents']
+
except KeyError:
logger.info('No file_contents waivers found for %s', project)
- return master_list, project_list_re
+ ignore_list_merge = project_list + ignore_list
+
+ ignore_list_re = re.compile("|".join(ignore_list_merge), flags=re.IGNORECASE)
+
+ return master_list, ignore_list_re
def file_ignore(self):
try:
- file_ignore = (yl['file_ignore'])
+ file_ignore = (ml['file_ignore'])
except KeyError:
logger.error('Key Error processing file_ignore list values')
return file_ignore
def licence_extensions(self):
try:
- licence_extensions = (yl['licence']['licence_ext'])
+ licence_extensions = (ml['licence']['licence_ext'])
except KeyError:
logger.error('Key Error processing licence_extensions list values')
return licence_extensions
def licence_ignore(self):
try:
- licence_ignore = (yl['licence']['licence_ignore'])
+ licence_ignore = (ml['licence']['licence_ignore'])
except KeyError:
logger.error('Key Error processing licence_ignore list values')
return licence_ignore