From 37c8d68f80ba43003a3b2cf95e66c368056ab3bc Mon Sep 17 00:00:00 2001 From: David Parker Date: Sat, 14 Dec 2024 17:11:05 +0000 Subject: [PATCH 1/4] [major] Replace ICSP with IDMS --- src/mas/devops/mas.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mas/devops/mas.py b/src/mas/devops/mas.py index 549f1be2..e3dfa467 100644 --- a/src/mas/devops/mas.py +++ b/src/mas/devops/mas.py @@ -26,9 +26,9 @@ def isAirgapInstall(dynClient: DynamicClient) -> bool: try: - ICSPApi = dynClient.resources.get(api_version="operator.openshift.io/v1alpha1", kind="ImageContentSourcePolicy") - ICSPApi.get(name="ibm-mas-and-dependencies") - return True + IDMSApi = dynClient.resources.get(api_version="config.openshift.io/v1", kind="ImageDigestMirrorSet") + masIDMS = IDMSApi.get(label_selector="mas.ibm.com/idmsGroup") + return len(masIDMS.items) > 0 except NotFoundError: return False From 6660709a4ff63702cedc8ccb64e125dfc7b1c0fa Mon Sep 17 00:00:00 2001 From: David Parker Date: Sun, 15 Dec 2024 11:07:16 +0000 Subject: [PATCH 2/4] Update mas.py --- src/mas/devops/mas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mas/devops/mas.py b/src/mas/devops/mas.py index 1e79263e..aaa98f25 100644 --- a/src/mas/devops/mas.py +++ b/src/mas/devops/mas.py @@ -27,7 +27,7 @@ def isAirgapInstall(dynClient: DynamicClient) -> bool: try: IDMSApi = dynClient.resources.get(api_version="config.openshift.io/v1", kind="ImageDigestMirrorSet") - masIDMS = IDMSApi.get(label_selector="mas.ibm.com/idmsGroup") + masIDMS = IDMSApi.get(label_selector="mas.ibm.com/idms") return len(masIDMS.items) > 0 except NotFoundError: return False From d8b4319e74e0229d4001bbe2964aff5515416f1c Mon Sep 17 00:00:00 2001 From: David Parker Date: Sun, 15 Dec 2024 12:07:53 +0000 Subject: [PATCH 3/4] Update mas.py --- src/mas/devops/mas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mas/devops/mas.py b/src/mas/devops/mas.py index aaa98f25..90699e1c 100644 --- a/src/mas/devops/mas.py +++ b/src/mas/devops/mas.py @@ -27,7 +27,7 @@ def isAirgapInstall(dynClient: DynamicClient) -> bool: try: IDMSApi = dynClient.resources.get(api_version="config.openshift.io/v1", kind="ImageDigestMirrorSet") - masIDMS = IDMSApi.get(label_selector="mas.ibm.com/idms") + masIDMS = IDMSApi.get(label_selector="mas.ibm.com/idmsContent=ibm") return len(masIDMS.items) > 0 except NotFoundError: return False From e1f5142454036129c6a6064ef3b6e9c09d2a0f2f Mon Sep 17 00:00:00 2001 From: David Parker Date: Wed, 18 Dec 2024 15:26:52 +0000 Subject: [PATCH 4/4] Updates --- src/mas/devops/mas.py | 13 +++++++++---- test/src/test_mas.py | 6 ++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/mas/devops/mas.py b/src/mas/devops/mas.py index 41dbe68d..2bb18640 100644 --- a/src/mas/devops/mas.py +++ b/src/mas/devops/mas.py @@ -24,13 +24,18 @@ logger = logging.getLogger(__name__) -def isAirgapInstall(dynClient: DynamicClient) -> bool: - try: +def isAirgapInstall(dynClient: DynamicClient, checkICSP: bool = False) -> bool: + if checkICSP: + try: + ICSPApi = dynClient.resources.get(api_version="operator.openshift.io/v1alpha1", kind="ImageContentSourcePolicy") + ICSPApi.get(name="ibm-mas-and-dependencies") + return True + except NotFoundError: + return False + else: IDMSApi = dynClient.resources.get(api_version="config.openshift.io/v1", kind="ImageDigestMirrorSet") masIDMS = IDMSApi.get(label_selector="mas.ibm.com/idmsContent=ibm") return len(masIDMS.items) > 0 - except NotFoundError: - return False def getDefaultStorageClasses(dynClient: DynamicClient) -> dict: diff --git a/test/src/test_mas.py b/test/src/test_mas.py index b1b15bea..a1d9faf8 100644 --- a/test/src/test_mas.py +++ b/test/src/test_mas.py @@ -56,3 +56,9 @@ def test_entitlement_alt_name(): def test_get_channel(): channel = mas.getMasChannel(dynClient, "doesnotexist") assert channel is None + + +def test_is_airgap_install(): + # The cluster we are using to test with does not have the MAS ICSP or IDMS installed + assert mas.isAirgapInstall(dynClient) is False + assert mas.isAirgapInstall(dynClient, checkICSP=False) is False