Skip to content

Commit 33cb1a9

Browse files
chore: add more versions to startup log (#1225)
Follow up #1216 by adding some package version that I think are relevant. Refactor `get_eda_version` to `get_package_version` for a more general purpose helper. Update tests accordingly Signed-off-by: Alex <[email protected]>
1 parent 7e922a9 commit 33cb1a9

File tree

7 files changed

+37
-18
lines changed

7 files changed

+37
-18
lines changed

src/aap_eda/api/views/config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from rest_framework.views import APIView
2121

2222
from aap_eda.api.serializers import ConfigSerializer
23-
from aap_eda.utils import get_eda_version
23+
from aap_eda.utils import get_package_version
2424

2525

2626
class ConfigView(APIView):
@@ -38,7 +38,7 @@ class ConfigView(APIView):
3838
def get(self, request):
3939
data = {
4040
"time_zone": settings.TIME_ZONE,
41-
"version": get_eda_version(),
41+
"version": get_package_version("aap-eda"),
4242
"deployment_type": settings.DEPLOYMENT_TYPE,
4343
}
4444

src/aap_eda/settings/default.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ def get_rq_queues() -> dict:
564564

565565
SPECTACULAR_SETTINGS = {
566566
"TITLE": "Event Driven Ansible API",
567-
"VERSION": utils.get_eda_version(),
567+
"VERSION": utils.get_package_version("aap-eda"),
568568
"SERVE_INCLUDE_SCHEMA": False,
569569
"SCHEMA_PATH_PREFIX": f"/{API_PREFIX}/v[0-9]",
570570
"SCHEMA_PATH_PREFIX_TRIM": True,

src/aap_eda/utils/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ def str_to_bool(value: str) -> bool:
2121
return value.lower() in ("yes", "true", "1")
2222

2323

24-
def get_eda_version() -> str:
25-
"""Return EDA version as defined in the aap-eda package."""
24+
def get_package_version(package_name: str) -> str:
25+
"""Return version of the given package."""
2626
try:
27-
return importlib.metadata.version("aap-eda")
27+
return importlib.metadata.version(package_name)
2828
except importlib.metadata.PackageNotFoundError:
29-
logger.error("Cannot read version from aap-eda package")
29+
logger.error("Cannot read version from %s package", package_name)
3030
return "unknown"

src/aap_eda/utils/logging.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
from django.conf import settings
1919

20-
from aap_eda.utils import get_eda_version
20+
from aap_eda.utils import get_package_version
2121

2222

2323
class UnconditionalLogger:
@@ -75,13 +75,25 @@ def log(self, *args, **kwargs):
7575
"EVENT_STREAM_BASE_URL",
7676
]
7777

78+
LOGGING_PACKAGE_VERSIONS = [
79+
"podman",
80+
"kubernetes",
81+
"django-ansible-base",
82+
]
83+
7884

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

83-
unconditional_logger.log(f"Starting eda-server {get_eda_version()}")
89+
unconditional_logger.log(
90+
f"Starting eda-server {get_package_version('aap-eda')}",
91+
)
8492
unconditional_logger.log(f"Python version: {platform.python_version()}")
93+
for pkg in LOGGING_PACKAGE_VERSIONS:
94+
unconditional_logger.log(
95+
f"{pkg} library version: {get_package_version(pkg)}",
96+
)
8597
unconditional_logger.log(
8698
f"Platform: {platform.platform()} {platform.architecture()}",
8799
)

tests/integration/api/test_config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import pytest
1515
from django.conf import settings
1616

17-
from aap_eda.utils import get_eda_version
17+
from aap_eda.utils import get_package_version
1818
from tests.integration.constants import api_url_v1
1919

2020

@@ -24,6 +24,6 @@ def test_v1_config(admin_client):
2424
assert response.status_code == 200
2525
assert response.data == {
2626
"time_zone": settings.TIME_ZONE,
27-
"version": get_eda_version(),
27+
"version": get_package_version("aap-eda"),
2828
"deployment_type": settings.DEPLOYMENT_TYPE,
2929
}

tests/unit/test_logging.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from django.conf import settings
55
from django.test import override_settings
66

7-
from aap_eda.utils import get_eda_version
7+
from aap_eda.utils import get_package_version
88
from aap_eda.utils.logging import SETTINGS_LIST_FOR_LOGGING, startup_logging
99

1010

@@ -15,7 +15,7 @@ def test_startup_logging(caplog_factory):
1515
startup_logging(logger)
1616

1717
assert "Starting eda-server" in caplog.text
18-
assert get_eda_version() in caplog.text
18+
assert get_package_version("aap-eda") in caplog.text
1919
assert "Python version" in caplog.text
2020
assert platform.python_version() in caplog.text
2121
for setting in SETTINGS_LIST_FOR_LOGGING:

tests/unit/test_utils.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@
2222
from rest_framework import serializers
2323

2424
from aap_eda.core.utils.strings import extract_variables
25-
from aap_eda.utils import get_eda_version, str_to_bool
25+
from aap_eda.utils import (
26+
get_package_version,
27+
logger as utils_logger,
28+
str_to_bool,
29+
)
2630
from aap_eda.utils.openapi import generate_query_params
2731

2832

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

4751

48-
def test_get_eda_version():
49-
assert get_eda_version() == version("aap-eda")
52+
def test_get_package_version(caplog_factory):
53+
eda_caplog = caplog_factory(utils_logger)
54+
assert get_package_version("aap-eda") == version("aap-eda")
55+
assert get_package_version("podman") == version("podman")
5056

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

5562

5663
@pytest.mark.parametrize(

0 commit comments

Comments
 (0)