From 3596a57ae28fe2faa7ae9062a47f4efa23b3ff8f Mon Sep 17 00:00:00 2001 From: Ashley McEntee Date: Wed, 31 Jul 2024 14:23:12 -0400 Subject: [PATCH] Fix for untrue flag --- .../__tests__/useNotebookImageData.spec.ts | 17 ++++++++++++++ .../detail/notebooks/useNotebookImageData.ts | 22 +++++++++++-------- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/frontend/src/pages/projects/screens/detail/notebooks/__tests__/useNotebookImageData.spec.ts b/frontend/src/pages/projects/screens/detail/notebooks/__tests__/useNotebookImageData.spec.ts index 8685653586..33deb80264 100644 --- a/frontend/src/pages/projects/screens/detail/notebooks/__tests__/useNotebookImageData.spec.ts +++ b/frontend/src/pages/projects/screens/detail/notebooks/__tests__/useNotebookImageData.spec.ts @@ -106,4 +106,21 @@ describe('getNotebookImageData', () => { const result = getNotebookImageData(notebook, images); expect(result?.imageAvailability).toBe(NotebookImageAvailability.DELETED); }); + + it('should fail without fix', () => { + const imageName = 'jupyter-datascience-notebook'; + const tagName = '2024.1'; + const notebook = mockNotebookK8sResource({ + lastImageSelection: `${imageName}:${tagName}`, + image: `image-registry.openshift-image-registry.svc:5000/opendatahub/${imageName}:${tagName}`, + }); + const images = [ + mockImageStreamK8sResource({ + tagName, + name: imageName, + }), + ]; + const result = getNotebookImageData(notebook, images); + expect(result?.imageAvailability).toBe(NotebookImageAvailability.ENABLED); + }); }); diff --git a/frontend/src/pages/projects/screens/detail/notebooks/useNotebookImageData.ts b/frontend/src/pages/projects/screens/detail/notebooks/useNotebookImageData.ts index 17f4078783..8af9976543 100644 --- a/frontend/src/pages/projects/screens/detail/notebooks/useNotebookImageData.ts +++ b/frontend/src/pages/projects/screens/detail/notebooks/useNotebookImageData.ts @@ -24,21 +24,22 @@ export const getNotebookImageData = ( } const [imageName, versionName] = imageTag; - const [lastImageSelectionName] = + const [lastImageSelectionName, lastImageSelectionTag] = notebook.metadata.annotations?.['notebooks.opendatahub.io/last-image-selection']?.split(':') ?? []; // Fallback for non internal registry clusters const imageStream = images.find((image) => image.metadata.name === imageName) || - images.find((image) => - image.spec.tags - ? image.spec.tags.find( + images.find( + (image) => + image.metadata.name === lastImageSelectionName && + (image.spec.tags?.find((version) => version.from?.name === container.image) || + image.status?.tags?.find( (version) => - version.from?.name === container.image && - image.metadata.name === lastImageSelectionName, - ) - : false, + version.tag === lastImageSelectionTag && + version.items?.find((item) => item.dockerImageReference === container.image), + )), ); // if the image stream is not found, consider it deleted @@ -54,7 +55,10 @@ export const getNotebookImageData = ( const versions = imageStream.spec.tags || []; const imageVersion = versions.find( - (version) => version.name === versionName || version.from?.name === container.image, + (version) => + version.name === versionName || + version.from?.name === container.image || + version.name === lastImageSelectionTag, ); // because the image stream was found, get its display name