Skip to content
Snippets Groups Projects
Commit 4793ad04 authored by Neda Moeini's avatar Neda Moeini
Browse files

- Added an environment variable (TESTING) to prevent Sentry from initializing during test runs.

- Configured Sentry to include environment information in its setup.
parent 3cb33564
No related branches found
No related tags found
1 merge request!237Added sentry SDK
"""The main entrypoint for :term:`GSO`, and the different ways in which it can be run."""
import os
import sentry_sdk
import typer
from orchestrator import OrchestratorCore, app_settings
......@@ -13,16 +15,10 @@ from gso.api import router as api_router
from gso.auth.oidc import oidc_instance
from gso.auth.opa import graphql_opa_instance, opa_instance
from gso.graphql_api.types import GSO_SCALAR_OVERRIDES
from gso.settings import load_oss_params
SCALAR_OVERRIDES.update(GSO_SCALAR_OVERRIDES)
sentry_sdk.init(
dsn="https://2b0b82245bfa6631041802c997ed8b58@test-observer01.geant.org/3",
# Set traces_sample_rate to 1.0 to capture 100%
# of transactions for performance monitoring.
traces_sample_rate=1.0,
)
def init_gso_app() -> OrchestratorCore:
"""Initialise the :term:`GSO` app."""
......@@ -47,3 +43,12 @@ def init_cli_app() -> typer.Typer:
cli_app.add_typer(imports.app, name="import-cli")
cli_app.add_typer(netbox.app, name="netbox-cli")
return cli_app()
def init_sentry() -> None:
"""Only initialize Sentry if not in testing mode."""
if os.getenv("TESTING", "false").lower() == "false" and (sentry_config := load_oss_params().SENTRY):
sentry_sdk.init(dsn=sentry_config.DSN, environment=sentry_config.environment, traces_sample_rate=1.0)
init_sentry()
......@@ -10,9 +10,8 @@ import logging
import os
from pathlib import Path
from typing import Annotated
from pydantic import EmailStr, Field
from pydantic_forms.types import UUIDstr
from pydantic_forms.types import UUIDstr, strEnum
from pydantic_settings import BaseSettings
from typing_extensions import Doc
......@@ -193,6 +192,22 @@ class KentikParams(BaseSettings):
md5_password: str
class EnvironmentEnum(strEnum):
"""The different environments in which the GSO system can run."""
DEVELOPMENT = "development"
TEST = "test"
UAT = "uat"
PRODUCTION = "production"
class SentryParams(BaseSettings):
"""Settings for Sentry."""
DSN: str
environment: EnvironmentEnum
class OSSParams(BaseSettings):
"""The set of parameters required for running :term:`GSO`."""
......@@ -206,6 +221,7 @@ class OSSParams(BaseSettings):
EMAIL: EmailParams
SHAREPOINT: SharepointParams
KENTIK: KentikParams
SENTRY: SentryParams | None = None
def load_oss_params() -> OSSParams:
......
import os
from uuid import uuid4
LSO_RESULT_SUCCESS = {
......@@ -19,3 +20,5 @@ LSO_RESULT_FAILURE = {
}
USER_CONFIRM_EMPTY_FORM = [{}]
os.environ["TESTING"] = "true"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment