fix: show max gpu
This commit is contained in:
@@ -109,7 +109,7 @@ export default {
|
|||||||
'CPU-only setup for environment preparation.',
|
'CPU-only setup for environment preparation.',
|
||||||
'gpuservice.instance.stock': 'Stock',
|
'gpuservice.instance.stock': 'Stock',
|
||||||
'gpuservice.instance.sliced': 'Sliced',
|
'gpuservice.instance.sliced': 'Sliced',
|
||||||
'gpuservice.instance.memory': 'Memory',
|
'gpuservice.instance.memory': 'VRAM',
|
||||||
'gpuservice.instance.ram': 'RAM',
|
'gpuservice.instance.ram': 'RAM',
|
||||||
'gpuservice.instance.disk': 'Disk',
|
'gpuservice.instance.disk': 'Disk',
|
||||||
'gpuservice.instance.search.type.placeholder': 'Search by name',
|
'gpuservice.instance.search.type.placeholder': 'Search by name',
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ export default {
|
|||||||
'gpuservice.instance.gpuCount.zero': 'CPU のみを使用し、環境準備用です。',
|
'gpuservice.instance.gpuCount.zero': 'CPU のみを使用し、環境準備用です。',
|
||||||
'gpuservice.instance.stock': '在庫',
|
'gpuservice.instance.stock': '在庫',
|
||||||
'gpuservice.instance.sliced': '分割',
|
'gpuservice.instance.sliced': '分割',
|
||||||
'gpuservice.instance.memory': 'Memory',
|
'gpuservice.instance.memory': 'VRAM',
|
||||||
'gpuservice.instance.ram': 'RAM',
|
'gpuservice.instance.ram': 'RAM',
|
||||||
'gpuservice.instance.disk': 'ディスク',
|
'gpuservice.instance.disk': 'ディスク',
|
||||||
'gpuservice.instance.search.type.placeholder': '名前で検索',
|
'gpuservice.instance.search.type.placeholder': '名前で検索',
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ export default {
|
|||||||
'gpuservice.instance.gpuCount.zero': 'Только CPU, для подготовки окружения.',
|
'gpuservice.instance.gpuCount.zero': 'Только CPU, для подготовки окружения.',
|
||||||
'gpuservice.instance.stock': 'Остаток',
|
'gpuservice.instance.stock': 'Остаток',
|
||||||
'gpuservice.instance.sliced': 'Разделено',
|
'gpuservice.instance.sliced': 'Разделено',
|
||||||
'gpuservice.instance.memory': 'Память',
|
'gpuservice.instance.memory': 'VRAM',
|
||||||
'gpuservice.instance.ram': 'RAM',
|
'gpuservice.instance.ram': 'RAM',
|
||||||
'gpuservice.instance.disk': 'Диск',
|
'gpuservice.instance.disk': 'Диск',
|
||||||
'gpuservice.instance.search.type.placeholder': 'Поиск по имени',
|
'gpuservice.instance.search.type.placeholder': 'Поиск по имени',
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ export default {
|
|||||||
'gpuservice.instance.gpuCount.zero': 'Yalnızca CPU, ortam hazırlığı için.',
|
'gpuservice.instance.gpuCount.zero': 'Yalnızca CPU, ortam hazırlığı için.',
|
||||||
'gpuservice.instance.stock': 'Stok',
|
'gpuservice.instance.stock': 'Stok',
|
||||||
'gpuservice.instance.sliced': 'Bölünmüş',
|
'gpuservice.instance.sliced': 'Bölünmüş',
|
||||||
'gpuservice.instance.memory': 'Bellek',
|
'gpuservice.instance.memory': 'VRAM',
|
||||||
'gpuservice.instance.ram': 'RAM',
|
'gpuservice.instance.ram': 'RAM',
|
||||||
'gpuservice.instance.disk': 'Disk',
|
'gpuservice.instance.disk': 'Disk',
|
||||||
'gpuservice.instance.search.type.placeholder': 'Ada göre ara',
|
'gpuservice.instance.search.type.placeholder': 'Ada göre ara',
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ interface InstanceTypeItemProps {
|
|||||||
|
|
||||||
const MetaItem: React.FC<{
|
const MetaItem: React.FC<{
|
||||||
icon: string;
|
icon: string;
|
||||||
label: string;
|
label?: string;
|
||||||
value?: string | null;
|
value?: string | null;
|
||||||
showDot?: boolean;
|
showDot?: boolean;
|
||||||
show?: boolean;
|
show?: boolean;
|
||||||
@@ -141,12 +141,18 @@ const InstanceTypeItem: React.FC<InstanceTypeItemProps> = ({ item }) => {
|
|||||||
value={specData?.sliced}
|
value={specData?.sliced}
|
||||||
></MetaItem>
|
></MetaItem>
|
||||||
<MetaItem
|
<MetaItem
|
||||||
show={!!remainingData.accelerator}
|
show={!!item.maxAccelerator}
|
||||||
icon="icon-database"
|
icon="icon-database"
|
||||||
label={intl.formatMessage({
|
value={
|
||||||
id: 'gpuservice.instance.stock'
|
item.maxAccelerator! > 0
|
||||||
})}
|
? `${intl.formatMessage(
|
||||||
value={remainingData.accelerator}
|
{
|
||||||
|
id: 'common.max'
|
||||||
|
},
|
||||||
|
{ count: item.maxAccelerator }
|
||||||
|
)}`
|
||||||
|
: '-'
|
||||||
|
}
|
||||||
></MetaItem>
|
></MetaItem>
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -133,6 +133,7 @@ export interface InstanceTypeItem {
|
|||||||
name: string;
|
name: string;
|
||||||
spec: InstanceTypeSpec;
|
spec: InstanceTypeSpec;
|
||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
|
maxAccelerator?: number;
|
||||||
status: InstanceTypeStatus;
|
status: InstanceTypeStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,8 +25,16 @@ export default function useQueryInstanceTypes() {
|
|||||||
const [dataList, setDataList] = React.useState<InstanceType[]>([]);
|
const [dataList, setDataList] = React.useState<InstanceType[]>([]);
|
||||||
|
|
||||||
const isAvailable = (item: InstanceTypeItem) => {
|
const isAvailable = (item: InstanceTypeItem) => {
|
||||||
if (!item.spec?.acceleratable) return true;
|
if (!item.spec?.acceleratable)
|
||||||
return getAcceleratorMax(item.status?.acceleratorTiers) > 0;
|
return {
|
||||||
|
maxAccelerator: 0,
|
||||||
|
available: true
|
||||||
|
};
|
||||||
|
const max = getAcceleratorMax(item.status?.acceleratorTiers);
|
||||||
|
return {
|
||||||
|
maxAccelerator: max || 0,
|
||||||
|
available: (max || 0) > 0
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const queryInstanceTypes = async (
|
const queryInstanceTypes = async (
|
||||||
@@ -34,10 +42,14 @@ export default function useQueryInstanceTypes() {
|
|||||||
) => {
|
) => {
|
||||||
const res = await fetchData(params);
|
const res = await fetchData(params);
|
||||||
|
|
||||||
const list = (res?.items || []).map((item) => ({
|
const list = (res?.items || []).map((item) => {
|
||||||
|
const remainingData = isAvailable(item);
|
||||||
|
return {
|
||||||
...item,
|
...item,
|
||||||
disabled: !isAvailable(item)
|
maxAccelerator: remainingData.maxAccelerator,
|
||||||
}));
|
disabled: !remainingData.available
|
||||||
|
};
|
||||||
|
});
|
||||||
console.log('queryInstanceTypes', list);
|
console.log('queryInstanceTypes', list);
|
||||||
setDataList(list);
|
setDataList(list);
|
||||||
return list;
|
return list;
|
||||||
|
|||||||
Reference in New Issue
Block a user