Skip to content

Commit

Permalink
chore: add more versions to startup log
Browse files Browse the repository at this point in the history
Signed-off-by: Alex <aizquier@redhat.com>
  • Loading branch information
Alex-Izquierdo committed Feb 27, 2025
1 parent 8a4acec commit 38b64a4
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 17 deletions.
4 changes: 2 additions & 2 deletions src/aap_eda/api/views/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from rest_framework.views import APIView

from aap_eda.api.serializers import ConfigSerializer
from aap_eda.utils import get_eda_version
from aap_eda.utils import get_package_version


class ConfigView(APIView):
Expand All @@ -38,7 +38,7 @@ class ConfigView(APIView):
def get(self, request):
data = {
"time_zone": settings.TIME_ZONE,
"version": get_eda_version(),
"version": get_package_version("aap-eda"),
"deployment_type": settings.DEPLOYMENT_TYPE,
}

Expand Down
2 changes: 1 addition & 1 deletion src/aap_eda/settings/default.py
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@ def get_rq_queues() -> dict:

SPECTACULAR_SETTINGS = {
"TITLE": "Event Driven Ansible API",
"VERSION": utils.get_eda_version(),
"VERSION": utils.get_package_version("aap-eda"),
"SERVE_INCLUDE_SCHEMA": False,
"SCHEMA_PATH_PREFIX": f"/{API_PREFIX}/v[0-9]",
"SCHEMA_PATH_PREFIX_TRIM": True,
Expand Down
8 changes: 4 additions & 4 deletions src/aap_eda/utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ def str_to_bool(value: str) -> bool:
return value.lower() in ("yes", "true", "1")


def get_eda_version() -> str:
"""Return EDA version as defined in the aap-eda package."""
def get_package_version(package_name: str) -> str:
"""Return version of the given package."""
try:
return importlib.metadata.version("aap-eda")
return importlib.metadata.version(package_name)
except importlib.metadata.PackageNotFoundError:
logger.error("Cannot read version from aap-eda package")
logger.error("Cannot read version from %s package", package_name)
return "unknown"
16 changes: 14 additions & 2 deletions src/aap_eda/utils/logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

from django.conf import settings

from aap_eda.utils import get_eda_version
from aap_eda.utils import get_package_version


class UnconditionalLogger:
Expand Down Expand Up @@ -75,13 +75,25 @@ def log(self, *args, **kwargs):
"EVENT_STREAM_BASE_URL",
]

LOGGING_PACKAGE_VERSIONS = [
"podman",
"kubernetes",
"django-ansible-base",
]


def startup_logging(logger: logging.Logger) -> None:
"""Log unconditional messages for startup."""
unconditional_logger = UnconditionalLogger(logger)

unconditional_logger.log(f"Starting eda-server {get_eda_version()}")
unconditional_logger.log(
f"Starting eda-server {get_package_version('aap-eda')}",
)
unconditional_logger.log(f"Python version: {platform.python_version()}")
for pkg in LOGGING_PACKAGE_VERSIONS:
unconditional_logger.log(
f"{pkg} library version: {get_package_version(pkg)}",
)
unconditional_logger.log(
f"Platform: {platform.platform()} {platform.architecture()}",
)
Expand Down
4 changes: 2 additions & 2 deletions tests/integration/api/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import pytest
from django.conf import settings

from aap_eda.utils import get_eda_version
from aap_eda.utils import get_package_version
from tests.integration.constants import api_url_v1


Expand All @@ -24,6 +24,6 @@ def test_v1_config(admin_client):
assert response.status_code == 200
assert response.data == {
"time_zone": settings.TIME_ZONE,
"version": get_eda_version(),
"version": get_package_version("aap-eda"),
"deployment_type": settings.DEPLOYMENT_TYPE,
}
4 changes: 2 additions & 2 deletions tests/unit/test_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.conf import settings
from django.test import override_settings

from aap_eda.utils import get_eda_version
from aap_eda.utils import get_package_version
from aap_eda.utils.logging import SETTINGS_LIST_FOR_LOGGING, startup_logging


Expand All @@ -15,7 +15,7 @@ def test_startup_logging(caplog_factory):
startup_logging(logger)

assert "Starting eda-server" in caplog.text
assert get_eda_version() in caplog.text
assert get_package_version("aap-eda") in caplog.text
assert "Python version" in caplog.text
assert platform.python_version() in caplog.text
for setting in SETTINGS_LIST_FOR_LOGGING:
Expand Down
15 changes: 11 additions & 4 deletions tests/unit/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@
from rest_framework import serializers

from aap_eda.core.utils.strings import extract_variables
from aap_eda.utils import get_eda_version, str_to_bool
from aap_eda.utils import (
get_package_version,
logger as utils_logger,
str_to_bool,
)
from aap_eda.utils.openapi import generate_query_params


Expand All @@ -45,12 +49,15 @@ def test_str_to_bool(value, expected):
assert str_to_bool(value) == expected


def test_get_eda_version():
assert get_eda_version() == version("aap-eda")
def test_get_package_version(caplog_factory):
eda_caplog = caplog_factory(utils_logger)
assert get_package_version("aap-eda") == version("aap-eda")
assert get_package_version("aap-eda") == version("podman")

# assert outcome when aap-eda package is not found
with patch("importlib.metadata.version", side_effect=PackageNotFoundError):
assert get_eda_version() == "unknown"
assert get_package_version("aap-eda") == "unknown"
assert "Cannot read version" in eda_caplog.text


@pytest.mark.parametrize(
Expand Down

0 comments on commit 38b64a4

Please sign in to comment.