The main entrypoint for GSO, and the different ways in which it can be run.
gso_initialise_celery(celery)
Initialise the Celery app.
Source code in gso/__init__.py
| def gso_initialise_celery(celery: Celery) -> None:
"""Initialise the Celery app."""
initialise_celery(celery)
celery.conf.task_routes = {}
|
init_gso_app()
Initialise the GSO app.
Source code in gso/__init__.py
| def init_gso_app() -> OrchestratorCore:
"""Initialise the GSO app."""
app = OrchestratorCore(base_settings=app_settings)
app.register_authentication(oidc_instance)
app.register_authorization(opa_instance)
app.register_graphql_authorization(graphql_opa_instance)
app.register_graphql(subscription_interface=custom_subscription_interface)
app.include_router(api_router, prefix="/api")
celery = Celery(
"geant-service-orchestrator",
broker=celery_settings.broker_url,
backend=celery_settings.result_backend,
include=["orchestrator.services.tasks", "gso.tasks.start_process"],
)
celery.conf.update(
result_expires=celery_settings.result_expires,
task_always_eager=app_settings.TESTING,
task_eager_propagates=app_settings.TESTING,
)
gso_initialise_celery(celery)
return app
|
init_cli_app()
Initialise GSO as a CLI application.
Source code in gso/__init__.py
| def init_cli_app() -> typer.Typer:
"""Initialise GSO as a CLI application."""
from gso.cli import imports, netbox # noqa: PLC0415
cli_app.add_typer(imports.app, name="import-cli")
cli_app.add_typer(netbox.app, name="netbox-cli")
return cli_app()
|
init_sentry()
Only initialize Sentry if not in testing mode.
Source code in gso/__init__.py
| def init_sentry() -> None:
"""Only initialize Sentry if not in testing mode."""
if not app_settings.TESTING and (sentry_params := load_oss_params().SENTRY):
sentry_sdk.init(
dsn=sentry_params.DSN, environment=load_oss_params().GENERAL.environment, traces_sample_rate=1.0
)
|