@@ -159,6 +159,47 @@ def waitForDeployment(dynClient: DynamicClient, namespace: str, deploymentName:
159159 sleep (5 )
160160 return foundReadyDeployment
161161
162+ def getConsoleURL (dynClient : DynamicClient ) -> str :
163+ routesAPI = dynClient .resources .get (api_version = "route.openshift.io/v1" , kind = "Route" )
164+ consoleRoute = routesAPI .get (name = "console" , namespace = "openshift-console" )
165+ return f"https://{ consoleRoute .spec .host } "
166+
167+
168+ def getNodes (dynClient : DynamicClient ) -> str :
169+ nodesAPI = dynClient .resources .get (api_version = "v1" , kind = "Node" )
170+ nodes = nodesAPI .get ().to_dict ()['items' ]
171+ return nodes
172+
173+
174+ def getStorageClass (dynClient : DynamicClient , name : str ) -> str :
175+ try :
176+ storageClassAPI = dynClient .resources .get (api_version = "storage.k8s.io/v1" , kind = "StorageClass" )
177+ storageclass = storageClassAPI .get (name = name )
178+ return storageclass
179+ except NotFoundError :
180+ return None
181+
182+
183+ def getStorageClasses (dynClient : DynamicClient ) -> list :
184+ storageClassAPI = dynClient .resources .get (api_version = "storage.k8s.io/v1" , kind = "StorageClass" )
185+ storageClasses = storageClassAPI .get ().items
186+ return storageClasses
187+
188+
189+ def isSNO (dynClient : DynamicClient ) -> bool :
190+ return len (getNodes (dynClient )) == 1
191+
192+
193+ def crdExists (dynClient : DynamicClient , crdName : str ) -> bool :
194+ crdAPI = dynClient .resources .get (api_version = "apiextensions.k8s.io/v1" , kind = "CustomResourceDefinition" )
195+ try :
196+ crdAPI .get (name = crdName )
197+ logger .debug (f"CRD does exist: { crdName } " )
198+ return True
199+ except NotFoundError :
200+ logger .debug (f"CRD does not exist: { crdName } " )
201+ return False
202+
162203def waitForPVC (dynClient : DynamicClient , namespace : str , pvcName : str ) -> bool :
163204 pvcAPI = dynClient .resources .get (api_version = "v1" , kind = "PersistentVolumeClaim" )
164205 maxRetries = 60
@@ -184,7 +225,7 @@ def patchPendingPVC(dynClient: DynamicClient, namespace: str, pvcName: str, stor
184225 try :
185226 pvc = pvcAPI .get (name = pvcName , namespace = namespace )
186227 if pvc .status .phase == "Pending" and pvc .spec .storageClassName is None :
187- if getStorageClasses is not None :
228+ if storageClassName is not None and storageClassName ( dynClient , name = storageClassName ) is not None :
188229 pvc .spec .storageClassName = storageClassName
189230 else :
190231 defaultStorageClasses = getDefaultStorageClasses (dynClient )
@@ -218,47 +259,6 @@ def patchPendingPVC(dynClient: DynamicClient, namespace: str, pvcName: str, stor
218259 logger .error ("PVC {pvcName} does not exist" )
219260 return False
220261
221- def getConsoleURL (dynClient : DynamicClient ) -> str :
222- routesAPI = dynClient .resources .get (api_version = "route.openshift.io/v1" , kind = "Route" )
223- consoleRoute = routesAPI .get (name = "console" , namespace = "openshift-console" )
224- return f"https://{ consoleRoute .spec .host } "
225-
226-
227- def getNodes (dynClient : DynamicClient ) -> str :
228- nodesAPI = dynClient .resources .get (api_version = "v1" , kind = "Node" )
229- nodes = nodesAPI .get ().to_dict ()['items' ]
230- return nodes
231-
232-
233- def getStorageClass (dynClient : DynamicClient , name : str ) -> str :
234- try :
235- storageClassAPI = dynClient .resources .get (api_version = "storage.k8s.io/v1" , kind = "StorageClass" )
236- storageclass = storageClassAPI .get (name = name )
237- return storageclass
238- except NotFoundError :
239- return None
240-
241-
242- def getStorageClasses (dynClient : DynamicClient ) -> list :
243- storageClassAPI = dynClient .resources .get (api_version = "storage.k8s.io/v1" , kind = "StorageClass" )
244- storageClasses = storageClassAPI .get ().items
245- return storageClasses
246-
247-
248- def isSNO (dynClient : DynamicClient ) -> bool :
249- return len (getNodes (dynClient )) == 1
250-
251-
252- def crdExists (dynClient : DynamicClient , crdName : str ) -> bool :
253- crdAPI = dynClient .resources .get (api_version = "apiextensions.k8s.io/v1" , kind = "CustomResourceDefinition" )
254- try :
255- crdAPI .get (name = crdName )
256- logger .debug (f"CRD does exist: { crdName } " )
257- return True
258- except NotFoundError :
259- logger .debug (f"CRD does not exist: { crdName } " )
260- return False
261-
262262
263263# Assisted by WCA@IBM
264264# Latest GenAI contribution: ibm/granite-8b-code-instruct
0 commit comments