diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 5f9c40b5da..7de284f854 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -1032,16 +1032,6 @@ } } ], - "./monitoring/mock_uss/__init__.py": [ - { - "code": "reportOptionalMemberAccess", - "range": { - "startColumn": 53, - "endColumn": 58, - "lineCount": 1 - } - } - ], "./monitoring/mock_uss/auth.py": [ { "code": "reportArgumentType", @@ -1490,24 +1480,6 @@ } } ], - "./monitoring/mock_uss/msgsigning/__init__.py": [ - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 14, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 39, - "endColumn": 61, - "lineCount": 1 - } - } - ], "./monitoring/mock_uss/msgsigning/routes_msgsigning.py": [ { "code": "reportCallIssue", @@ -1524,14 +1496,6 @@ "endColumn": 52, "lineCount": 1 } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 33, - "endColumn": 51, - "lineCount": 1 - } } ], "./monitoring/mock_uss/riddp/clustering.py": [ diff --git a/monitoring/mock_uss/__init__.py b/monitoring/mock_uss/__init__.py index 6ab5a823a3..e69de29bb2 100644 --- a/monitoring/mock_uss/__init__.py +++ b/monitoring/mock_uss/__init__.py @@ -1,142 +0,0 @@ -import inspect -import os -from collections.abc import Callable -from typing import Any - -# Because mock_uss uses gevent, we need to monkey-patch before anything else is loaded. -# https://www.gevent.org/intro.html#monkey-patching -from gevent import monkey - -monkey.patch_all() - -from loguru import logger # noqa E402 -from werkzeug.middleware.proxy_fix import ProxyFix # noqa E402 - -from monitoring.mock_uss.server import MockUSS # noqa E402 - -SERVICE_GEOAWARENESS = "geoawareness" -SERVICE_RIDSP = "ridsp" -SERVICE_RIDDP = "riddp" -SERVICE_SCDSC = "scdsc" -SERVICE_MESSAGESIGNING = "msgsigning" -SERVICE_TRACER = "tracer" -SERVICE_INTERACTION_LOGGING = "interaction_logging" -SERVICE_VERSIONING = "versioning" -SERVICE_FLIGHT_PLANNING = "flight_planning" - -webapp = MockUSS(__name__) -webapp.secret_key = os.environ.get("SECRET_KEY") or os.urandom(24) -if os.environ.get("MOCK_USS_PROXY_VALUES"): - values = os.environ.get("MOCK_USS_PROXY_VALUES").split(",") - kwargs = {v.split("=")[0].strip(): int(v.split("=")[1]) for v in values} - webapp.wsgi_app = ProxyFix(webapp.wsgi_app, **kwargs) -enabled_services = set() - - -def import_environment_variable( - var_name: str, - required: bool = True, - default: str | None = None, - mutator: Callable[[str], Any] | None = None, -) -> None: - """Import a value from a named environment variable into the webapp configuration. - - Args: - var_name: Environment variable name (key). Also used as the webapp configuration key for that variable. - required: Whether the variable must be specified by the user. If True, a ValueError will be raised if the - variable is not specified by the user. If False, the webapp configuration will not be populated if no - default is provided. If default is specified, the default value is treated as specification by the user. - default: If the variable is not required, then use this value when it is not specified by the user. The default - value should be the string from the environment variable rather than the output of the mutator, if present. - mutator: If specified, apply this function to the string value of the environment variable to obtain the - variable to actually store in the configuration. - """ - if var_name in os.environ: - str_value = os.environ[var_name] - elif default is not None: - str_value = default - elif required: - stack = inspect.stack() - raise ValueError( - f"System cannot proceed because required environment variable '{var_name}' was not found. Required from {stack[1].filename}:{stack[1].lineno}" - ) - else: - str_value = None - - if str_value is not None: - webapp.config[var_name] = str_value if mutator is None else mutator(str_value) - - -def require_config_value(config_key: str) -> None: - if config_key not in webapp.config: - stack = inspect.stack() - raise ValueError( - f"System cannot proceed because required configuration key '{config_key}' was not found. Required from {stack[1].filename}:{stack[1].lineno}" - ) - - -from monitoring.mock_uss import config # noqa E402 -from monitoring.mock_uss import logging as logging # noqa E402 -from monitoring.mock_uss import routes as basic_routes # noqa F401,F402 - -if SERVICE_GEOAWARENESS in webapp.config[config.KEY_SERVICES]: - enabled_services.add(SERVICE_GEOAWARENESS) - from monitoring.mock_uss import geoawareness as geoawareness - from monitoring.mock_uss.geoawareness import ( - routes as geoawareness_routes, # noqa F401 - ) - -if SERVICE_RIDSP in webapp.config[config.KEY_SERVICES]: - enabled_services.add(SERVICE_RIDSP) - from monitoring.mock_uss import ridsp as ridsp - from monitoring.mock_uss.ridsp import routes as ridsp_routes # noqa F401 - -if SERVICE_RIDDP in webapp.config[config.KEY_SERVICES]: - enabled_services.add(SERVICE_RIDDP) - from monitoring.mock_uss import riddp as riddp - from monitoring.mock_uss.riddp import routes as riddp_routes # noqa F401 - -if SERVICE_SCDSC in webapp.config[config.KEY_SERVICES]: - enabled_services.add(SERVICE_SCDSC) - from monitoring.mock_uss.f3548v21 import routes_scd as routes_scd - from monitoring.mock_uss.scd_injection import ( - routes as scd_injection_routes, # noqa F401 - ) - -if SERVICE_MESSAGESIGNING in webapp.config[config.KEY_SERVICES]: - enabled_services.add(SERVICE_MESSAGESIGNING) - from monitoring.mock_uss import msgsigning as msgsigning # noqa F401 - from monitoring.mock_uss.msgsigning import routes as msgsigning_routes # noqa F401 - -if SERVICE_INTERACTION_LOGGING in webapp.config[config.KEY_SERVICES]: - enabled_services.add(SERVICE_INTERACTION_LOGGING) - from monitoring.mock_uss.interaction_logging import logger as interactions_logger # noqa F401 - from monitoring.mock_uss.interaction_logging import ( - routes_interactions_log as routes_interactions_log, - ) - - logger.info("Interaction logging enabled") -else: - logger.info("Interaction logging disabled") - -if SERVICE_TRACER in webapp.config[config.KEY_SERVICES]: - enabled_services.add(SERVICE_TRACER) - from monitoring.mock_uss import tracer as tracer - from monitoring.mock_uss.tracer import routes as tracer_routes # noqa F401 - -if SERVICE_VERSIONING in webapp.config[config.KEY_SERVICES]: - enabled_services.add(SERVICE_VERSIONING) - from monitoring.mock_uss.versioning import routes as versioning_routes # noqa F401 - -if SERVICE_FLIGHT_PLANNING in webapp.config[config.KEY_SERVICES]: - enabled_services.add(SERVICE_FLIGHT_PLANNING) - from monitoring.mock_uss.flight_planning import routes as flight_planning_routes # noqa F401 - -msg = ( - "################################################################################\n" - + "################################ Configuration ################################\n" - + "\n".join(f"## {key}: {webapp.config[key]}" for key in webapp.config) - + "\n" - + "################################################################################" -) -logger.info("Configuration:\n" + msg) diff --git a/monitoring/mock_uss/app.py b/monitoring/mock_uss/app.py new file mode 100644 index 0000000000..8e7f32379c --- /dev/null +++ b/monitoring/mock_uss/app.py @@ -0,0 +1,142 @@ +import inspect +import os +from collections.abc import Callable +from typing import Any + +# Because mock_uss uses gevent, we need to monkey-patch before anything else is loaded. +# https://www.gevent.org/intro.html#monkey-patching +from gevent import monkey + +monkey.patch_all() + +from loguru import logger # noqa E402 +from werkzeug.middleware.proxy_fix import ProxyFix # noqa E402 + +from monitoring.mock_uss.server import MockUSS # noqa E402 + +SERVICE_GEOAWARENESS = "geoawareness" +SERVICE_RIDSP = "ridsp" +SERVICE_RIDDP = "riddp" +SERVICE_SCDSC = "scdsc" +SERVICE_MESSAGESIGNING = "msgsigning" +SERVICE_TRACER = "tracer" +SERVICE_INTERACTION_LOGGING = "interaction_logging" +SERVICE_VERSIONING = "versioning" +SERVICE_FLIGHT_PLANNING = "flight_planning" + +webapp = MockUSS(__name__) +webapp.secret_key = os.environ.get("SECRET_KEY") or os.urandom(24) +if os.environ.get("MOCK_USS_PROXY_VALUES"): + values = os.environ.get("MOCK_USS_PROXY_VALUES", "").split(",") + kwargs = {v.split("=")[0].strip(): int(v.split("=")[1]) for v in values} + webapp.wsgi_app = ProxyFix(webapp.wsgi_app, **kwargs) +enabled_services = set() + + +def import_environment_variable( + var_name: str, + required: bool = True, + default: str | None = None, + mutator: Callable[[str], Any] | None = None, +) -> None: + """Import a value from a named environment variable into the webapp configuration. + + Args: + var_name: Environment variable name (key). Also used as the webapp configuration key for that variable. + required: Whether the variable must be specified by the user. If True, a ValueError will be raised if the + variable is not specified by the user. If False, the webapp configuration will not be populated if no + default is provided. If default is specified, the default value is treated as specification by the user. + default: If the variable is not required, then use this value when it is not specified by the user. The default + value should be the string from the environment variable rather than the output of the mutator, if present. + mutator: If specified, apply this function to the string value of the environment variable to obtain the + variable to actually store in the configuration. + """ + if var_name in os.environ: + str_value = os.environ[var_name] + elif default is not None: + str_value = default + elif required: + stack = inspect.stack() + raise ValueError( + f"System cannot proceed because required environment variable '{var_name}' was not found. Required from {stack[1].filename}:{stack[1].lineno}" + ) + else: + str_value = None + + if str_value is not None: + webapp.config[var_name] = str_value if mutator is None else mutator(str_value) + + +def require_config_value(config_key: str) -> None: + if config_key not in webapp.config: + stack = inspect.stack() + raise ValueError( + f"System cannot proceed because required configuration key '{config_key}' was not found. Required from {stack[1].filename}:{stack[1].lineno}" + ) + + +from monitoring.mock_uss import config # noqa E402 +from monitoring.mock_uss import logging as logging # noqa E402 +from monitoring.mock_uss import routes as basic_routes # noqa F401,F402 + +if SERVICE_GEOAWARENESS in webapp.config[config.KEY_SERVICES]: + enabled_services.add(SERVICE_GEOAWARENESS) + from monitoring.mock_uss import geoawareness as geoawareness + from monitoring.mock_uss.geoawareness import ( + routes as geoawareness_routes, # noqa F401 + ) + +if SERVICE_RIDSP in webapp.config[config.KEY_SERVICES]: + enabled_services.add(SERVICE_RIDSP) + from monitoring.mock_uss import ridsp as ridsp + from monitoring.mock_uss.ridsp import routes as ridsp_routes # noqa F401 + +if SERVICE_RIDDP in webapp.config[config.KEY_SERVICES]: + enabled_services.add(SERVICE_RIDDP) + from monitoring.mock_uss import riddp as riddp + from monitoring.mock_uss.riddp import routes as riddp_routes # noqa F401 + +if SERVICE_SCDSC in webapp.config[config.KEY_SERVICES]: + enabled_services.add(SERVICE_SCDSC) + from monitoring.mock_uss.f3548v21 import routes_scd as routes_scd + from monitoring.mock_uss.scd_injection import ( + routes as scd_injection_routes, # noqa F401 + ) + +if SERVICE_MESSAGESIGNING in webapp.config[config.KEY_SERVICES]: + enabled_services.add(SERVICE_MESSAGESIGNING) + from monitoring.mock_uss import msgsigning as msgsigning # noqa F401 + from monitoring.mock_uss.msgsigning import routes as msgsigning_routes # noqa F401 + +if SERVICE_INTERACTION_LOGGING in webapp.config[config.KEY_SERVICES]: + enabled_services.add(SERVICE_INTERACTION_LOGGING) + from monitoring.mock_uss.interaction_logging import logger as interactions_logger # noqa F401 + from monitoring.mock_uss.interaction_logging import ( + routes_interactions_log as routes_interactions_log, + ) + + logger.info("Interaction logging enabled") +else: + logger.info("Interaction logging disabled") + +if SERVICE_TRACER in webapp.config[config.KEY_SERVICES]: + enabled_services.add(SERVICE_TRACER) + from monitoring.mock_uss import tracer as tracer + from monitoring.mock_uss.tracer import routes as tracer_routes # noqa F401 + +if SERVICE_VERSIONING in webapp.config[config.KEY_SERVICES]: + enabled_services.add(SERVICE_VERSIONING) + from monitoring.mock_uss.versioning import routes as versioning_routes # noqa F401 + +if SERVICE_FLIGHT_PLANNING in webapp.config[config.KEY_SERVICES]: + enabled_services.add(SERVICE_FLIGHT_PLANNING) + from monitoring.mock_uss.flight_planning import routes as flight_planning_routes # noqa F401 + +msg = ( + "################################################################################\n" + + "################################ Configuration ################################\n" + + "\n".join(f"## {key}: {webapp.config[key]}" for key in webapp.config) + + "\n" + + "################################################################################" +) +logger.info("Configuration:\n" + msg) diff --git a/monitoring/mock_uss/auth.py b/monitoring/mock_uss/auth.py index 8a076a842b..9ccd51d4c9 100644 --- a/monitoring/mock_uss/auth.py +++ b/monitoring/mock_uss/auth.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.monitorlib import auth_validation from . import config diff --git a/monitoring/mock_uss/config.py b/monitoring/mock_uss/config.py index f394583da4..cc18d5592b 100644 --- a/monitoring/mock_uss/config.py +++ b/monitoring/mock_uss/config.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import import_environment_variable +from monitoring.mock_uss.app import import_environment_variable from monitoring.monitorlib import auth_validation KEY_TOKEN_PUBLIC_KEY = "MOCK_USS_PUBLIC_KEY" diff --git a/monitoring/mock_uss/dynamic_configuration/configuration.py b/monitoring/mock_uss/dynamic_configuration/configuration.py index e444c7fe76..96abba78bf 100644 --- a/monitoring/mock_uss/dynamic_configuration/configuration.py +++ b/monitoring/mock_uss/dynamic_configuration/configuration.py @@ -2,7 +2,7 @@ from implicitdict import ImplicitDict -from monitoring.mock_uss import require_config_value, webapp +from monitoring.mock_uss.app import require_config_value, webapp from monitoring.mock_uss.config import KEY_BEHAVIOR_LOCALITY from monitoring.monitorlib.locality import Locality, LocalityCode from monitoring.monitorlib.multiprocessing import SynchronizedValue diff --git a/monitoring/mock_uss/dynamic_configuration/routes.py b/monitoring/mock_uss/dynamic_configuration/routes.py index 80e92e756e..7ab2db84e1 100644 --- a/monitoring/mock_uss/dynamic_configuration/routes.py +++ b/monitoring/mock_uss/dynamic_configuration/routes.py @@ -1,7 +1,7 @@ import flask from implicitdict import ImplicitDict -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import MOCK_USS_CONFIG_SCOPE, requires_scope from monitoring.mock_uss.dynamic_configuration.configuration import db, get_locality from monitoring.monitorlib.clients.mock_uss.locality import ( diff --git a/monitoring/mock_uss/f3548v21/__init__.py b/monitoring/mock_uss/f3548v21/__init__.py index 1aae3c3bcc..be53700909 100644 --- a/monitoring/mock_uss/f3548v21/__init__.py +++ b/monitoring/mock_uss/f3548v21/__init__.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import require_config_value, webapp +from monitoring.mock_uss.app import require_config_value, webapp from monitoring.mock_uss.config import KEY_AUTH_SPEC, KEY_DSS_URL from monitoring.monitorlib import auth from monitoring.monitorlib.infrastructure import UTMClientSession diff --git a/monitoring/mock_uss/f3548v21/flight_planning.py b/monitoring/mock_uss/f3548v21/flight_planning.py index 4f20df89fe..4d5ce937d1 100644 --- a/monitoring/mock_uss/f3548v21/flight_planning.py +++ b/monitoring/mock_uss/f3548v21/flight_planning.py @@ -8,7 +8,7 @@ from uas_standards.astm.f3548.v21.constants import OiMaxPlanHorizonDays, OiMaxVertices from uas_standards.interuss.automated_testing.scd.v1 import api as scd_api -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.config import KEY_BASE_URL from monitoring.mock_uss.f3548v21 import utm_client from monitoring.mock_uss.flights.database import FlightRecord, db diff --git a/monitoring/mock_uss/f3548v21/routes_scd.py b/monitoring/mock_uss/f3548v21/routes_scd.py index fcabb0f204..59a626a7da 100644 --- a/monitoring/mock_uss/f3548v21/routes_scd.py +++ b/monitoring/mock_uss/f3548v21/routes_scd.py @@ -13,7 +13,7 @@ PutOperationalIntentDetailsParameters, ) -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import requires_scope from monitoring.mock_uss.f3548v21.flight_planning import ( conflicts_with_flightrecords, diff --git a/monitoring/mock_uss/flight_planning/routes.py b/monitoring/mock_uss/flight_planning/routes.py index ea24f5fee0..9ec43e9ce9 100644 --- a/monitoring/mock_uss/flight_planning/routes.py +++ b/monitoring/mock_uss/flight_planning/routes.py @@ -9,7 +9,7 @@ from uas_standards.interuss.automated_testing.flight_planning.v1 import api from uas_standards.interuss.automated_testing.flight_planning.v1.constants import Scope -from monitoring.mock_uss import require_config_value, webapp +from monitoring.mock_uss.app import require_config_value, webapp from monitoring.mock_uss.auth import requires_scope from monitoring.mock_uss.config import KEY_BASE_URL from monitoring.mock_uss.f3548v21.flight_planning import op_intent_from_flightinfo diff --git a/monitoring/mock_uss/geoawareness/routes.py b/monitoring/mock_uss/geoawareness/routes.py index 515e0a16b1..5bd1468a02 100644 --- a/monitoring/mock_uss/geoawareness/routes.py +++ b/monitoring/mock_uss/geoawareness/routes.py @@ -3,7 +3,7 @@ StatusResponseStatus, ) -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import requires_scope from monitoring.monitorlib import versioning from monitoring.monitorlib.geoawareness_automated_testing.api import ( diff --git a/monitoring/mock_uss/geoawareness/routes_geoawareness.py b/monitoring/mock_uss/geoawareness/routes_geoawareness.py index 8bdb60f9de..df8aa0df8c 100644 --- a/monitoring/mock_uss/geoawareness/routes_geoawareness.py +++ b/monitoring/mock_uss/geoawareness/routes_geoawareness.py @@ -6,7 +6,7 @@ GeozonesCheckRequest, ) -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import requires_scope from monitoring.mock_uss.geoawareness.check import check_geozones from monitoring.mock_uss.geoawareness.geozone_sources import ( diff --git a/monitoring/mock_uss/geoawareness/routes_geoawareness_test.py b/monitoring/mock_uss/geoawareness/routes_geoawareness_test.py index bdbbf2f410..cb8febdd77 100644 --- a/monitoring/mock_uss/geoawareness/routes_geoawareness_test.py +++ b/monitoring/mock_uss/geoawareness/routes_geoawareness_test.py @@ -3,7 +3,7 @@ import pytest from flask import json -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.monitorlib.auth import NoAuth TEST_DATASET_URL = "https://raw.githubusercontent.com/interuss/dss/517595ad4074bdb621feb4ab81c2d2f4fc11eff1/monitoring/uss_qualifier/scenarios/uspace/geo_awareness/design/CHE/geo-awareness-che-1.json" diff --git a/monitoring/mock_uss/geoawareness/routes_geospatial_map.py b/monitoring/mock_uss/geoawareness/routes_geospatial_map.py index 6983c6cbd2..0648a28f86 100644 --- a/monitoring/mock_uss/geoawareness/routes_geospatial_map.py +++ b/monitoring/mock_uss/geoawareness/routes_geospatial_map.py @@ -10,7 +10,7 @@ ) from uas_standards.interuss.automated_testing.geospatial_map.v1.constants import Scope -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import requires_scope diff --git a/monitoring/mock_uss/gunicorn.conf.py b/monitoring/mock_uss/gunicorn.conf.py index 15b424bc53..ca3685bb09 100644 --- a/monitoring/mock_uss/gunicorn.conf.py +++ b/monitoring/mock_uss/gunicorn.conf.py @@ -6,7 +6,7 @@ from gunicorn.workers.base import Worker from loguru import logger -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp def on_starting(server: Arbiter): diff --git a/monitoring/mock_uss/interaction_logging/config.py b/monitoring/mock_uss/interaction_logging/config.py index 1fabaedb31..4f74e2e3e4 100644 --- a/monitoring/mock_uss/interaction_logging/config.py +++ b/monitoring/mock_uss/interaction_logging/config.py @@ -1,6 +1,6 @@ import os.path -from monitoring.mock_uss import import_environment_variable, webapp +from monitoring.mock_uss.app import import_environment_variable, webapp KEY_INTERACTIONS_LOG_DIR = "MOCK_USS_INTERACTIONS_LOG_DIR" diff --git a/monitoring/mock_uss/interaction_logging/logger.py b/monitoring/mock_uss/interaction_logging/logger.py index 1446be8131..6a289a5ffe 100644 --- a/monitoring/mock_uss/interaction_logging/logger.py +++ b/monitoring/mock_uss/interaction_logging/logger.py @@ -4,7 +4,7 @@ import flask -from monitoring.mock_uss import require_config_value, webapp +from monitoring.mock_uss.app import require_config_value, webapp from monitoring.mock_uss.interaction_logging.config import KEY_INTERACTIONS_LOG_DIR from monitoring.monitorlib.clients import QueryHook, query_hooks from monitoring.monitorlib.clients.mock_uss.interactions import ( diff --git a/monitoring/mock_uss/interaction_logging/routes_interactions_log.py b/monitoring/mock_uss/interaction_logging/routes_interactions_log.py index 5fc6a86d4d..1644c21c2d 100644 --- a/monitoring/mock_uss/interaction_logging/routes_interactions_log.py +++ b/monitoring/mock_uss/interaction_logging/routes_interactions_log.py @@ -6,7 +6,7 @@ from implicitdict import ImplicitDict, StringBasedDateTime from loguru import logger -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import requires_scope from monitoring.mock_uss.interaction_logging.config import KEY_INTERACTIONS_LOG_DIR from monitoring.mock_uss.interaction_logging.logger import ( diff --git a/monitoring/mock_uss/logging.py b/monitoring/mock_uss/logging.py index e262cfbf2a..142fb3cfb9 100644 --- a/monitoring/mock_uss/logging.py +++ b/monitoring/mock_uss/logging.py @@ -8,7 +8,7 @@ from flask import Request, Response from loguru import logger -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp def _get_request_id(req: Request) -> str: diff --git a/monitoring/mock_uss/mockuss.py b/monitoring/mock_uss/mockuss.py index 65d31f5480..4d95ee17f0 100644 --- a/monitoring/mock_uss/mockuss.py +++ b/monitoring/mock_uss/mockuss.py @@ -1,7 +1,7 @@ import os import sys -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp def main(argv): diff --git a/monitoring/mock_uss/msgsigning/__init__.py b/monitoring/mock_uss/msgsigning/__init__.py index 1e8e1bb921..e69de29bb2 100644 --- a/monitoring/mock_uss/msgsigning/__init__.py +++ b/monitoring/mock_uss/msgsigning/__init__.py @@ -1,6 +0,0 @@ -from monitoring.mock_uss import SERVICE_MESSAGESIGNING, config - -if not config.Config.CERT_BASE_PATH: - raise ValueError( - f"Environment variable {config.ENV_KEY_CERT_BASE_PATH} may not be blank for the {SERVICE_MESSAGESIGNING} service" - ) diff --git a/monitoring/mock_uss/msgsigning/config.py b/monitoring/mock_uss/msgsigning/config.py index e24a56e968..0e11a7e157 100644 --- a/monitoring/mock_uss/msgsigning/config.py +++ b/monitoring/mock_uss/msgsigning/config.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import import_environment_variable +from monitoring.mock_uss.app import import_environment_variable KEY_CERT_BASE_PATH = "MOCK_USS_CERT_BASE_PATH" diff --git a/monitoring/mock_uss/msgsigning/routes.py b/monitoring/mock_uss/msgsigning/routes.py index 6e9bb2e646..f17b5f8063 100644 --- a/monitoring/mock_uss/msgsigning/routes.py +++ b/monitoring/mock_uss/msgsigning/routes.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from . import routes_msgsigning as routes_msgsigning diff --git a/monitoring/mock_uss/msgsigning/routes_msgsigning.py b/monitoring/mock_uss/msgsigning/routes_msgsigning.py index 8abc42e5e0..8db015b166 100644 --- a/monitoring/mock_uss/msgsigning/routes_msgsigning.py +++ b/monitoring/mock_uss/msgsigning/routes_msgsigning.py @@ -3,7 +3,7 @@ import flask from loguru import logger -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.msgsigning import config from monitoring.mock_uss.msgsigning.database import db diff --git a/monitoring/mock_uss/resources.py b/monitoring/mock_uss/resources.py index 754fa1e65a..d396b7098a 100644 --- a/monitoring/mock_uss/resources.py +++ b/monitoring/mock_uss/resources.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import require_config_value, webapp +from monitoring.mock_uss.app import require_config_value, webapp from monitoring.monitorlib import auth, infrastructure from . import config diff --git a/monitoring/mock_uss/riddp/__init__.py b/monitoring/mock_uss/riddp/__init__.py index c1f530361a..d9dd69e9d3 100644 --- a/monitoring/mock_uss/riddp/__init__.py +++ b/monitoring/mock_uss/riddp/__init__.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import require_config_value, webapp +from monitoring.mock_uss.app import require_config_value, webapp from monitoring.mock_uss.config import KEY_AUTH_SPEC, KEY_DSS_URL from monitoring.mock_uss.riddp.config import KEY_RID_VERSION from monitoring.monitorlib import auth diff --git a/monitoring/mock_uss/riddp/config.py b/monitoring/mock_uss/riddp/config.py index ce3f048f6a..9066886bb0 100644 --- a/monitoring/mock_uss/riddp/config.py +++ b/monitoring/mock_uss/riddp/config.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import import_environment_variable +from monitoring.mock_uss.app import import_environment_variable from monitoring.monitorlib.rid import RIDVersion KEY_RID_VERSION = "MOCK_USS_RID_VERSION" diff --git a/monitoring/mock_uss/riddp/routes.py b/monitoring/mock_uss/riddp/routes.py index 33116e6020..642c49c719 100644 --- a/monitoring/mock_uss/riddp/routes.py +++ b/monitoring/mock_uss/riddp/routes.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.riddp.config import KEY_RID_VERSION from ...monitorlib.rid import RIDVersion diff --git a/monitoring/mock_uss/riddp/routes_behavior.py b/monitoring/mock_uss/riddp/routes_behavior.py index df363f055c..93632746f9 100644 --- a/monitoring/mock_uss/riddp/routes_behavior.py +++ b/monitoring/mock_uss/riddp/routes_behavior.py @@ -1,7 +1,7 @@ import flask from implicitdict import ImplicitDict -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from .behavior import DisplayProviderBehavior from .database import db diff --git a/monitoring/mock_uss/riddp/routes_observation.py b/monitoring/mock_uss/riddp/routes_observation.py index 5511b6046d..96fba6b1ba 100644 --- a/monitoring/mock_uss/riddp/routes_observation.py +++ b/monitoring/mock_uss/riddp/routes_observation.py @@ -21,7 +21,7 @@ UAType, ) -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import requires_scope from monitoring.mock_uss.config import KEY_BASE_URL from monitoring.mock_uss.riddp.database import ObservationSubscription diff --git a/monitoring/mock_uss/riddp/routes_riddp_v19.py b/monitoring/mock_uss/riddp/routes_riddp_v19.py index 4586d549a1..297e7d4ffd 100644 --- a/monitoring/mock_uss/riddp/routes_riddp_v19.py +++ b/monitoring/mock_uss/riddp/routes_riddp_v19.py @@ -8,7 +8,7 @@ ) from uas_standards.astm.f3411.v19.constants import Scope -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import requires_scope from monitoring.mock_uss.riddp.database import db from monitoring.monitorlib.fetch import describe_flask_query diff --git a/monitoring/mock_uss/riddp/routes_riddp_v22a.py b/monitoring/mock_uss/riddp/routes_riddp_v22a.py index 0f6a47c938..4c0e2b7468 100644 --- a/monitoring/mock_uss/riddp/routes_riddp_v22a.py +++ b/monitoring/mock_uss/riddp/routes_riddp_v22a.py @@ -8,7 +8,7 @@ ) from uas_standards.astm.f3411.v22a.constants import Scope -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import requires_scope from monitoring.mock_uss.riddp.database import db from monitoring.monitorlib.fetch import describe_flask_query diff --git a/monitoring/mock_uss/ridsp/__init__.py b/monitoring/mock_uss/ridsp/__init__.py index 5b77d1b9a5..a0c73e2a37 100644 --- a/monitoring/mock_uss/ridsp/__init__.py +++ b/monitoring/mock_uss/ridsp/__init__.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import require_config_value, webapp +from monitoring.mock_uss.app import require_config_value, webapp from monitoring.mock_uss.config import KEY_AUTH_SPEC, KEY_DSS_URL from monitoring.mock_uss.riddp.config import KEY_RID_VERSION from monitoring.monitorlib import auth diff --git a/monitoring/mock_uss/ridsp/routes.py b/monitoring/mock_uss/ridsp/routes.py index 9c6880ff23..695cbcc856 100644 --- a/monitoring/mock_uss/ridsp/routes.py +++ b/monitoring/mock_uss/ridsp/routes.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.riddp.config import KEY_RID_VERSION from monitoring.monitorlib.rid import RIDVersion diff --git a/monitoring/mock_uss/ridsp/routes_behavior.py b/monitoring/mock_uss/ridsp/routes_behavior.py index 5a45f65bba..b6842512af 100644 --- a/monitoring/mock_uss/ridsp/routes_behavior.py +++ b/monitoring/mock_uss/ridsp/routes_behavior.py @@ -1,7 +1,7 @@ import flask from implicitdict import ImplicitDict -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from .behavior import ServiceProviderBehavior from .database import db diff --git a/monitoring/mock_uss/ridsp/routes_injection.py b/monitoring/mock_uss/ridsp/routes_injection.py index 1542c3ad13..68b808d283 100644 --- a/monitoring/mock_uss/ridsp/routes_injection.py +++ b/monitoring/mock_uss/ridsp/routes_injection.py @@ -12,7 +12,7 @@ QueryUserNotificationsResponse, ) -from monitoring.mock_uss import require_config_value, webapp +from monitoring.mock_uss.app import require_config_value, webapp from monitoring.mock_uss.auth import requires_scope from monitoring.mock_uss.config import KEY_BASE_URL from monitoring.mock_uss.riddp.config import KEY_RID_VERSION diff --git a/monitoring/mock_uss/ridsp/routes_ridsp_v19.py b/monitoring/mock_uss/ridsp/routes_ridsp_v19.py index ddf2b51502..f5e00553da 100644 --- a/monitoring/mock_uss/ridsp/routes_ridsp_v19.py +++ b/monitoring/mock_uss/ridsp/routes_ridsp_v19.py @@ -24,7 +24,7 @@ ) from uas_standards.interuss.automated_testing.rid.v1 import injection -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import requires_scope from monitoring.monitorlib import geo from monitoring.monitorlib.rid import RIDVersion diff --git a/monitoring/mock_uss/ridsp/routes_ridsp_v22a.py b/monitoring/mock_uss/ridsp/routes_ridsp_v22a.py index e5ee3811f8..d4fcef50db 100644 --- a/monitoring/mock_uss/ridsp/routes_ridsp_v22a.py +++ b/monitoring/mock_uss/ridsp/routes_ridsp_v22a.py @@ -27,7 +27,7 @@ ) from uas_standards.interuss.automated_testing.rid.v1 import injection -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import requires_scope from monitoring.monitorlib import geo from monitoring.monitorlib.rid import RIDVersion diff --git a/monitoring/mock_uss/routes.py b/monitoring/mock_uss/routes.py index 22708e8fd5..c5f35ee16a 100644 --- a/monitoring/mock_uss/routes.py +++ b/monitoring/mock_uss/routes.py @@ -3,7 +3,7 @@ import flask from werkzeug.exceptions import HTTPException -from monitoring.mock_uss import enabled_services, webapp +from monitoring.mock_uss.app import enabled_services, webapp from monitoring.mock_uss.logging import disable_log_reporting_for_request from monitoring.monitorlib import auth_validation, versioning diff --git a/monitoring/mock_uss/scd_injection/routes.py b/monitoring/mock_uss/scd_injection/routes.py index 837bd9d2cb..bc343c4ec7 100644 --- a/monitoring/mock_uss/scd_injection/routes.py +++ b/monitoring/mock_uss/scd_injection/routes.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp @webapp.route("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/scdsc/status") diff --git a/monitoring/mock_uss/scd_injection/routes_injection.py b/monitoring/mock_uss/scd_injection/routes_injection.py index 13fc13d718..edf9ca71d5 100644 --- a/monitoring/mock_uss/scd_injection/routes_injection.py +++ b/monitoring/mock_uss/scd_injection/routes_injection.py @@ -17,7 +17,7 @@ DeleteFlightResponseResult, ) -from monitoring.mock_uss import require_config_value, webapp +from monitoring.mock_uss.app import require_config_value, webapp from monitoring.mock_uss.auth import requires_scope from monitoring.mock_uss.config import KEY_BASE_URL from monitoring.mock_uss.dynamic_configuration.configuration import get_locality diff --git a/monitoring/mock_uss/start.sh b/monitoring/mock_uss/start.sh index 9455d1af73..fa0e6477db 100755 --- a/monitoring/mock_uss/start.sh +++ b/monitoring/mock_uss/start.sh @@ -29,4 +29,4 @@ uv run gunicorn \ --workers=4 \ --worker-tmp-dir="/dev/shm" \ "--bind=0.0.0.0:${port}" \ - monitoring.mock_uss:webapp + monitoring.mock_uss.app:webapp diff --git a/monitoring/mock_uss/tracer/config.py b/monitoring/mock_uss/tracer/config.py index de168da963..0cccafdab0 100644 --- a/monitoring/mock_uss/tracer/config.py +++ b/monitoring/mock_uss/tracer/config.py @@ -1,4 +1,4 @@ -from monitoring.mock_uss import import_environment_variable, require_config_value +from monitoring.mock_uss.app import import_environment_variable, require_config_value from monitoring.mock_uss.config import KEY_BASE_URL, KEY_DSS_URL KEY_TRACER_OUTPUT_FOLDER = "MOCK_USS_TRACER_OUTPUT_FOLDER" diff --git a/monitoring/mock_uss/tracer/context.py b/monitoring/mock_uss/tracer/context.py index 24b0e66942..b4b410fcdf 100644 --- a/monitoring/mock_uss/tracer/context.py +++ b/monitoring/mock_uss/tracer/context.py @@ -2,7 +2,7 @@ from implicitdict import StringBasedDateTime from yaml.representer import Representer -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.config import KEY_AUTH_SPEC, KEY_DSS_URL from monitoring.mock_uss.tracer.config import ( KEY_TRACER_KML_FOLDER, diff --git a/monitoring/mock_uss/tracer/routes/__init__.py b/monitoring/mock_uss/tracer/routes/__init__.py index e88190dc50..03e3632e13 100644 --- a/monitoring/mock_uss/tracer/routes/__init__.py +++ b/monitoring/mock_uss/tracer/routes/__init__.py @@ -6,7 +6,7 @@ from loguru import logger from termcolor import colored -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.tracer import context from monitoring.mock_uss.tracer.log_types import BadRoute from monitoring.mock_uss.tracer.routes import observation_areas as observation_areas diff --git a/monitoring/mock_uss/tracer/routes/observation_areas.py b/monitoring/mock_uss/tracer/routes/observation_areas.py index b05ec1b444..f9ebd7facd 100644 --- a/monitoring/mock_uss/tracer/routes/observation_areas.py +++ b/monitoring/mock_uss/tracer/routes/observation_areas.py @@ -8,7 +8,7 @@ from implicitdict import ImplicitDict, StringBasedDateTime from loguru import logger -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.tracer import context from monitoring.mock_uss.tracer.database import db from monitoring.mock_uss.tracer.log_types import ( diff --git a/monitoring/mock_uss/tracer/routes/rid.py b/monitoring/mock_uss/tracer/routes/rid.py index f3030d6ae7..3faf3cdb7f 100644 --- a/monitoring/mock_uss/tracer/routes/rid.py +++ b/monitoring/mock_uss/tracer/routes/rid.py @@ -12,7 +12,7 @@ PutIdentificationServiceAreaNotificationParameters as PutIdentificationServiceAreaNotificationParametersV22a, ) -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.tracer import context from monitoring.mock_uss.tracer.log_types import RIDISANotification from monitoring.mock_uss.tracer.template import _print_time_range diff --git a/monitoring/mock_uss/tracer/routes/scd.py b/monitoring/mock_uss/tracer/routes/scd.py index eb20c8cc13..624a5b9e78 100644 --- a/monitoring/mock_uss/tracer/routes/scd.py +++ b/monitoring/mock_uss/tracer/routes/scd.py @@ -6,7 +6,7 @@ from loguru import logger from termcolor import colored -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.tracer import context from monitoring.mock_uss.tracer.log_types import ( ConstraintNotification, diff --git a/monitoring/mock_uss/tracer/routes/ui.py b/monitoring/mock_uss/tracer/routes/ui.py index d2706d484f..4b04e1116e 100644 --- a/monitoring/mock_uss/tracer/routes/ui.py +++ b/monitoring/mock_uss/tracer/routes/ui.py @@ -12,7 +12,7 @@ from implicitdict import ImplicitDict, StringBasedDateTime from loguru import logger -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.tracer import context from monitoring.mock_uss.tracer.database import db from monitoring.mock_uss.tracer.kml import render_historical_kml diff --git a/monitoring/mock_uss/tracer/subscriptions.py b/monitoring/mock_uss/tracer/subscriptions.py index df9722b0a6..cf331fe9aa 100644 --- a/monitoring/mock_uss/tracer/subscriptions.py +++ b/monitoring/mock_uss/tracer/subscriptions.py @@ -9,7 +9,7 @@ import monitoring.monitorlib.fetch.scd as fetch_scd import monitoring.monitorlib.mutate.rid as mutate_rid import monitoring.monitorlib.mutate.scd as mutate_scd -from monitoring.mock_uss import config, webapp +from monitoring.mock_uss.app import config, webapp from monitoring.mock_uss.tracer import context from monitoring.mock_uss.tracer.log_types import ( RIDSubscribe, diff --git a/monitoring/mock_uss/tracer/tracer_poll.py b/monitoring/mock_uss/tracer/tracer_poll.py index def9c84f64..0907cf9540 100755 --- a/monitoring/mock_uss/tracer/tracer_poll.py +++ b/monitoring/mock_uss/tracer/tracer_poll.py @@ -5,7 +5,7 @@ import arrow from implicitdict import ImplicitDict, StringBasedDateTime -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.tracer import context, diff, tracerlog from monitoring.mock_uss.tracer.config import ( KEY_TRACER_KML_FOLDER, diff --git a/monitoring/mock_uss/ui/auth.py b/monitoring/mock_uss/ui/auth.py index 83c2ebe714..49faa3b974 100644 --- a/monitoring/mock_uss/ui/auth.py +++ b/monitoring/mock_uss/ui/auth.py @@ -10,7 +10,7 @@ from oauthlib.oauth2 import WebApplicationClient from werkzeug.security import check_password_hash, generate_password_hash -from monitoring.mock_uss import import_environment_variable, webapp +from monitoring.mock_uss.app import import_environment_variable, webapp login_manager = LoginManager() login_manager.init_app(webapp) diff --git a/monitoring/mock_uss/versioning/routes.py b/monitoring/mock_uss/versioning/routes.py index fc9a47ff0d..ef2a3625e8 100644 --- a/monitoring/mock_uss/versioning/routes.py +++ b/monitoring/mock_uss/versioning/routes.py @@ -1,7 +1,7 @@ import flask from uas_standards.interuss.automated_testing.versioning import api, constants -from monitoring.mock_uss import webapp +from monitoring.mock_uss.app import webapp from monitoring.mock_uss.auth import requires_scope from monitoring.monitorlib import versioning