diff --git a/lib/mentat/module/netmngr.py b/lib/mentat/module/netmngr.py index 04af416fd3b5dde031c7dcc2becb08d01fcc7fa0..a919e9822cd6cdecc186ea460fc11afa96d300dc 100644 --- a/lib/mentat/module/netmngr.py +++ b/lib/mentat/module/netmngr.py @@ -382,7 +382,7 @@ class MentatNetmngrScript(mentat.script.fetcher.FetcherScript): self._check_emails(abuse_group_dict, wi_file_data) self._groups_create_missing(abuse_group_dict, wi_file_data, wi_file_type, result, status_only) self._groups_remove_extra(abuse_group_dict, wi_file_data, wi_file_type, result, status_only) - self._groups_update_existing(abuse_group_dict, wi_file_data, result, status_only) + self._groups_update_existing(abuse_group_dict, wi_file_data, wi_file_type, result, status_only) return result @@ -558,13 +558,14 @@ class MentatNetmngrScript(mentat.script.fetcher.FetcherScript): result['delete'][gkey].append(nkey) self.logger.warning("'%s' Network '%s' was not found in loaded whois file, consider deletion.", gkey, nkey) - def _groups_update_existing(self, abuse_group_dict, wi_file_data, result, status_only): + def _groups_update_existing(self, abuse_group_dict, wi_file_data, wi_file_type, result, status_only): """ Update existing abuse groups and their appropriate whois records within the database. :param dict abuse_group_dict: Abuse groups and network records loaded from database. :param dict wi_file_data: Abuse groups and network records loaded from reference whois file. + :param str wi_file_type: Value of ``__whois_type__`` meta attribute from reference whois file. :param dict result: Structure containing processing log, will be appended to script runlog. :param bool status_only: Do not actually perform any database operations, just report status. """ @@ -576,16 +577,18 @@ class MentatNetmngrScript(mentat.script.fetcher.FetcherScript): self._group_update_networks( abuse_group_dict[group_name], [network for networks in wi_file_data[name].values() for network in networks], + wi_file_type, result, status_only) self.sqlservice.session.commit() - def _group_update_networks(self, group, networks, result, status_only): + def _group_update_networks(self, group, networks, wi_file_type, result, status_only): """ Update abuse group network list coming from given source. :param mentat.datatype.sqldb.GroupModel group: Abuse group to be processed. :param list networks: List of network records loaded from reference whois file. + :param str wi_file_type: Value of ``__whois_type__`` meta attribute from reference whois file. :param dict result: Structure containing processing log, will be appended to script runlog. :param bool status_only: Do not actually perform any database operations, just report status. """ @@ -627,7 +630,7 @@ class MentatNetmngrScript(mentat.script.fetcher.FetcherScript): group.networks[index].is_base = net['is_base'] for net in group.networks: - if not self._is_network_in(net, networks): + if not self._is_network_in(net, networks) and wi_file_type in net.source: nkey = '{}::{}'.format(net.network, net.source) result['delete'].setdefault(gkey, []).append(nkey) if status_only: