fix: api test
This commit is contained in:
@@ -1,23 +1,47 @@
|
||||
import { StatusMaps } from '@/config';
|
||||
import { StatusType } from '@/config/types';
|
||||
import { icons } from '@gpustack/core-ui';
|
||||
import _ from 'lodash';
|
||||
import {
|
||||
InstanceTypeItem,
|
||||
InstanceTypeResource,
|
||||
InstanceTypeStatus
|
||||
} from './types';
|
||||
|
||||
export const InstanceStatusValueMap = {
|
||||
Ready: 'ready',
|
||||
Pending: 'pending',
|
||||
Error: 'error'
|
||||
Scheduling: 'Scheduling',
|
||||
Pending: 'Pending',
|
||||
Scheduled: 'Scheduled',
|
||||
Initializing: 'Initializing',
|
||||
InitializeFailed: 'InitializeFailed',
|
||||
Initialized: 'Initialized',
|
||||
Preparing: 'Preparing',
|
||||
NotReady: 'NotReady',
|
||||
Ready: 'Ready'
|
||||
};
|
||||
|
||||
export const InstanceStatusLabelMap: Record<string, string> = {
|
||||
[InstanceStatusValueMap.Ready]: 'Ready',
|
||||
[InstanceStatusValueMap.Scheduling]: 'Scheduling',
|
||||
[InstanceStatusValueMap.Pending]: 'Pending',
|
||||
[InstanceStatusValueMap.Error]: 'Error'
|
||||
[InstanceStatusValueMap.Scheduled]: 'Scheduled',
|
||||
[InstanceStatusValueMap.Initializing]: 'Initializing',
|
||||
[InstanceStatusValueMap.InitializeFailed]: 'InitializeFailed',
|
||||
[InstanceStatusValueMap.Initialized]: 'Initialized',
|
||||
[InstanceStatusValueMap.Preparing]: 'Preparing',
|
||||
[InstanceStatusValueMap.NotReady]: 'NotReady',
|
||||
[InstanceStatusValueMap.Ready]: 'Ready'
|
||||
};
|
||||
|
||||
export const status: Record<string, StatusType> = {
|
||||
[InstanceStatusValueMap.Ready]: StatusMaps.success,
|
||||
[InstanceStatusValueMap.Scheduling]: StatusMaps.transitioning,
|
||||
[InstanceStatusValueMap.Pending]: StatusMaps.transitioning,
|
||||
[InstanceStatusValueMap.Error]: StatusMaps.error
|
||||
[InstanceStatusValueMap.Scheduled]: StatusMaps.transitioning,
|
||||
[InstanceStatusValueMap.Initializing]: StatusMaps.transitioning,
|
||||
[InstanceStatusValueMap.InitializeFailed]: StatusMaps.error,
|
||||
[InstanceStatusValueMap.Initialized]: StatusMaps.transitioning,
|
||||
[InstanceStatusValueMap.Preparing]: StatusMaps.transitioning,
|
||||
[InstanceStatusValueMap.NotReady]: StatusMaps.warning,
|
||||
[InstanceStatusValueMap.Ready]: StatusMaps.success
|
||||
};
|
||||
|
||||
export const rowActionList = [
|
||||
@@ -37,8 +61,23 @@ export const rowActionList = [
|
||||
];
|
||||
|
||||
export const InstanceTypePhaseValueMap = {
|
||||
Available: 'Available',
|
||||
Unavailable: 'Unavailable'
|
||||
// Available: 'Available',
|
||||
// Unavailable: 'Unavailable'
|
||||
PreParing: 'Preparing',
|
||||
Inactive: 'Inactive',
|
||||
Active: 'Active'
|
||||
};
|
||||
|
||||
export const InstanceTypePhaseLabelMap: Record<string, string> = {
|
||||
[InstanceTypePhaseValueMap.PreParing]: 'Preparing',
|
||||
[InstanceTypePhaseValueMap.Inactive]: 'Inactive',
|
||||
[InstanceTypePhaseValueMap.Active]: 'Active'
|
||||
};
|
||||
|
||||
export const InstanceTypePhaseStatus: Record<string, StatusType> = {
|
||||
[InstanceTypePhaseValueMap.PreParing]: StatusMaps.transitioning,
|
||||
[InstanceTypePhaseValueMap.Inactive]: StatusMaps.inactive,
|
||||
[InstanceTypePhaseValueMap.Active]: StatusMaps.success
|
||||
};
|
||||
|
||||
export const StorageModeValueMap = {
|
||||
@@ -48,3 +87,55 @@ export const StorageModeValueMap = {
|
||||
|
||||
// Constant SSH public key resource name used when SSH is enabled
|
||||
export const DEFAULT_SSH_PUBLIC_KEY_NAME = 'default';
|
||||
|
||||
const KI_TO_GI = 1024 * 1024;
|
||||
|
||||
export const convertKiToGi = (value?: string): string | undefined => {
|
||||
if (!value) return value;
|
||||
const match = /^(-?\d+(?:\.\d+)?)Ki$/.exec(value);
|
||||
if (!match) return value;
|
||||
return `${_.round(Number(match[1]) / KI_TO_GI, 2)}Gi`;
|
||||
};
|
||||
|
||||
export const transformInstanceTypeResource = (
|
||||
resource?: InstanceTypeResource
|
||||
): InstanceTypeResource | undefined => {
|
||||
if (!resource) return resource;
|
||||
return {
|
||||
...resource,
|
||||
capacity: convertKiToGi(
|
||||
resource.capacity
|
||||
) as InstanceTypeResource['capacity'],
|
||||
onceMaxRequest: convertKiToGi(
|
||||
resource.onceMaxRequest
|
||||
) as InstanceTypeResource['onceMaxRequest'],
|
||||
remaining: convertKiToGi(
|
||||
resource.remaining
|
||||
) as InstanceTypeResource['remaining']
|
||||
};
|
||||
};
|
||||
|
||||
export const transformInstanceType = (
|
||||
item: InstanceTypeItem
|
||||
): InstanceTypeItem => {
|
||||
if (!item?.status) return item;
|
||||
const status = item.status;
|
||||
return {
|
||||
...item,
|
||||
status: {
|
||||
...status,
|
||||
accelerator: transformInstanceTypeResource(
|
||||
status.accelerator
|
||||
) as InstanceTypeStatus['accelerator'],
|
||||
cpu: transformInstanceTypeResource(
|
||||
status.cpu
|
||||
) as InstanceTypeStatus['cpu'],
|
||||
localStorage: transformInstanceTypeResource(
|
||||
status.localStorage
|
||||
) as InstanceTypeStatus['localStorage'],
|
||||
ram: transformInstanceTypeResource(
|
||||
status.ram
|
||||
) as InstanceTypeStatus['ram']
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -50,12 +50,30 @@ export interface FormData {
|
||||
};
|
||||
}
|
||||
|
||||
export interface ManagedField {
|
||||
manager: string;
|
||||
operation: string;
|
||||
apiVersion: string;
|
||||
time: string;
|
||||
fieldsType: string;
|
||||
fieldsV1: Record<string, any>;
|
||||
}
|
||||
|
||||
export interface Metadata {
|
||||
name: string;
|
||||
namespace?: string;
|
||||
uid: string;
|
||||
resourceVersion: string;
|
||||
creationTimestamp: string;
|
||||
annotations?: Record<string, string>;
|
||||
managedFields?: ManagedField[];
|
||||
}
|
||||
|
||||
// instance list item
|
||||
export interface ListItem extends FormData {
|
||||
export interface ListItem extends Omit<FormData, 'metadata'> {
|
||||
id: number;
|
||||
status?: string;
|
||||
created_at?: string;
|
||||
updated_at?: string;
|
||||
metadata: Metadata;
|
||||
}
|
||||
|
||||
export interface InstanceItem {
|
||||
@@ -79,10 +97,12 @@ export interface InstanceTypeSpec {
|
||||
sliced?: number;
|
||||
}
|
||||
|
||||
type Quality = `${number}Ki` | `${number}Gi`;
|
||||
|
||||
export interface InstanceTypeResource {
|
||||
capacity?: string;
|
||||
onceMaxRequest?: string;
|
||||
remaining?: string;
|
||||
capacity?: Quality;
|
||||
onceMaxRequest?: Quality;
|
||||
remaining?: Quality;
|
||||
}
|
||||
|
||||
export interface InstanceTypeStatus {
|
||||
@@ -102,7 +122,6 @@ export interface InstanceTypeItem {
|
||||
namespace: string;
|
||||
};
|
||||
id: number;
|
||||
name: string;
|
||||
spec: InstanceTypeSpec;
|
||||
status: InstanceTypeStatus;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user