diff --git a/irrd/mirroring/mirror_runners_export.py b/irrd/mirroring/mirror_runners_export.py index bb707cf..8200888 100644 --- a/irrd/mirroring/mirror_runners_export.py +++ b/irrd/mirroring/mirror_runners_export.py @@ -6,9 +6,6 @@ from tempfile import NamedTemporaryFile from irrd.conf import get_setting -from irrd.routepref.status import RoutePreferenceStatus -from irrd.rpki.status import RPKIStatus -from irrd.scopefilter.status import ScopeFilterStatus from irrd.storage.database_handler import DatabaseHandler from irrd.storage.queries import DatabaseStatusQuery, RPSLDatabaseQuery from irrd.utils.text import remove_auth_hashes as remove_auth_hashes_func @@ -73,10 +70,7 @@ def _export(self, export_destination, remove_auth_hashes=True): serial = None with gzip.open(export_tmpfile.name, "wb") as fh: - query = RPSLDatabaseQuery().sources([self.source]) - query = query.rpki_status([RPKIStatus.not_found, RPKIStatus.valid]) - query = query.scopefilter_status([ScopeFilterStatus.in_scope]) - query = query.route_preference_status([RoutePreferenceStatus.visible]) + query = RPSLDatabaseQuery().sources([self.source]).default_suppression() for obj in self.database_handler.execute_query(query): object_text = obj["object_text"] if remove_auth_hashes: diff --git a/irrd/mirroring/tests/test_mirror_runners_export.py b/irrd/mirroring/tests/test_mirror_runners_export.py index 34dd250..548dfb2 100644 --- a/irrd/mirroring/tests/test_mirror_runners_export.py +++ b/irrd/mirroring/tests/test_mirror_runners_export.py @@ -4,9 +4,6 @@ from pathlib import Path from unittest.mock import Mock -from irrd.routepref.status import RoutePreferenceStatus -from irrd.rpki.status import RPKIStatus -from irrd.scopefilter.status import ScopeFilterStatus from irrd.utils.test_utils import flatten_mock_calls from ..mirror_runners_export import EXPORT_PERMISSIONS, SourceExportRunner @@ -71,13 +68,9 @@ def test_export(self, tmpdir, config_override, monkeypatch, caplog): ] assert flatten_mock_calls(mock_dq) == [ ["sources", (["TEST"],), {}], - ["rpki_status", ([RPKIStatus.not_found, RPKIStatus.valid],), {}], - ["scopefilter_status", ([ScopeFilterStatus.in_scope],), {}], - ["route_preference_status", ([RoutePreferenceStatus.visible],), {}], + ["default_suppression", (), {}], ["sources", (["TEST"],), {}], - ["rpki_status", ([RPKIStatus.not_found, RPKIStatus.valid],), {}], - ["scopefilter_status", ([ScopeFilterStatus.in_scope],), {}], - ["route_preference_status", ([RoutePreferenceStatus.visible],), {}], + ["default_suppression", (), {}], ] assert "Starting a source export for TEST" in caplog.text assert "Export for TEST complete" in caplog.text diff --git a/irrd/scripts/irr_rpsl_submit.py b/irrd/scripts/irr_rpsl_submit.py index 01879c8..7fde798 100755 --- a/irrd/scripts/irr_rpsl_submit.py +++ b/irrd/scripts/irr_rpsl_submit.py @@ -760,7 +760,7 @@ def send_request(requests_text, args): raise XHTTPConnectionFailed(args.url, http_request) from error # pragma: no cover if reason == "Not Found": raise XHTTPNotFound(args.url, http_request) from error - raise error + raise error # pragma: no cover: CI glitch workaround except Exception as error: raise error diff --git a/irrd/server/http/event_stream.py b/irrd/server/http/event_stream.py index bd38d62..c61b409 100644 --- a/irrd/server/http/event_stream.py +++ b/irrd/server/http/event_stream.py @@ -16,10 +16,7 @@ from starlette.websockets import WebSocket from irrd.conf import get_setting -from irrd.routepref.status import RoutePreferenceStatus -from irrd.rpki.status import RPKIStatus from irrd.rpsl.rpsl_objects import rpsl_object_from_text -from irrd.scopefilter.status import ScopeFilterStatus from irrd.server.access_check import STARLETTE_TEST_CLIENT_HOST, is_client_permitted from irrd.storage.database_handler import DatabaseHandler from irrd.storage.event_stream import ( @@ -110,14 +107,9 @@ async def generate_rows(self): } async def generate_sql_query(self): - query = ( - RPSLDatabaseQuery( - column_names=["rpsl_pk", "object_class", "object_text", "source", "updated", "parsed_data"] - ) - .rpki_status([RPKIStatus.not_found.name, RPKIStatus.valid.name]) - .scopefilter_status([ScopeFilterStatus.in_scope.name]) - .route_preference_status([RoutePreferenceStatus.visible.name]) - ) + query = RPSLDatabaseQuery( + column_names=["rpsl_pk", "object_class", "object_text", "source", "updated", "parsed_data"] + ).default_suppression() if self.sources: query = query.sources(self.sources) if self.object_classes: diff --git a/irrd/server/http/tests/test_event_stream.py b/irrd/server/http/tests/test_event_stream.py index 7d7c4e3..95725cf 100644 --- a/irrd/server/http/tests/test_event_stream.py +++ b/irrd/server/http/tests/test_event_stream.py @@ -12,10 +12,7 @@ from starlette.testclient import TestClient from starlette.websockets import WebSocketDisconnect -from irrd.routepref.status import RoutePreferenceStatus -from irrd.rpki.status import RPKIStatus from irrd.rpsl.rpsl_objects import rpsl_object_from_text -from irrd.scopefilter.status import ScopeFilterStatus from irrd.storage.event_stream import OPERATION_JOURNAL_EXTENDED from irrd.storage.queries import ( RPSLDatabaseJournalQuery, @@ -103,9 +100,7 @@ def mock_copy_to_side_effect(source, dest, engine_or_conn, format): RPSLDatabaseQuery( column_names=["rpsl_pk", "object_class", "object_text", "source", "updated", "parsed_data"] ) - .rpki_status([RPKIStatus.not_found.name, RPKIStatus.valid.name]) - .scopefilter_status([ScopeFilterStatus.in_scope.name]) - .route_preference_status([RoutePreferenceStatus.visible.name]) + .default_suppression() .sources(["TEST"]) .object_classes(["mntner"]) .finalise_statement() diff --git a/irrd/storage/preload.py b/irrd/storage/preload.py index edf4d0f..829a634 100644 --- a/irrd/storage/preload.py +++ b/irrd/storage/preload.py @@ -11,9 +11,6 @@ from setproctitle import setproctitle from irrd.conf import get_setting -from irrd.routepref.status import RoutePreferenceStatus -from irrd.rpki.status import RPKIStatus -from irrd.scopefilter.status import ScopeFilterStatus from irrd.utils.process_support import ExceptionLoggingProcess from .queries import RPSLDatabaseQuery @@ -509,9 +506,7 @@ def _update_routes(self, dh): column_names=["ip_version", "ip_first", "prefix_length", "asn_first", "source"], enable_ordering=False, ) - q = q.object_classes(["route", "route6"]).rpki_status([RPKIStatus.not_found, RPKIStatus.valid]) - q = q.scopefilter_status([ScopeFilterStatus.in_scope]) - q = q.route_preference_status([RoutePreferenceStatus.visible]) + q = q.object_classes(["route", "route6"]).default_suppression() for result in dh.execute_query(q): prefix = result["ip_first"] key = result["source"] + REDIS_KEY_PK_SOURCE_SEPARATOR + "AS" + str(result["asn_first"]) @@ -542,9 +537,7 @@ def _update_set(self, dh, set_class, member_classes): enable_ordering=False, ) .object_classes([set_class]) - .rpki_status([RPKIStatus.not_found, RPKIStatus.valid]) - .scopefilter_status([ScopeFilterStatus.in_scope]) - .route_preference_status([RoutePreferenceStatus.visible]) + .default_suppression() ) member_store: Dict[str, set] = {} @@ -568,9 +561,7 @@ def _update_set(self, dh, set_class, member_classes): ) .lookup_attr("member-of", True) .object_classes(member_classes) - .rpki_status([RPKIStatus.not_found, RPKIStatus.valid]) - .scopefilter_status([ScopeFilterStatus.in_scope]) - .route_preference_status([RoutePreferenceStatus.visible]) + .default_suppression() ) for row in dh.execute_query(q): for member_of in row["parsed_data"].get("member-of", []): diff --git a/irrd/storage/tests/test_database.py b/irrd/storage/tests/test_database.py index 3973802..39c8f14 100644 --- a/irrd/storage/tests/test_database.py +++ b/irrd/storage/tests/test_database.py @@ -1153,6 +1153,7 @@ def test_non_matching_filters(self, irrd_db_mock_preload, database_handler_with_ self._assert_no_match(RPSLDatabaseQuery().rpki_status([RPKIStatus.valid])) self._assert_no_match(RPSLDatabaseQuery().scopefilter_status([ScopeFilterStatus.out_scope_as])) self._assert_no_match(RPSLDatabaseQuery().route_preference_status([RoutePreferenceStatus.suppressed])) + self._assert_no_match(RPSLDatabaseQuery().default_suppression()) def test_ordering_sources(self, irrd_db_mock_preload, database_handler_with_route): self.dh = database_handler_with_route diff --git a/irrd/storage/tests/test_preload.py b/irrd/storage/tests/test_preload.py index 5c4b343..1bc4662 100644 --- a/irrd/storage/tests/test_preload.py +++ b/irrd/storage/tests/test_preload.py @@ -4,9 +4,6 @@ import pytest -from irrd.routepref.status import RoutePreferenceStatus -from irrd.rpki.status import RPKIStatus -from irrd.scopefilter.status import ScopeFilterStatus from irrd.utils.test_utils import flatten_mock_calls from ..database_handler import DatabaseHandler @@ -334,27 +331,17 @@ def test_preload_updater(self, monkeypatch): assert flatten_mock_calls(mock_reload_lock) == [["acquire", (), {}], ["release", (), {}]] assert flatten_mock_calls(mock_database_query) == [ ["object_classes", (["route", "route6"],), {}], - ["rpki_status", ([RPKIStatus.not_found, RPKIStatus.valid],), {}], - ["scopefilter_status", ([ScopeFilterStatus.in_scope],), {}], - ["route_preference_status", ([RoutePreferenceStatus.visible],), {}], + ["default_suppression", (), {}], ["object_classes", (["as-set"],), {}], - ["rpki_status", ([RPKIStatus.not_found, RPKIStatus.valid],), {}], - ["scopefilter_status", ([ScopeFilterStatus.in_scope],), {}], - ["route_preference_status", ([RoutePreferenceStatus.visible],), {}], + ["default_suppression", (), {}], ["lookup_attr", ("member-of", True), {}], ["object_classes", (["aut-num"],), {}], - ["rpki_status", ([RPKIStatus.not_found, RPKIStatus.valid],), {}], - ["scopefilter_status", ([ScopeFilterStatus.in_scope],), {}], - ["route_preference_status", ([RoutePreferenceStatus.visible],), {}], + ["default_suppression", (), {}], ["object_classes", (["route-set"],), {}], - ["rpki_status", ([RPKIStatus.not_found, RPKIStatus.valid],), {}], - ["scopefilter_status", ([ScopeFilterStatus.in_scope],), {}], - ["route_preference_status", ([RoutePreferenceStatus.visible],), {}], + ["default_suppression", (), {}], ["lookup_attr", ("member-of", True), {}], ["object_classes", (["route", "route6"],), {}], - ["rpki_status", ([RPKIStatus.not_found, RPKIStatus.valid],), {}], - ["scopefilter_status", ([ScopeFilterStatus.in_scope],), {}], - ["route_preference_status", ([RoutePreferenceStatus.visible],), {}], + ["default_suppression", (), {}], ] assert flatten_mock_calls(mock_preload_obj) == [ diff --git a/pyproject.toml b/pyproject.toml index 497d9ec..6a5d7ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -138,7 +138,7 @@ ruff = "ruff irrd --fix" isort = "isort irrd" mypy = "mypy irrd" lint = ["black", "ruff", "isort", "mypy"] -test = "pytest --cov-report term-missing:skip-covered --cov=irrd --basetemp=.tmpdirs/ irrd" +test = "pytest --cov-report term-missing:skip-covered --cov=irrd --basetemp=.tmpdirs/ " [tool.coverage.report] exclude_lines = [