Skip to content

Commit e867b24

Browse files
authored
Serving refactor global models page backport (opendatahub-io#4531)
* Add global models page backports * Remove unused backport file
1 parent 6f26a4b commit e867b24

File tree

4 files changed

+40
-1
lines changed

4 files changed

+40
-1
lines changed

frontend/packages/model-serving-backport/extensions.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ const extensions: ModelServingPlatformExtension[] = [
4242
import(
4343
'@odh-dashboard/internal/pages/projects/screens/detail/overview/serverModels/ServeModelsSection'
4444
),
45+
GlobalModelsPage: () =>
46+
import('@odh-dashboard/internal/pages/modelServing/ModelServingRoutes'),
4547
},
4648
},
4749
flags: {
@@ -87,6 +89,8 @@ const extensions: ModelServingPlatformExtension[] = [
8789
import(
8890
'@odh-dashboard/internal/pages/projects/screens/detail/overview/serverModels/ServeModelsSection'
8991
),
92+
GlobalModelsPage: () =>
93+
import('@odh-dashboard/internal/pages/modelServing/ModelServingRoutes'),
9094
},
9195
},
9296
flags: {

frontend/packages/modelServing/extension-points/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ export type ModelServingPlatformExtension<D extends Deployment = Deployment> = E
9494
backport?: {
9595
ModelsProjectDetailsTab?: ComponentCodeRef;
9696
ServeModelsSection?: ComponentCodeRef;
97+
GlobalModelsPage?: ComponentCodeRef;
9798
};
9899
}
99100
>;

frontend/packages/modelServing/src/components/global/GlobalModelsPage.tsx

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import React from 'react';
22
import { ProjectsContext } from '@odh-dashboard/internal/concepts/projects/ProjectsContext';
3-
import { useExtensions } from '@odh-dashboard/plugin-core';
3+
import { LazyCodeRefComponent, useExtensions } from '@odh-dashboard/plugin-core';
44
import { Bullseye, Spinner } from '@patternfly/react-core';
55
import { useNavigate, useParams } from 'react-router-dom';
66
import GlobalDeploymentsView from './GlobalDeploymentsView';
77
import { ModelDeploymentsProvider } from '../../concepts/ModelDeploymentsContext';
8+
import { getMultiProjectServingPlatforms } from '../../concepts/useProjectServingPlatform';
89
import { isModelServingPlatformExtension } from '../../../extension-points';
910

1011
const GlobalModelsPage: React.FC = () => {
@@ -31,6 +32,25 @@ const GlobalModelsPage: React.FC = () => {
3132
}
3233
}, [namespace, preferredProject, navigate]);
3334

35+
const BackportPageComponent = React.useMemo(() => {
36+
const platforms = getMultiProjectServingPlatforms(projectsToShow, availablePlatforms);
37+
return platforms.find((p) => p.properties.backport?.GlobalModelsPage)?.properties.backport
38+
?.GlobalModelsPage;
39+
}, [projectsToShow, availablePlatforms]);
40+
41+
if (BackportPageComponent) {
42+
return (
43+
<LazyCodeRefComponent
44+
component={BackportPageComponent}
45+
fallback={
46+
<Bullseye>
47+
<Spinner />
48+
</Bullseye>
49+
}
50+
/>
51+
);
52+
}
53+
3454
if (!projectsLoaded) {
3555
return (
3656
<Bullseye>

frontend/packages/modelServing/src/concepts/useProjectServingPlatform.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,20 @@ export const getProjectServingPlatform = (
3939
return sortedEnabledPlatforms[0] ?? null;
4040
};
4141

42+
export const getMultiProjectServingPlatforms = (
43+
projects: ProjectKind[],
44+
platforms: ModelServingPlatform[],
45+
): ModelServingPlatform[] => {
46+
const result = [];
47+
for (const project of projects) {
48+
const platform = getProjectServingPlatform(project, platforms);
49+
if (platform) {
50+
result.push(platform);
51+
}
52+
}
53+
return result;
54+
};
55+
4256
export const useProjectServingPlatform = (
4357
project: ProjectKind,
4458
platforms?: ModelServingPlatform[],

0 commit comments

Comments
 (0)