Graylog content pack (#306)
* fix graylog system version check for -beta * precommit fixes
taylor_socfortress committed
Sep 24, 2024 at 16:11 UTC
652262de20a310bc692408a148156cf14cebbabd
1 file changed
+11
-8
backend/app/stack_provisioning/graylog/services/utils.py
+11
-8
@@ -1,5 +1,7 @@
1
from fastapi import HTTPException
2
from loguru import logger
3
+from packaging.version import InvalidVersion
4
+from packaging.version import Version
5
from sqlalchemy.ext.asyncio import AsyncSession
6
from sqlalchemy.future import select
7
@@ -36,15 +38,16 @@ async def system_version_check(compatible_version: str) -> bool:
38
system_version = await get_graylog_version()
39
logger.info(f"Graylog System version: {system_version}")
40
39
- # Split the version strings at the '+' character and compare the parts before the '+'
40
- system_version = system_version.split("+")[0]
41
- compatible_version = compatible_version.split("+")[0]
42
-
43
- # Split these parts at the '.' character and convert them to integers
44
- system_version_parts = list(map(int, system_version.split(".")))
45
- compatible_version_parts = list(map(int, compatible_version.split(".")))
41
+ try:
42
+ system_version_parsed = Version(system_version)
43
+ compatible_version_parsed = Version(compatible_version)
44
+ except InvalidVersion as e:
45
+ raise HTTPException(
46
+ status_code=400,
47
+ detail=f"Invalid version format: {e}",
48
+ )
49
47
- if system_version_parts >= compatible_version_parts:
50
+ if system_version_parsed >= compatible_version_parsed:
51
return True
52
else:
53
raise HTTPException(