diff --git a/src/mas/devops/ocp.py b/src/mas/devops/ocp.py index 4aa638a1..b5988010 100644 --- a/src/mas/devops/ocp.py +++ b/src/mas/devops/ocp.py @@ -72,12 +72,20 @@ def getClusterVersion(dynClient: DynamicClient) -> str: clusterVersion = clusterVersionAPI.get(name="version") for record in clusterVersion.status.history: if record.state == "Completed": - return record.state.version + return record.version except NotFoundError: logger.debug("Unable to retrieve ClusterVersion") return None +def isClusterVersionInRange(version: str, releases: list[str]) -> bool: + if releases is not None: + for release in releases: + if version.startswith(f"{release}."): + return True + return False + + def getNamespace(dynClient: DynamicClient, namespace: str) -> dict: """ Get a namespace diff --git a/test/src/test_ocp.py b/test/src/test_ocp.py index 44b3d957..6ef47a69 100644 --- a/test/src/test_ocp.py +++ b/test/src/test_ocp.py @@ -15,6 +15,17 @@ from mas.devops import ocp +def test_is_cluster_in_range(): + assert ocp.isClusterVersionInRange("4.1.6", None) is False + assert ocp.isClusterVersionInRange("4.1.6", []) is False + assert ocp.isClusterVersionInRange("4.1.6", ["4.16", "4.17", "4.18"]) is False + assert ocp.isClusterVersionInRange("4.12.6", ["4.16", "4.17", "4.18"]) is False + assert ocp.isClusterVersionInRange("4.15.6", ["4.16", "4.17", "4.18"]) is False + assert ocp.isClusterVersionInRange("4.16.0", ["4.16", "4.17", "4.18"]) is True + assert ocp.isClusterVersionInRange("4.18.1", ["4.16", "4.17", "4.18"]) is True + assert ocp.isClusterVersionInRange("5.0.0", ["4.16", "4.17", "4.18"]) is False + + def test_execInPod_success(mocker): mock_CoreV1Api = mocker.patch('kubernetes.client.CoreV1Api')