def _validate_compare_id(compare_id: str): valid_chars = '0123456789abcdef_;' if not all(char in valid_chars for char in compare_id): raise ValueError(f'Compare ID {compare_id} contains invalid chars') uids = convert_compare_id_to_list(compare_id) if not all(is_uid(uid) for uid in uids): raise TypeError(f'Compare ID {compare_id} contains invalid UIDs')
def _process_compare(self, compare_id): result = self.compare_module.compare( convert_compare_id_to_list(compare_id)) if isinstance(result, dict): self.db_interface.add_compare_result(result) else: logging.error(result)
def check_objects_exist(self, compare_id, raise_exc=True): for uid in convert_compare_id_to_list(compare_id): if not self.existence_quick_check(uid): if raise_exc: raise FactCompareException( '{} not found in database'.format(uid)) return True return False
def _process_compare(self, compare_id): try: self.db_interface.add_compare_result( self.compare_module.compare( convert_compare_id_to_list(compare_id))) except Exception: # pylint: disable=broad-except logging.error(f'Fatal error in compare process for {compare_id}', exc_info=True)
def _app_show_compare_result(self, compare_id): compare_id = normalize_compare_id(compare_id) try: with ConnectTo(CompareDbInterface, self._config) as sc: result = sc.get_compare_result(compare_id) except FactCompareException as exception: return render_template('compare/error.html', error=exception.get_message()) if not result: return render_template('compare/wait.html', compare_id=compare_id) download_link = self._create_ida_download_if_existing( result, compare_id) uid_list = convert_compare_id_to_list(compare_id) plugin_views, plugins_without_view = self._get_compare_plugin_views( result) compare_view = self._get_compare_view(plugin_views) self._fill_in_empty_fields(result, compare_id) return render_template_string( compare_view, result=result, uid_list=uid_list, download_link=download_link, plugins_without_view=plugins_without_view)
def test_convert_compare_id_to_list(input_data, expected): assert convert_compare_id_to_list(input_data) == expected