fix(ws): update frontend to support latest start/stop API changes (#503)

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
This commit is contained in:
Guilherme Caponetto 2025-07-25 14:35:01 -03:00 committed by Bhakti Narvekar
parent f02f07c541
commit bdbfe1bbd2
9 changed files with 14 additions and 42 deletions

View File

@ -179,7 +179,9 @@ export const WorkspaceActionsContextProvider: React.FC<WorkspaceActionsContextPr
onClose={onCloseActionAlertDialog}
workspace={activeWsAction.workspace}
onStart={async () =>
api.startWorkspace({}, selectedNamespace, activeWsAction.workspace.name)
api.pauseWorkspace({}, selectedNamespace, activeWsAction.workspace.name, {
data: { paused: false },
})
}
onActionDone={activeWsAction.onActionDone}
onUpdateAndStart={async () => {
@ -200,7 +202,9 @@ export const WorkspaceActionsContextProvider: React.FC<WorkspaceActionsContextPr
onClose={onCloseActionAlertDialog}
workspace={activeWsAction.workspace}
onStop={async () =>
api.pauseWorkspace({}, selectedNamespace, activeWsAction.workspace.name)
api.pauseWorkspace({}, selectedNamespace, activeWsAction.workspace.name, {
data: { paused: true },
})
}
onActionDone={activeWsAction.onActionDone}
onUpdateAndStop={async () => {

View File

@ -15,7 +15,6 @@ import {
patchWorkspace,
patchWorkspaceKind,
pauseWorkspace,
startWorkspace,
updateWorkspace,
updateWorkspaceKind,
} from '~/shared/api/notebookService';
@ -36,7 +35,6 @@ import {
mockPatchWorkspace,
mockPatchWorkspaceKind,
mockPauseWorkspace,
mockStartWorkspace,
mockUpdateWorkspace,
mockUpdateWorkspaceKind,
} from '~/shared/mock/mockNotebookService';
@ -63,7 +61,6 @@ const useNotebookAPIState = (
patchWorkspace: patchWorkspace(path),
deleteWorkspace: deleteWorkspace(path),
pauseWorkspace: pauseWorkspace(path),
startWorkspace: startWorkspace(path),
// WorkspaceKind
listWorkspaceKinds: listWorkspaceKinds(path),
createWorkspaceKind: createWorkspaceKind(path),
@ -90,7 +87,6 @@ const useNotebookAPIState = (
patchWorkspace: mockPatchWorkspace(path),
deleteWorkspace: mockDeleteWorkspace(path),
pauseWorkspace: mockPauseWorkspace(path),
startWorkspace: mockStartWorkspace(path),
// WorkspaceKind
listWorkspaceKinds: mockListWorkspaceKinds(path),
createWorkspaceKind: mockCreateWorkspaceKind(path),

View File

@ -278,8 +278,6 @@ export interface WorkspaceUpdate extends WorkspaceCreate {}
export interface WorkspacePatch {}
export interface WorkspacePauseState {
namespace: string;
workspaceName: string;
paused: boolean;
}

View File

@ -13,7 +13,6 @@ import {
PatchWorkspace,
PatchWorkspaceKind,
PauseWorkspace,
StartWorkspace,
UpdateWorkspace,
UpdateWorkspaceKind,
} from '~/shared/api/notebookApi';
@ -38,7 +37,6 @@ export type UpdateWorkspaceAPI = KubeflowAPICall<UpdateWorkspace>;
export type PatchWorkspaceAPI = KubeflowAPICall<PatchWorkspace>;
export type DeleteWorkspaceAPI = KubeflowAPICall<DeleteWorkspace>;
export type PauseWorkspaceAPI = KubeflowAPICall<PauseWorkspace>;
export type StartWorkspaceAPI = KubeflowAPICall<StartWorkspace>;
// WorkspaceKind
export type ListWorkspaceKindsAPI = KubeflowAPICall<ListWorkspaceKinds>;

View File

@ -52,11 +52,7 @@ export type PauseWorkspace = (
opts: APIOptions,
namespace: string,
workspace: string,
) => Promise<WorkspacePauseState>;
export type StartWorkspace = (
opts: APIOptions,
namespace: string,
workspace: string,
data: RequestData<WorkspacePauseState>,
) => Promise<WorkspacePauseState>;
// WorkspaceKind
@ -89,7 +85,6 @@ export type NotebookAPIs = {
patchWorkspace: PatchWorkspace;
deleteWorkspace: DeleteWorkspace;
pauseWorkspace: PauseWorkspace;
startWorkspace: StartWorkspace;
// WorkspaceKind
listWorkspaceKinds: ListWorkspaceKinds;
getWorkspaceKind: GetWorkspaceKind;

View File

@ -22,7 +22,6 @@ import {
PatchWorkspaceAPI,
PatchWorkspaceKindAPI,
PauseWorkspaceAPI,
StartWorkspaceAPI,
UpdateWorkspaceAPI,
UpdateWorkspaceKindAPI,
} from '~/shared/api/callTypes';
@ -55,14 +54,9 @@ export const patchWorkspace: PatchWorkspaceAPI = (hostPath) => (opts, namespace,
export const deleteWorkspace: DeleteWorkspaceAPI = (hostPath) => (opts, namespace, workspace) =>
wrapRequest(restDELETE(hostPath, `/workspaces/${namespace}/${workspace}`, {}, {}, opts), false);
export const pauseWorkspace: PauseWorkspaceAPI = (hostPath) => (opts, namespace, workspace) =>
export const pauseWorkspace: PauseWorkspaceAPI = (hostPath) => (opts, namespace, workspace, data) =>
wrapRequest(
restCREATE(hostPath, `/workspaces/${namespace}/${workspace}/actions/pause`, {}, opts),
);
export const startWorkspace: StartWorkspaceAPI = (hostPath) => (opts, namespace, workspace) =>
wrapRequest(
restCREATE(hostPath, `/workspaces/${namespace}/${workspace}/actions/start`, {}, opts),
restCREATE(hostPath, `/workspaces/${namespace}/${workspace}/actions/pause`, data, {}, opts),
);
export const listWorkspaceKinds: ListWorkspaceKindsAPI = (hostPath) => (opts) =>

View File

@ -281,8 +281,6 @@ export const buildMockWorkspaceKind = (workspaceKind?: Partial<WorkspaceKind>):
export const buildMockPauseStateResponse = (
pauseState?: Partial<WorkspacePauseState>,
): WorkspacePauseState => ({
namespace: 'default',
workspaceName: 'My First Jupyter Notebook',
paused: true,
...pauseState,
});

View File

@ -15,7 +15,6 @@ import {
PatchWorkspaceAPI,
PatchWorkspaceKindAPI,
PauseWorkspaceAPI,
StartWorkspaceAPI,
UpdateWorkspaceAPI,
UpdateWorkspaceKindAPI,
} from '~/shared/api/callTypes';
@ -23,8 +22,6 @@ import {
mockAllWorkspaces,
mockedHealthCheckResponse,
mockNamespaces,
mockPausedStateResponse,
mockStartedStateResponse,
mockWorkspace1,
mockWorkspaceKind1,
mockWorkspaceKinds,
@ -58,15 +55,11 @@ export const mockDeleteWorkspace: DeleteWorkspaceAPI = () => async () => {
await delay(1500);
};
export const mockPauseWorkspace: PauseWorkspaceAPI = () => async (_opts, namespace, workspace) => {
await delay(1500);
return { ...mockPausedStateResponse, namespace, workspaceName: workspace };
};
export const mockStartWorkspace: StartWorkspaceAPI = () => async (_opts, namespace, workspace) => {
await delay(1500);
return { ...mockStartedStateResponse, namespace, workspaceName: workspace };
};
export const mockPauseWorkspace: PauseWorkspaceAPI =
() => async (_opts, _namespace, _workspace, requestData) => {
await delay(1500);
return { paused: requestData.data.paused };
};
export const mockListWorkspaceKinds: ListWorkspaceKindsAPI = () => async () => mockWorkspaceKinds;

View File

@ -7,7 +7,6 @@ import {
import {
buildMockHealthCheckResponse,
buildMockNamespace,
buildMockPauseStateResponse,
buildMockWorkspace,
buildMockWorkspaceKind,
buildMockWorkspaceKindInfo,
@ -163,6 +162,3 @@ export const mockAllWorkspaces = [
kind: mockWorkspaceKindInfo1,
}),
];
export const mockPausedStateResponse = buildMockPauseStateResponse({ paused: true });
export const mockStartedStateResponse = buildMockPauseStateResponse({ paused: false });