fix: storage api alignment

This commit is contained in:
jialin
2026-05-11 19:49:21 +08:00
committed by jialin
parent 7fa44644fd
commit 7d0cfeff77
34 changed files with 881 additions and 324 deletions
+51 -33
View File
@@ -1,5 +1,3 @@
import { StatusMaps } from '@/config';
import { StatusType } from '@/config/types';
import { icons } from '@gpustack/core-ui';
export const StorageTypeValueMap = {
@@ -9,52 +7,72 @@ export const StorageTypeValueMap = {
};
export const StorageTypeLabelMap: Record<string, string> = {
[StorageTypeValueMap.Local]: '默认存储',
[StorageTypeValueMap.Shared]: '默认存储',
[StorageTypeValueMap.Local]: '本地存储',
[StorageTypeValueMap.Shared]: '共享存储',
[StorageTypeValueMap.Object]: '对象存储'
};
export const StorageAccessModeValueMap = {
ReadWriteOnce: 'ReadWriteOnce',
ReadOnlyMany: 'ReadOnlyMany',
ReadWriteMany: 'ReadWriteMany'
};
export const StorageAccessModeOptions = [
export const StorageTypeOptions = [
{
label: 'ReadWriteOnce',
value: StorageAccessModeValueMap.ReadWriteOnce
label: StorageTypeLabelMap[StorageTypeValueMap.Local],
value: StorageTypeValueMap.Local
},
{
label: 'ReadWriteMany',
value: StorageAccessModeValueMap.ReadWriteMany
label: StorageTypeLabelMap[StorageTypeValueMap.Shared],
value: StorageTypeValueMap.Shared
},
{
label: 'ReadOnlyMany',
value: StorageAccessModeValueMap.ReadOnlyMany
label: StorageTypeLabelMap[StorageTypeValueMap.Object],
value: StorageTypeValueMap.Object
}
];
export const StorageStatusValueMap = {
Available: 'Available',
Bound: 'Bound',
Released: 'Released',
Failed: 'Failed'
export const AccessModeValueMap = {
ReadWriteOnce: 'ReadWriteOnce',
ReadOnlyMany: 'ReadOnlyMany',
ReadWriteMany: 'ReadWriteMany',
ReadWriteOncePod: 'ReadWriteOncePod'
};
export const StorageStatusLabelMap: Record<string, string> = {
[StorageStatusValueMap.Available]: 'Available',
[StorageStatusValueMap.Bound]: 'Bound',
[StorageStatusValueMap.Released]: 'Released',
[StorageStatusValueMap.Failed]: 'Failed'
export const AccessModeOptions = [
{
label: 'ReadWriteOnce',
value: AccessModeValueMap.ReadWriteOnce
},
{
label: 'ReadWriteMany',
value: AccessModeValueMap.ReadWriteMany
},
{
label: 'ReadOnlyMany',
value: AccessModeValueMap.ReadOnlyMany
},
{
label: 'ReadWriteOncePod',
value: AccessModeValueMap.ReadWriteOncePod
}
];
export const ReClaimPolicyValueMap = {
Retain: 'Retain',
Delete: 'Delete',
Recycle: 'Recycle'
};
export const status: Record<string, StatusType> = {
[StorageStatusValueMap.Available]: StatusMaps.success,
[StorageStatusValueMap.Bound]: StatusMaps.transitioning,
[StorageStatusValueMap.Released]: StatusMaps.inactive,
[StorageStatusValueMap.Failed]: StatusMaps.error
};
export const ReClaimPolicyOptions = [
{
label: 'Retain',
value: ReClaimPolicyValueMap.Retain
},
{
label: 'Delete',
value: ReClaimPolicyValueMap.Delete
},
{
label: 'Recycle',
value: ReClaimPolicyValueMap.Recycle
}
];
export const rowActionList = [
{
@@ -1,68 +1,64 @@
import { StorageStatusValueMap, StorageTypeValueMap } from '.';
import { StorageTypeValueMap } from '.';
import { ListItem } from './types';
export const mockStorageData: ListItem[] = [
export const mockStorageData: (ListItem & { cluster_id: number })[] = [
{
id: 1,
name: 'local-nvme-cache',
type: StorageTypeValueMap.Local,
capacity_gb: 500,
mount_path: '/mnt/nvme',
access_modes: ['ReadWriteOnce'],
parameters: {
path: '/mnt/nvme'
},
status: StorageStatusValueMap.Available,
cluster_id: 1,
description: 'Local NVMe cache for hot model files',
metadata: {
name: 'local-nvme-cache',
namespace: 'default'
},
spec: {
accessMode: 'ReadWriteOnce',
capacity: '500Gi',
type: StorageTypeValueMap.Local
},
created_at: '2026-04-01T10:00:00Z',
updated_at: '2026-04-10T10:00:00Z'
},
{
id: 2,
name: 'shared-model-store',
type: StorageTypeValueMap.Shared,
capacity_gb: 2048,
mount_path: '/models',
access_modes: ['ReadWriteMany'],
parameters: {
storageClassName: 'nfs-client'
},
status: StorageStatusValueMap.Bound,
cluster_id: 1,
description: 'Shared storage for model weights',
metadata: {
name: 'shared-model-store',
namespace: 'default'
},
spec: {
accessMode: 'ReadWriteMany',
capacity: '2Ti',
type: StorageTypeValueMap.Shared
},
created_at: '2026-04-02T10:00:00Z',
updated_at: '2026-04-11T10:00:00Z'
},
{
id: 3,
name: 'object-dataset-bucket',
type: StorageTypeValueMap.Object,
capacity_gb: 10240,
mount_path: '/datasets',
access_modes: ['ReadOnlyMany'],
parameters: {
bucket: 'datasets'
},
status: StorageStatusValueMap.Released,
cluster_id: 2,
description: 'Object storage mounted for datasets',
metadata: {
name: 'object-dataset-bucket',
namespace: 'default'
},
spec: {
accessMode: 'ReadOnlyMany',
capacity: '10Ti',
type: StorageTypeValueMap.Object
},
created_at: '2026-04-03T10:00:00Z',
updated_at: '2026-04-12T10:00:00Z'
},
{
id: 4,
name: 'failed-shared-cache',
type: StorageTypeValueMap.Shared,
capacity_gb: 1024,
mount_path: '/failed-cache',
access_modes: ['ReadWriteMany'],
parameters: {
storageClassName: 'nfs-client'
},
status: StorageStatusValueMap.Failed,
cluster_id: 2,
description: 'Shared cache waiting for storage backend recovery',
metadata: {
name: 'failed-shared-cache',
namespace: 'default'
},
spec: {
accessMode: 'ReadWriteMany',
capacity: '1Ti',
type: StorageTypeValueMap.Shared
},
created_at: '2026-04-04T10:00:00Z',
updated_at: '2026-04-13T10:00:00Z'
}
+16 -9
View File
@@ -1,13 +1,20 @@
export type AccessModeType =
| 'ReadOnlyMany'
| 'ReadWriteMany'
| 'ReadWriteOnce'
| 'ReadWriteOncePod';
export type ReClaimPolicyType = 'Retain' | 'Delete' | 'Recycle';
export interface FormData {
name: string;
description?: string;
type?: string;
capacity_gb?: number;
mount_path?: string;
access_modes?: string[];
parameters?: Record<string, any>;
status?: string;
cluster_id?: number;
metadata: {
name: string;
namespace: string;
};
spec: {
accessMode: AccessModeType;
capacity: string;
type: string;
};
}
export interface ListItem extends FormData {