diff options
author | lhinds <lhinds@redhat.com> | 2017-10-10 14:13:55 +0100 |
---|---|---|
committer | lhinds <lhinds@redhat.com> | 2017-10-10 14:20:48 +0100 |
commit | 1d191aa05617587f889880bb5344c84a422706e5 (patch) | |
tree | a9f9dcdbc0a87186ae01aa2f08e364b1f1458d07 /anteater/src/get_lists.py | |
parent | 3cae5dfd7bbcb64f1ac6fb2263043b251a15ebc0 (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.py | 51 |
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 |