@cryptotaxi247 / CoPilot / commits / 652262de

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(