From f5f0d25eca6d8310233697de27de160371382b60 Mon Sep 17 00:00:00 2001 From: "xinhao.huang" Date: Fri, 3 Apr 2026 16:07:41 +0800 Subject: [PATCH] [sdk]: support dgpu DBImpact Resolves: ZSTAC-83477 Change-Id: I61746e646972787a6f72757565776d6570617768 --- conf/db/upgrade/V5.5.12__schema.sql | 191 ++++++++++++ .../global-error-en_US.json | 7 +- .../global-error-zh_CN.json | 7 +- .../ResourceMetricBindingExtensionPoint.java | 88 ++++++ sdk/src/main/java/SourceClassMap.java | 14 + .../org/zstack/sdk/DGpuDeviceInventory.java | 127 ++++++++ .../org/zstack/sdk/DGpuProfileInventory.java | 55 ++++ .../zstack/sdk/DGpuSpecStatsInventory.java | 79 +++++ .../main/java/org/zstack/sdk/DGpuStatus.java | 8 + .../zstack/sdk/DetachDGpuFromVmAction.java | 104 +++++++ .../zstack/sdk/DetachDGpuFromVmResult.java | 7 + .../org/zstack/sdk/DisableDGpuModeAction.java | 101 +++++++ .../org/zstack/sdk/DisableDGpuModeResult.java | 7 + .../org/zstack/sdk/EnableDGpuModeAction.java | 101 +++++++ .../org/zstack/sdk/EnableDGpuModeResult.java | 7 + .../zstack/sdk/GetDGpuSpecStatsAction.java | 101 +++++++ .../zstack/sdk/GetDGpuSpecStatsResult.java | 14 + .../sdk/GetGpuDeviceCandidatesAction.java | 110 +++++++ .../sdk/GetGpuDeviceCandidatesResult.java | 14 + .../sdk/GetGpuDeviceSpecCandidatesAction.java | 3 + .../org/zstack/sdk/GpuDeviceInventory.java | 8 + .../sdk/GpuDeviceSpecCandidateInventory.java | 31 ++ .../org/zstack/sdk/PciDeviceInventory.java | 26 ++ .../org/zstack/sdk/PciDeviceVirtMode.java | 8 + .../org/zstack/sdk/PciDeviceVirtState.java | 8 + .../org/zstack/sdk/PciDeviceVirtStatus.java | 2 + .../org/zstack/sdk/QueryDGpuDeviceAction.java | 75 +++++ .../org/zstack/sdk/QueryDGpuDeviceResult.java | 22 ++ .../zstack/sdk/QueryDGpuProfileAction.java | 75 +++++ .../zstack/sdk/QueryDGpuProfileResult.java | 22 ++ .../sdk/RemoveVmDGpuStrategyAction.java | 101 +++++++ .../sdk/RemoveVmDGpuStrategyResult.java | 7 + .../org/zstack/sdk/SetDGpuProfileAction.java | 107 +++++++ .../org/zstack/sdk/SetDGpuProfileResult.java | 14 + .../zstack/sdk/SetVmDGpuStrategyAction.java | 113 ++++++++ .../zstack/sdk/SetVmDGpuStrategyResult.java | 7 + .../java/org/zstack/testlib/ApiHelper.groovy | 274 ++++++++++++++++++ .../CloudOperationsErrorCode.java | 52 ++++ 38 files changed, 2093 insertions(+), 4 deletions(-) create mode 100644 conf/db/upgrade/V5.5.12__schema.sql create mode 100644 header/src/main/java/org/zstack/header/zwatch/ResourceMetricBindingExtensionPoint.java create mode 100644 sdk/src/main/java/org/zstack/sdk/DGpuDeviceInventory.java create mode 100644 sdk/src/main/java/org/zstack/sdk/DGpuProfileInventory.java create mode 100644 sdk/src/main/java/org/zstack/sdk/DGpuSpecStatsInventory.java create mode 100644 sdk/src/main/java/org/zstack/sdk/DGpuStatus.java create mode 100644 sdk/src/main/java/org/zstack/sdk/DetachDGpuFromVmAction.java create mode 100644 sdk/src/main/java/org/zstack/sdk/DetachDGpuFromVmResult.java create mode 100644 sdk/src/main/java/org/zstack/sdk/DisableDGpuModeAction.java create mode 100644 sdk/src/main/java/org/zstack/sdk/DisableDGpuModeResult.java create mode 100644 sdk/src/main/java/org/zstack/sdk/EnableDGpuModeAction.java create mode 100644 sdk/src/main/java/org/zstack/sdk/EnableDGpuModeResult.java create mode 100644 sdk/src/main/java/org/zstack/sdk/GetDGpuSpecStatsAction.java create mode 100644 sdk/src/main/java/org/zstack/sdk/GetDGpuSpecStatsResult.java create mode 100644 sdk/src/main/java/org/zstack/sdk/GetGpuDeviceCandidatesAction.java create mode 100644 sdk/src/main/java/org/zstack/sdk/GetGpuDeviceCandidatesResult.java create mode 100644 sdk/src/main/java/org/zstack/sdk/GpuDeviceSpecCandidateInventory.java create mode 100644 sdk/src/main/java/org/zstack/sdk/PciDeviceVirtMode.java create mode 100644 sdk/src/main/java/org/zstack/sdk/PciDeviceVirtState.java create mode 100644 sdk/src/main/java/org/zstack/sdk/QueryDGpuDeviceAction.java create mode 100644 sdk/src/main/java/org/zstack/sdk/QueryDGpuDeviceResult.java create mode 100644 sdk/src/main/java/org/zstack/sdk/QueryDGpuProfileAction.java create mode 100644 sdk/src/main/java/org/zstack/sdk/QueryDGpuProfileResult.java create mode 100644 sdk/src/main/java/org/zstack/sdk/RemoveVmDGpuStrategyAction.java create mode 100644 sdk/src/main/java/org/zstack/sdk/RemoveVmDGpuStrategyResult.java create mode 100644 sdk/src/main/java/org/zstack/sdk/SetDGpuProfileAction.java create mode 100644 sdk/src/main/java/org/zstack/sdk/SetDGpuProfileResult.java create mode 100644 sdk/src/main/java/org/zstack/sdk/SetVmDGpuStrategyAction.java create mode 100644 sdk/src/main/java/org/zstack/sdk/SetVmDGpuStrategyResult.java diff --git a/conf/db/upgrade/V5.5.12__schema.sql b/conf/db/upgrade/V5.5.12__schema.sql new file mode 100644 index 00000000000..8b5ccfbcb7d --- /dev/null +++ b/conf/db/upgrade/V5.5.12__schema.sql @@ -0,0 +1,191 @@ +-- ZSTAC-75319: Add normalizedModelName column for GPU spec dedup +CALL ADD_COLUMN('GpuDeviceSpecVO', 'normalizedModelName', 'VARCHAR(255)', 1, NULL); +CALL CREATE_INDEX('GpuDeviceSpecVO', 'idx_gpu_spec_normalized_model', 'normalizedModelName'); + +-- Add totalScore and endTime columns to ModelEvaluationTaskVO for ZQL sorting support +-- Previously these values were only stored inside the opaque JSON TEXT field, +-- making them invisible to ZQL ORDER BY queries. +CALL ADD_COLUMN('ModelEvaluationTaskVO', 'totalScore', 'DOUBLE', 1, NULL); +CALL ADD_COLUMN('ModelEvaluationTaskVO', 'endTime', 'DATETIME', 1, NULL); + +-- Add indexes to support efficient sorting +CALL CREATE_INDEX('ModelEvaluationTaskVO', 'idx_ModelEvaluationTaskVO_totalScore', 'totalScore'); +CALL CREATE_INDEX('ModelEvaluationTaskVO', 'idx_ModelEvaluationTaskVO_endTime', 'endTime'); + +-- Backfill totalScore from opaque JSON for existing completed tasks +-- Uses Json_getKeyValue defined in beforeMigrate.sql for MySQL 5.5+ compatibility +UPDATE `zstack`.`ModelEvaluationTaskVO` +SET `totalScore` = CAST(Json_getKeyValue(`opaque`, 'total_score') AS DECIMAL(20,6)) +WHERE `opaque` IS NOT NULL + AND `totalScore` IS NULL + AND Json_getKeyValue(`opaque`, 'total_score') IS NOT NULL + AND Json_getKeyValue(`opaque`, 'total_score') != ''; + +-- Backfill endTime from opaque JSON for existing completed/failed tasks +-- end_time format from Python agent: "MMM dd, yyyy hh:mm:ss a" (e.g. "Jan 01, 2025 10:30:00 AM") +UPDATE `zstack`.`ModelEvaluationTaskVO` +SET `endTime` = STR_TO_DATE( + Json_getKeyValue(`opaque`, 'end_time'), + '%b %d, %Y %h:%i:%s %p' +) +WHERE `opaque` IS NOT NULL + AND `endTime` IS NULL + AND Json_getKeyValue(`opaque`, 'end_time') IS NOT NULL + AND Json_getKeyValue(`opaque`, 'end_time') != ''; + +-- PCI virtualization capability metadata + +CREATE TABLE IF NOT EXISTS `zstack`.`PciDeviceVirtCapabilityVO` ( + `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, + `pciDeviceUuid` VARCHAR(32) NOT NULL, + `capability` VARCHAR(32) NOT NULL, + `createDate` TIMESTAMP NOT NULL, + `lastOpDate` TIMESTAMP NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_pci_device_virt_capability` (`pciDeviceUuid`, `capability`), + KEY `idx_pci_device_virt_capability_pci` (`pciDeviceUuid`), + CONSTRAINT `fk_pci_device_virt_capability_pci` + FOREIGN KEY (`pciDeviceUuid`) REFERENCES `zstack`.`PciDeviceVO`(`uuid`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CALL ADD_COLUMN('PciDeviceVO', 'virtState', 'varchar(32)', 1, NULL); + +UPDATE `zstack`.`PciDeviceVO` +SET `virtState` = + CASE + WHEN `virtStatus` IN ('SRIOV_VIRTUALIZABLE', 'VFIO_MDEV_VIRTUALIZABLE', 'TENSORFUSION_VIRTUALIZABLE') THEN 'VIRTUALIZABLE' + WHEN `virtStatus` IN ('SRIOV_VIRTUALIZED', 'VFIO_MDEV_VIRTUALIZED', 'VIRTUALIZED_BYPASS_ZSTACK', + 'HAMI_VIRTUALIZED', 'TENSORFUSION_VIRTUALIZED') THEN 'VIRTUALIZED' + WHEN `virtStatus` = 'SRIOV_VIRTUAL' THEN 'VIRTUAL' + ELSE 'UNVIRTUALIZABLE' + END +WHERE `virtState` IS NULL; + +INSERT IGNORE INTO `zstack`.`PciDeviceVirtCapabilityVO` + (`pciDeviceUuid`, `capability`, `createDate`, `lastOpDate`) +SELECT `uuid`, 'SRIOV', NOW(), NOW() +FROM `zstack`.`PciDeviceVO` +WHERE `virtStatus` IN ('SRIOV_VIRTUALIZABLE', 'SRIOV_VIRTUALIZED'); + +INSERT IGNORE INTO `zstack`.`PciDeviceVirtCapabilityVO` + (`pciDeviceUuid`, `capability`, `createDate`, `lastOpDate`) +SELECT `uuid`, 'VFIO_MDEV', NOW(), NOW() +FROM `zstack`.`PciDeviceVO` +WHERE `virtStatus` IN ('VFIO_MDEV_VIRTUALIZABLE', 'VFIO_MDEV_VIRTUALIZED', 'VIRTUALIZED_BYPASS_ZSTACK'); + +INSERT IGNORE INTO `zstack`.`PciDeviceVirtCapabilityVO` + (`pciDeviceUuid`, `capability`, `createDate`, `lastOpDate`) +SELECT `uuid`, 'TENSORFUSION', NOW(), NOW() +FROM `zstack`.`PciDeviceVO` +WHERE `virtStatus` IN ('TENSORFUSION_VIRTUALIZABLE', 'TENSORFUSION_VIRTUALIZED'); + +INSERT IGNORE INTO `zstack`.`PciDeviceVirtCapabilityVO` + (`pciDeviceUuid`, `capability`, `createDate`, `lastOpDate`) +SELECT `uuid`, 'HAMI', NOW(), NOW() +FROM `zstack`.`PciDeviceVO` +WHERE `virtStatus` = 'HAMI_VIRTUALIZED'; + +CALL ADD_COLUMN('PciDeviceVO', 'virtMode', 'varchar(32)', 1, NULL); + +UPDATE `zstack`.`PciDeviceVO` +SET `virtMode` = + CASE + WHEN `virtStatus` IN ('SRIOV_VIRTUALIZED') THEN 'SRIOV' + WHEN `virtStatus` = 'SRIOV_VIRTUAL' THEN 'SRIOV' + WHEN `virtStatus` IN ('VFIO_MDEV_VIRTUALIZED', 'VIRTUALIZED_BYPASS_ZSTACK') THEN 'VFIO_MDEV' + WHEN `virtStatus` = 'TENSORFUSION_VIRTUALIZED' THEN 'TENSORFUSION' + WHEN `virtStatus` = 'HAMI_VIRTUALIZED' THEN 'HAMI' + ELSE `virtMode` + END +WHERE `virtStatus` IN ( + 'SRIOV_VIRTUALIZED', 'SRIOV_VIRTUAL', + 'VFIO_MDEV_VIRTUALIZED', 'VIRTUALIZED_BYPASS_ZSTACK', + 'TENSORFUSION_VIRTUALIZED', 'HAMI_VIRTUALIZED' +); + +CALL ADD_COLUMN('GpuDeviceVO', 'mode', 'varchar(32)', 1, NULL); +CALL CREATE_INDEX('GpuDeviceVO', 'idx_gpu_device_mode', 'mode'); + +UPDATE `zstack`.`GpuDeviceVO` g +INNER JOIN `zstack`.`PciDeviceVO` p ON g.`uuid` = p.`uuid` +SET g.`mode` = CASE + WHEN p.`virtState` = 'VIRTUALIZED' AND p.`virtMode` = 'TENSORFUSION' THEN 'DGPU' + WHEN p.`virtState` = 'VIRTUALIZED' AND p.`virtMode` IN ('VFIO_MDEV', 'SRIOV') THEN 'VGPU' + ELSE 'PCI' +END; + +UPDATE `zstack`.`GpuDeviceVO` g +INNER JOIN `zstack`.`PciDeviceVO` p ON g.`uuid` = p.`uuid` +SET g.`allocateStatus` = CASE + WHEN p.`vmInstanceUuid` IS NOT NULL THEN 'Allocated' + WHEN p.`virtState` = 'VIRTUALIZED' AND p.`virtMode` IS NOT NULL THEN 'Unallocatable' + ELSE 'Unallocated' +END; + +-- dGPU (TensorFusion) support tables + +CREATE TABLE IF NOT EXISTS `zstack`.`DGpuProfileVO` ( + `uuid` VARCHAR(32) NOT NULL, + `gpuSpecUuid` VARCHAR(32) NOT NULL, + `memorySize` BIGINT UNSIGNED NOT NULL, + `shmemSize` BIGINT UNSIGNED NOT NULL DEFAULT 268435456, + `createDate` TIMESTAMP NOT NULL, + `lastOpDate` TIMESTAMP NOT NULL, + PRIMARY KEY (`uuid`), + UNIQUE KEY `uk_dgpu_profile` (`gpuSpecUuid`, `memorySize`), + CONSTRAINT `fk_dgpu_profile_spec` + FOREIGN KEY (`gpuSpecUuid`) REFERENCES `zstack`.`GpuDeviceSpecVO`(`uuid`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `zstack`.`DGpuDeviceVO` ( + `uuid` VARCHAR(32) NOT NULL, + `name` VARCHAR(255) NOT NULL, + `parentGpuUuid` VARCHAR(32) NOT NULL, + `gpuSpecUuid` VARCHAR(32) NOT NULL, + `hostUuid` VARCHAR(32) NOT NULL, + `vmInstanceUuid` VARCHAR(32) DEFAULT NULL, + `allocatedMemory` BIGINT UNSIGNED NOT NULL, + `shmemSize` BIGINT UNSIGNED NOT NULL DEFAULT 268435456, + `smPercentLimit` INT NOT NULL DEFAULT 0, + `protocol` VARCHAR(16) NOT NULL DEFAULT 'shmem', + `status` VARCHAR(32) NOT NULL, + `vendorId` VARCHAR(64) DEFAULT NULL, + `vendor` VARCHAR(255) DEFAULT NULL, + `createDate` TIMESTAMP NOT NULL, + `lastOpDate` TIMESTAMP NOT NULL, + PRIMARY KEY (`uuid`), + INDEX `idx_dgpu_device_parent` (`parentGpuUuid`), + INDEX `idx_dgpu_device_spec` (`gpuSpecUuid`), + INDEX `idx_dgpu_device_host` (`hostUuid`), + INDEX `idx_dgpu_device_vm` (`vmInstanceUuid`), + CONSTRAINT `fk_dgpu_device_parent` + FOREIGN KEY (`parentGpuUuid`) REFERENCES `zstack`.`PciDeviceVO`(`uuid`) ON DELETE CASCADE, + CONSTRAINT `fk_dgpu_device_spec` + FOREIGN KEY (`gpuSpecUuid`) REFERENCES `zstack`.`GpuDeviceSpecVO`(`uuid`) ON DELETE RESTRICT, + CONSTRAINT `fk_dgpu_device_host` + FOREIGN KEY (`hostUuid`) REFERENCES `zstack`.`HostEO`(`uuid`) ON DELETE CASCADE, + CONSTRAINT `fk_dgpu_device_vm` + FOREIGN KEY (`vmInstanceUuid`) REFERENCES `zstack`.`VmInstanceEO`(`uuid`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `zstack`.`VmInstanceDGpuStrategyVO` ( + `id` BIGINT NOT NULL AUTO_INCREMENT, + `vmInstanceUuid` VARCHAR(32) NOT NULL, + `gpuSpecUuid` VARCHAR(32) NOT NULL, + `memorySize` BIGINT UNSIGNED NOT NULL, + `shmemSize` BIGINT UNSIGNED NOT NULL DEFAULT 268435456, + `gpuDeviceUuid` VARCHAR(32) DEFAULT NULL, + `chooser` VARCHAR(16) NOT NULL, + `autoDetachOnStop` TINYINT(1) NOT NULL DEFAULT 1, + `createDate` TIMESTAMP NOT NULL, + `lastOpDate` TIMESTAMP NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_vm_dgpu_strategy` (`vmInstanceUuid`), + INDEX `idx_vm_dgpu_strategy_spec` (`gpuSpecUuid`), + CONSTRAINT `fk_vm_dgpu_strategy_vm` + FOREIGN KEY (`vmInstanceUuid`) REFERENCES `zstack`.`VmInstanceEO`(`uuid`) ON DELETE CASCADE, + CONSTRAINT `fk_vm_dgpu_strategy_spec` + FOREIGN KEY (`gpuSpecUuid`) REFERENCES `zstack`.`GpuDeviceSpecVO`(`uuid`) ON DELETE CASCADE, + CONSTRAINT `fk_vm_dgpu_strategy_device` + FOREIGN KEY (`gpuDeviceUuid`) REFERENCES `zstack`.`PciDeviceVO`(`uuid`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/conf/i18n/globalErrorCodeMapping/global-error-en_US.json b/conf/i18n/globalErrorCodeMapping/global-error-en_US.json index 32eb4c8f056..65d3dc2956d 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-en_US.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-en_US.json @@ -4714,5 +4714,8 @@ "ORG_ZSTACK_ZWATCH_FUNCTION_10013": "Unknown arguments detected. Please ensure that all command-line parameters are valid and refer to the documentation for a list of accepted arguments.", "ORG_ZSTACK_VPCFIREWALL_10034": "could not add firewall rule[%d] as only TCP protocol supports TCP flags in this environment", "ORG_ZSTACK_NETWORK_SERVICE_VIRTUALROUTER_VYOS_10007": "unable to stop DHCP server on virtual router instance [uuid:%s] because %s", - "ORG_ZSTACK_VPCFIREWALL_10035": "could not add firewall rule[%d] because of a %s error" -} \ No newline at end of file + "ORG_ZSTACK_VPCFIREWALL_10035": "could not add firewall rule[%d] because of a %s error", + "ORG_ZSTACK_DGPU_10010": "Available License not found, please apply addon license for product dGPU.", + "ORG_ZSTACK_DGPU_10011": "Addon license for product dGPU has expired, please renew it.", + "ORG_ZSTACK_DGPU_10012": "Insufficient dGPU GPU number licensed. Your license permits %d GPU, there are %d GPU used, shared: %d, need: %d." +} diff --git a/conf/i18n/globalErrorCodeMapping/global-error-zh_CN.json b/conf/i18n/globalErrorCodeMapping/global-error-zh_CN.json index 84609838ddc..9a43a7664c5 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-zh_CN.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-zh_CN.json @@ -4714,5 +4714,8 @@ "ORG_ZSTACK_ZWATCH_FUNCTION_10013": "未知参数", "ORG_ZSTACK_VPCFIREWALL_10034": "无法添加防火墙规则[%d],因为只有TCP协议可以使用TCP标志", "ORG_ZSTACK_NETWORK_SERVICE_VIRTUALROUTER_VYOS_10007": "无法停止虚拟路由器VM[uuid:%s]上的DHCP服务器,因为%s", - "ORG_ZSTACK_VPCFIREWALL_10035": "无法添加防火墙规则[%d]因为%s" -} \ No newline at end of file + "ORG_ZSTACK_VPCFIREWALL_10035": "无法添加防火墙规则[%d]因为%s", + "ORG_ZSTACK_DGPU_10010": "未找到可用的 dGPU AddOn License,请为 dGPU 产品申请并上传对应授权。", + "ORG_ZSTACK_DGPU_10011": "dGPU 产品的 AddOn License 已过期,请及时续期。", + "ORG_ZSTACK_DGPU_10012": "dGPU 授权 GPU 数量不足。License 允许 %d 个 GPU,当前已使用 %d 个,其他节点共享使用 %d 个,本次还需要 %d 个。" +} diff --git a/header/src/main/java/org/zstack/header/zwatch/ResourceMetricBindingExtensionPoint.java b/header/src/main/java/org/zstack/header/zwatch/ResourceMetricBindingExtensionPoint.java new file mode 100644 index 00000000000..1ec04b18fb4 --- /dev/null +++ b/header/src/main/java/org/zstack/header/zwatch/ResourceMetricBindingExtensionPoint.java @@ -0,0 +1,88 @@ +package org.zstack.header.zwatch; + +import java.util.List; + +public interface ResourceMetricBindingExtensionPoint { + class ResourceMetricBinding { + private Class resourceType; + private String logicalMetricName; + private String sourceNamespace; + private String sourceMetricName; + private String resourceField; + private String sourceLabel; + private boolean requireUniqueSourceKey; + + private static T requireValue(String fieldName, T value) { + if (value == null) { + throw new IllegalStateException(String.format("ResourceMetricBinding.%s must not be null", fieldName)); + } + return value; + } + + private static String requireText(String fieldName, String value) { + requireValue(fieldName, value); + if (value.trim().isEmpty()) { + throw new IllegalStateException(String.format("ResourceMetricBinding.%s must not be empty", fieldName)); + } + return value; + } + + public Class getResourceType() { + return requireValue("resourceType", resourceType); + } + + public void setResourceType(Class resourceType) { + this.resourceType = resourceType; + } + + public String getLogicalMetricName() { + return requireText("logicalMetricName", logicalMetricName); + } + + public void setLogicalMetricName(String logicalMetricName) { + this.logicalMetricName = logicalMetricName; + } + + public String getSourceNamespace() { + return requireText("sourceNamespace", sourceNamespace); + } + + public void setSourceNamespace(String sourceNamespace) { + this.sourceNamespace = sourceNamespace; + } + + public String getSourceMetricName() { + return requireText("sourceMetricName", sourceMetricName); + } + + public void setSourceMetricName(String sourceMetricName) { + this.sourceMetricName = sourceMetricName; + } + + public String getResourceField() { + return requireText("resourceField", resourceField); + } + + public void setResourceField(String resourceField) { + this.resourceField = resourceField; + } + + public String getSourceLabel() { + return requireText("sourceLabel", sourceLabel); + } + + public void setSourceLabel(String sourceLabel) { + this.sourceLabel = sourceLabel; + } + + public boolean isRequireUniqueSourceKey() { + return requireUniqueSourceKey; + } + + public void setRequireUniqueSourceKey(boolean requireUniqueSourceKey) { + this.requireUniqueSourceKey = requireUniqueSourceKey; + } + } + + List getResourceMetricBindings(); +} diff --git a/sdk/src/main/java/SourceClassMap.java b/sdk/src/main/java/SourceClassMap.java index 4bbd9238f98..13595622f07 100644 --- a/sdk/src/main/java/SourceClassMap.java +++ b/sdk/src/main/java/SourceClassMap.java @@ -635,8 +635,13 @@ public class SourceClassMap { put("org.zstack.pciDevice.PciDeviceType", "org.zstack.sdk.PciDeviceType"); put("org.zstack.pciDevice.gpu.GpuAllocateStatus", "org.zstack.sdk.GpuAllocateStatus"); put("org.zstack.pciDevice.gpu.GpuDeviceInventory", "org.zstack.sdk.GpuDeviceInventory"); + put("org.zstack.pciDevice.gpu.GpuDeviceSpecCandidateInventory", "org.zstack.sdk.GpuDeviceSpecCandidateInventory"); put("org.zstack.pciDevice.gpu.GpuDeviceSpecInventory", "org.zstack.sdk.GpuDeviceSpecInventory"); put("org.zstack.pciDevice.gpu.GpuVendor", "org.zstack.sdk.GpuVendor"); + put("org.zstack.pciDevice.gpu.dgpu.DGpuDeviceInventory", "org.zstack.sdk.DGpuDeviceInventory"); + put("org.zstack.pciDevice.gpu.dgpu.DGpuProfileInventory", "org.zstack.sdk.DGpuProfileInventory"); + put("org.zstack.pciDevice.gpu.dgpu.DGpuSpecStatsInventory", "org.zstack.sdk.DGpuSpecStatsInventory"); + put("org.zstack.pciDevice.gpu.dgpu.DGpuStatus", "org.zstack.sdk.DGpuStatus"); put("org.zstack.pciDevice.specification.mdev.MdevDeviceSpecInventory", "org.zstack.sdk.MdevDeviceSpecInventory"); put("org.zstack.pciDevice.specification.mdev.MdevDeviceSpecState", "org.zstack.sdk.MdevDeviceSpecState"); put("org.zstack.pciDevice.specification.mdev.PciDeviceMdevSpecRefInventory", "org.zstack.sdk.PciDeviceMdevSpecRefInventory"); @@ -644,6 +649,8 @@ public class SourceClassMap { put("org.zstack.pciDevice.specification.pci.PciDeviceSpecInventory", "org.zstack.sdk.PciDeviceSpecInventory"); put("org.zstack.pciDevice.specification.pci.PciDeviceSpecState", "org.zstack.sdk.PciDeviceSpecState"); put("org.zstack.pciDevice.specification.pci.VmInstancePciDeviceSpecRefInventory", "org.zstack.sdk.VmInstancePciDeviceSpecRefInventory"); + put("org.zstack.pciDevice.virtual.PciDeviceVirtMode", "org.zstack.sdk.PciDeviceVirtMode"); + put("org.zstack.pciDevice.virtual.PciDeviceVirtState", "org.zstack.sdk.PciDeviceVirtState"); put("org.zstack.pciDevice.virtual.PciDeviceVirtStatus", "org.zstack.sdk.PciDeviceVirtStatus"); put("org.zstack.pciDevice.virtual.vfio_mdev.MdevDeviceChooser", "org.zstack.sdk.MdevDeviceChooser"); put("org.zstack.pciDevice.virtual.vfio_mdev.MdevDeviceInventory", "org.zstack.sdk.MdevDeviceInventory"); @@ -1022,6 +1029,10 @@ public class SourceClassMap { put("org.zstack.sdk.CpuMemoryCapacityData", "org.zstack.header.allocator.datatypes.CpuMemoryCapacityData"); put("org.zstack.sdk.CreateDataVolumeTemplateFromVolumeSnapshotFailure", "org.zstack.header.image.APICreateDataVolumeTemplateFromVolumeSnapshotEvent$Failure"); put("org.zstack.sdk.CreateRootVolumeTemplateFromVolumeSnapshotFailure", "org.zstack.header.image.APICreateRootVolumeTemplateFromVolumeSnapshotEvent$Failure"); + put("org.zstack.sdk.DGpuDeviceInventory", "org.zstack.pciDevice.gpu.dgpu.DGpuDeviceInventory"); + put("org.zstack.sdk.DGpuProfileInventory", "org.zstack.pciDevice.gpu.dgpu.DGpuProfileInventory"); + put("org.zstack.sdk.DGpuSpecStatsInventory", "org.zstack.pciDevice.gpu.dgpu.DGpuSpecStatsInventory"); + put("org.zstack.sdk.DGpuStatus", "org.zstack.pciDevice.gpu.dgpu.DGpuStatus"); put("org.zstack.sdk.DRSAdviceInventory", "org.zstack.drs.entity.DRSAdviceInventory"); put("org.zstack.sdk.DRSVmMigrationActivityInventory", "org.zstack.drs.entity.DRSVmMigrationActivityInventory"); put("org.zstack.sdk.DataCenterInventory", "org.zstack.header.datacenter.DataCenterInventory"); @@ -1083,6 +1094,7 @@ public class SourceClassMap { put("org.zstack.sdk.GlobalConfigTemplateInventory", "org.zstack.templateConfig.GlobalConfigTemplateInventory"); put("org.zstack.sdk.GpuAllocateStatus", "org.zstack.pciDevice.gpu.GpuAllocateStatus"); put("org.zstack.sdk.GpuDeviceInventory", "org.zstack.pciDevice.gpu.GpuDeviceInventory"); + put("org.zstack.sdk.GpuDeviceSpecCandidateInventory", "org.zstack.pciDevice.gpu.GpuDeviceSpecCandidateInventory"); put("org.zstack.sdk.GpuDeviceSpecInventory", "org.zstack.pciDevice.gpu.GpuDeviceSpecInventory"); put("org.zstack.sdk.GpuVendor", "org.zstack.pciDevice.gpu.GpuVendor"); put("org.zstack.sdk.GuestOsCharacterInventory", "org.zstack.core.config.GuestOsCharacterInventory"); @@ -1327,6 +1339,8 @@ public class SourceClassMap { put("org.zstack.sdk.PciDeviceState", "org.zstack.pciDevice.PciDeviceState"); put("org.zstack.sdk.PciDeviceStatus", "org.zstack.pciDevice.PciDeviceStatus"); put("org.zstack.sdk.PciDeviceType", "org.zstack.pciDevice.PciDeviceType"); + put("org.zstack.sdk.PciDeviceVirtMode", "org.zstack.pciDevice.virtual.PciDeviceVirtMode"); + put("org.zstack.sdk.PciDeviceVirtState", "org.zstack.pciDevice.virtual.PciDeviceVirtState"); put("org.zstack.sdk.PciDeviceVirtStatus", "org.zstack.pciDevice.virtual.PciDeviceVirtStatus"); put("org.zstack.sdk.PendingTaskInfo", "org.zstack.header.core.progress.PendingTaskInfo"); put("org.zstack.sdk.PhysicalDriveSmartSelfTestHistoryInventory", "org.zstack.storage.device.localRaid.PhysicalDriveSmartSelfTestHistoryInventory"); diff --git a/sdk/src/main/java/org/zstack/sdk/DGpuDeviceInventory.java b/sdk/src/main/java/org/zstack/sdk/DGpuDeviceInventory.java new file mode 100644 index 00000000000..c8fb16ef2cf --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/DGpuDeviceInventory.java @@ -0,0 +1,127 @@ +package org.zstack.sdk; + +import org.zstack.sdk.DGpuStatus; + +public class DGpuDeviceInventory { + + public java.lang.String uuid; + public void setUuid(java.lang.String uuid) { + this.uuid = uuid; + } + public java.lang.String getUuid() { + return this.uuid; + } + + public java.lang.String name; + public void setName(java.lang.String name) { + this.name = name; + } + public java.lang.String getName() { + return this.name; + } + + public java.lang.String parentGpuUuid; + public void setParentGpuUuid(java.lang.String parentGpuUuid) { + this.parentGpuUuid = parentGpuUuid; + } + public java.lang.String getParentGpuUuid() { + return this.parentGpuUuid; + } + + public java.lang.String gpuSpecUuid; + public void setGpuSpecUuid(java.lang.String gpuSpecUuid) { + this.gpuSpecUuid = gpuSpecUuid; + } + public java.lang.String getGpuSpecUuid() { + return this.gpuSpecUuid; + } + + public java.lang.String hostUuid; + public void setHostUuid(java.lang.String hostUuid) { + this.hostUuid = hostUuid; + } + public java.lang.String getHostUuid() { + return this.hostUuid; + } + + public java.lang.String vmInstanceUuid; + public void setVmInstanceUuid(java.lang.String vmInstanceUuid) { + this.vmInstanceUuid = vmInstanceUuid; + } + public java.lang.String getVmInstanceUuid() { + return this.vmInstanceUuid; + } + + public java.lang.Long allocatedMemory; + public void setAllocatedMemory(java.lang.Long allocatedMemory) { + this.allocatedMemory = allocatedMemory; + } + public java.lang.Long getAllocatedMemory() { + return this.allocatedMemory; + } + + public java.lang.Long shmemSize; + public void setShmemSize(java.lang.Long shmemSize) { + this.shmemSize = shmemSize; + } + public java.lang.Long getShmemSize() { + return this.shmemSize; + } + + public java.lang.String protocol; + public void setProtocol(java.lang.String protocol) { + this.protocol = protocol; + } + public java.lang.String getProtocol() { + return this.protocol; + } + + public java.lang.Integer smPercentLimit; + public void setSmPercentLimit(java.lang.Integer smPercentLimit) { + this.smPercentLimit = smPercentLimit; + } + public java.lang.Integer getSmPercentLimit() { + return this.smPercentLimit; + } + + public DGpuStatus status; + public void setStatus(DGpuStatus status) { + this.status = status; + } + public DGpuStatus getStatus() { + return this.status; + } + + public java.sql.Timestamp createDate; + public void setCreateDate(java.sql.Timestamp createDate) { + this.createDate = createDate; + } + public java.sql.Timestamp getCreateDate() { + return this.createDate; + } + + public java.sql.Timestamp lastOpDate; + public void setLastOpDate(java.sql.Timestamp lastOpDate) { + this.lastOpDate = lastOpDate; + } + public java.sql.Timestamp getLastOpDate() { + return this.lastOpDate; + } + + public java.lang.String vendorId; + public void setVendorId(java.lang.String vendorId) { + this.vendorId = vendorId; + } + public java.lang.String getVendorId() { + return this.vendorId; + } + + public java.lang.String vendor; + public void setVendor(java.lang.String vendor) { + this.vendor = vendor; + } + public java.lang.String getVendor() { + return this.vendor; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/DGpuProfileInventory.java b/sdk/src/main/java/org/zstack/sdk/DGpuProfileInventory.java new file mode 100644 index 00000000000..96a5568810c --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/DGpuProfileInventory.java @@ -0,0 +1,55 @@ +package org.zstack.sdk; + + + +public class DGpuProfileInventory { + + public java.lang.String uuid; + public void setUuid(java.lang.String uuid) { + this.uuid = uuid; + } + public java.lang.String getUuid() { + return this.uuid; + } + + public java.lang.String gpuSpecUuid; + public void setGpuSpecUuid(java.lang.String gpuSpecUuid) { + this.gpuSpecUuid = gpuSpecUuid; + } + public java.lang.String getGpuSpecUuid() { + return this.gpuSpecUuid; + } + + public java.lang.Long memorySize; + public void setMemorySize(java.lang.Long memorySize) { + this.memorySize = memorySize; + } + public java.lang.Long getMemorySize() { + return this.memorySize; + } + + public java.lang.Long shmemSize; + public void setShmemSize(java.lang.Long shmemSize) { + this.shmemSize = shmemSize; + } + public java.lang.Long getShmemSize() { + return this.shmemSize; + } + + public java.sql.Timestamp createDate; + public void setCreateDate(java.sql.Timestamp createDate) { + this.createDate = createDate; + } + public java.sql.Timestamp getCreateDate() { + return this.createDate; + } + + public java.sql.Timestamp lastOpDate; + public void setLastOpDate(java.sql.Timestamp lastOpDate) { + this.lastOpDate = lastOpDate; + } + public java.sql.Timestamp getLastOpDate() { + return this.lastOpDate; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/DGpuSpecStatsInventory.java b/sdk/src/main/java/org/zstack/sdk/DGpuSpecStatsInventory.java new file mode 100644 index 00000000000..2191e5c49c3 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/DGpuSpecStatsInventory.java @@ -0,0 +1,79 @@ +package org.zstack.sdk; + + + +public class DGpuSpecStatsInventory { + + public java.lang.String gpuSpecUuid; + public void setGpuSpecUuid(java.lang.String gpuSpecUuid) { + this.gpuSpecUuid = gpuSpecUuid; + } + public java.lang.String getGpuSpecUuid() { + return this.gpuSpecUuid; + } + + public java.lang.String gpuSpecName; + public void setGpuSpecName(java.lang.String gpuSpecName) { + this.gpuSpecName = gpuSpecName; + } + public java.lang.String getGpuSpecName() { + return this.gpuSpecName; + } + + public java.lang.String gpuType; + public void setGpuType(java.lang.String gpuType) { + this.gpuType = gpuType; + } + public java.lang.String getGpuType() { + return this.gpuType; + } + + public java.lang.Long gpuCount; + public void setGpuCount(java.lang.Long gpuCount) { + this.gpuCount = gpuCount; + } + public java.lang.Long getGpuCount() { + return this.gpuCount; + } + + public java.lang.Long dgpuCount; + public void setDgpuCount(java.lang.Long dgpuCount) { + this.dgpuCount = dgpuCount; + } + public java.lang.Long getDgpuCount() { + return this.dgpuCount; + } + + public java.lang.Long totalMemory; + public void setTotalMemory(java.lang.Long totalMemory) { + this.totalMemory = totalMemory; + } + public java.lang.Long getTotalMemory() { + return this.totalMemory; + } + + public java.lang.Long allocatedMemory; + public void setAllocatedMemory(java.lang.Long allocatedMemory) { + this.allocatedMemory = allocatedMemory; + } + public java.lang.Long getAllocatedMemory() { + return this.allocatedMemory; + } + + public java.lang.Long availableMemory; + public void setAvailableMemory(java.lang.Long availableMemory) { + this.availableMemory = availableMemory; + } + public java.lang.Long getAvailableMemory() { + return this.availableMemory; + } + + public java.lang.Double allocationRate; + public void setAllocationRate(java.lang.Double allocationRate) { + this.allocationRate = allocationRate; + } + public java.lang.Double getAllocationRate() { + return this.allocationRate; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/DGpuStatus.java b/sdk/src/main/java/org/zstack/sdk/DGpuStatus.java new file mode 100644 index 00000000000..f2c72fc7ba7 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/DGpuStatus.java @@ -0,0 +1,8 @@ +package org.zstack.sdk; + +public enum DGpuStatus { + Normal, + Fault, + Unknown, + Disconnected, +} diff --git a/sdk/src/main/java/org/zstack/sdk/DetachDGpuFromVmAction.java b/sdk/src/main/java/org/zstack/sdk/DetachDGpuFromVmAction.java new file mode 100644 index 00000000000..23995825b1b --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/DetachDGpuFromVmAction.java @@ -0,0 +1,104 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class DetachDGpuFromVmAction extends AbstractAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.DetachDGpuFromVmResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode) + ); + } + + return this; + } + } + + @Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String vmInstanceUuid; + + @Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String dgpuDeviceUuid; + + @Param(required = false) + public java.util.List systemTags; + + @Param(required = false) + public java.util.List userTags; + + @Param(required = false) + public String sessionId; + + @Param(required = false) + public String accessKeyId; + + @Param(required = false) + public String accessKeySecret; + + @Param(required = false) + public String requestIp; + + @NonAPIParam + public long timeout = -1; + + @NonAPIParam + public long pollingInterval = -1; + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.DetachDGpuFromVmResult value = res.getResult(org.zstack.sdk.DetachDGpuFromVmResult.class); + ret.value = value == null ? new org.zstack.sdk.DetachDGpuFromVmResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "PUT"; + info.path = "/vm-instances/{vmInstanceUuid}/actions"; + info.needSession = true; + info.needPoll = true; + info.parameterName = "detachDGpuFromVm"; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/DetachDGpuFromVmResult.java b/sdk/src/main/java/org/zstack/sdk/DetachDGpuFromVmResult.java new file mode 100644 index 00000000000..3574a0e85f9 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/DetachDGpuFromVmResult.java @@ -0,0 +1,7 @@ +package org.zstack.sdk; + + + +public class DetachDGpuFromVmResult { + +} diff --git a/sdk/src/main/java/org/zstack/sdk/DisableDGpuModeAction.java b/sdk/src/main/java/org/zstack/sdk/DisableDGpuModeAction.java new file mode 100644 index 00000000000..8711977ee4d --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/DisableDGpuModeAction.java @@ -0,0 +1,101 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class DisableDGpuModeAction extends AbstractAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.DisableDGpuModeResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode) + ); + } + + return this; + } + } + + @Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String gpuDeviceUuid; + + @Param(required = false) + public java.util.List systemTags; + + @Param(required = false) + public java.util.List userTags; + + @Param(required = false) + public String sessionId; + + @Param(required = false) + public String accessKeyId; + + @Param(required = false) + public String accessKeySecret; + + @Param(required = false) + public String requestIp; + + @NonAPIParam + public long timeout = -1; + + @NonAPIParam + public long pollingInterval = -1; + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.DisableDGpuModeResult value = res.getResult(org.zstack.sdk.DisableDGpuModeResult.class); + ret.value = value == null ? new org.zstack.sdk.DisableDGpuModeResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "PUT"; + info.path = "/gpu-device/gpu-devices/{gpuDeviceUuid}/actions"; + info.needSession = true; + info.needPoll = true; + info.parameterName = "disableDGpuMode"; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/DisableDGpuModeResult.java b/sdk/src/main/java/org/zstack/sdk/DisableDGpuModeResult.java new file mode 100644 index 00000000000..51e129cf234 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/DisableDGpuModeResult.java @@ -0,0 +1,7 @@ +package org.zstack.sdk; + + + +public class DisableDGpuModeResult { + +} diff --git a/sdk/src/main/java/org/zstack/sdk/EnableDGpuModeAction.java b/sdk/src/main/java/org/zstack/sdk/EnableDGpuModeAction.java new file mode 100644 index 00000000000..a73ac6a3cd1 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/EnableDGpuModeAction.java @@ -0,0 +1,101 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class EnableDGpuModeAction extends AbstractAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.EnableDGpuModeResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode) + ); + } + + return this; + } + } + + @Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String gpuDeviceUuid; + + @Param(required = false) + public java.util.List systemTags; + + @Param(required = false) + public java.util.List userTags; + + @Param(required = false) + public String sessionId; + + @Param(required = false) + public String accessKeyId; + + @Param(required = false) + public String accessKeySecret; + + @Param(required = false) + public String requestIp; + + @NonAPIParam + public long timeout = -1; + + @NonAPIParam + public long pollingInterval = -1; + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.EnableDGpuModeResult value = res.getResult(org.zstack.sdk.EnableDGpuModeResult.class); + ret.value = value == null ? new org.zstack.sdk.EnableDGpuModeResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "PUT"; + info.path = "/gpu-device/gpu-devices/{gpuDeviceUuid}/actions"; + info.needSession = true; + info.needPoll = true; + info.parameterName = "enableDGpuMode"; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/EnableDGpuModeResult.java b/sdk/src/main/java/org/zstack/sdk/EnableDGpuModeResult.java new file mode 100644 index 00000000000..40eb1c5f2d3 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/EnableDGpuModeResult.java @@ -0,0 +1,7 @@ +package org.zstack.sdk; + + + +public class EnableDGpuModeResult { + +} diff --git a/sdk/src/main/java/org/zstack/sdk/GetDGpuSpecStatsAction.java b/sdk/src/main/java/org/zstack/sdk/GetDGpuSpecStatsAction.java new file mode 100644 index 00000000000..d80fe253c6b --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/GetDGpuSpecStatsAction.java @@ -0,0 +1,101 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class GetDGpuSpecStatsAction extends AbstractAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.GetDGpuSpecStatsResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode) + ); + } + + return this; + } + } + + @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String zoneUuid; + + @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String clusterUuid; + + @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String hostUuid; + + @Param(required = false) + public java.util.List systemTags; + + @Param(required = false) + public java.util.List userTags; + + @Param(required = false) + public String sessionId; + + @Param(required = false) + public String accessKeyId; + + @Param(required = false) + public String accessKeySecret; + + @Param(required = false) + public String requestIp; + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.GetDGpuSpecStatsResult value = res.getResult(org.zstack.sdk.GetDGpuSpecStatsResult.class); + ret.value = value == null ? new org.zstack.sdk.GetDGpuSpecStatsResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "GET"; + info.path = "/gpu-device/dgpu-spec-stats"; + info.needSession = true; + info.needPoll = false; + info.parameterName = ""; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/GetDGpuSpecStatsResult.java b/sdk/src/main/java/org/zstack/sdk/GetDGpuSpecStatsResult.java new file mode 100644 index 00000000000..b15d1af436f --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/GetDGpuSpecStatsResult.java @@ -0,0 +1,14 @@ +package org.zstack.sdk; + + + +public class GetDGpuSpecStatsResult { + public java.util.List inventories; + public void setInventories(java.util.List inventories) { + this.inventories = inventories; + } + public java.util.List getInventories() { + return this.inventories; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/GetGpuDeviceCandidatesAction.java b/sdk/src/main/java/org/zstack/sdk/GetGpuDeviceCandidatesAction.java new file mode 100644 index 00000000000..d99a6378869 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/GetGpuDeviceCandidatesAction.java @@ -0,0 +1,110 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class GetGpuDeviceCandidatesAction extends AbstractAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.GetGpuDeviceCandidatesResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode) + ); + } + + return this; + } + } + + @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.util.List clusterUuids; + + @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String hostUuid; + + @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String vmInstanceUuid; + + @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.util.List vmInstanceUuids; + + @Param(required = false, validValues = {"PCI","DGPU"}, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String mode; + + @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.util.List pciSpecUuids; + + @Param(required = false) + public java.util.List systemTags; + + @Param(required = false) + public java.util.List userTags; + + @Param(required = false) + public String sessionId; + + @Param(required = false) + public String accessKeyId; + + @Param(required = false) + public String accessKeySecret; + + @Param(required = false) + public String requestIp; + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.GetGpuDeviceCandidatesResult value = res.getResult(org.zstack.sdk.GetGpuDeviceCandidatesResult.class); + ret.value = value == null ? new org.zstack.sdk.GetGpuDeviceCandidatesResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "GET"; + info.path = "/gpu-devices/candidates"; + info.needSession = true; + info.needPoll = false; + info.parameterName = ""; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/GetGpuDeviceCandidatesResult.java b/sdk/src/main/java/org/zstack/sdk/GetGpuDeviceCandidatesResult.java new file mode 100644 index 00000000000..f0f06878a66 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/GetGpuDeviceCandidatesResult.java @@ -0,0 +1,14 @@ +package org.zstack.sdk; + + + +public class GetGpuDeviceCandidatesResult { + public java.util.List inventories; + public void setInventories(java.util.List inventories) { + this.inventories = inventories; + } + public java.util.List getInventories() { + return this.inventories; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/GetGpuDeviceSpecCandidatesAction.java b/sdk/src/main/java/org/zstack/sdk/GetGpuDeviceSpecCandidatesAction.java index 3b32815e973..c8d3de5aadc 100644 --- a/sdk/src/main/java/org/zstack/sdk/GetGpuDeviceSpecCandidatesAction.java +++ b/sdk/src/main/java/org/zstack/sdk/GetGpuDeviceSpecCandidatesAction.java @@ -37,6 +37,9 @@ public Result throwExceptionIfError() { @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) public java.util.List vmInstanceUuids; + @Param(required = false, validValues = {"PCI","DGPU"}, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String mode; + @Param(required = false) public java.util.List systemTags; diff --git a/sdk/src/main/java/org/zstack/sdk/GpuDeviceInventory.java b/sdk/src/main/java/org/zstack/sdk/GpuDeviceInventory.java index 587c9cbeae3..0a47629a7b3 100644 --- a/sdk/src/main/java/org/zstack/sdk/GpuDeviceInventory.java +++ b/sdk/src/main/java/org/zstack/sdk/GpuDeviceInventory.java @@ -60,4 +60,12 @@ public GpuAllocateStatus getAllocateStatus() { return this.allocateStatus; } + public java.lang.String mode; + public void setMode(java.lang.String mode) { + this.mode = mode; + } + public java.lang.String getMode() { + return this.mode; + } + } diff --git a/sdk/src/main/java/org/zstack/sdk/GpuDeviceSpecCandidateInventory.java b/sdk/src/main/java/org/zstack/sdk/GpuDeviceSpecCandidateInventory.java new file mode 100644 index 00000000000..60eb7da3345 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/GpuDeviceSpecCandidateInventory.java @@ -0,0 +1,31 @@ +package org.zstack.sdk; + + + +public class GpuDeviceSpecCandidateInventory extends org.zstack.sdk.GpuDeviceSpecInventory { + + public java.lang.String mode; + public void setMode(java.lang.String mode) { + this.mode = mode; + } + public java.lang.String getMode() { + return this.mode; + } + + public java.lang.Long maxAvailableMemory; + public void setMaxAvailableMemory(java.lang.Long maxAvailableMemory) { + this.maxAvailableMemory = maxAvailableMemory; + } + public java.lang.Long getMaxAvailableMemory() { + return this.maxAvailableMemory; + } + + public java.util.List dgpuProfiles; + public void setDgpuProfiles(java.util.List dgpuProfiles) { + this.dgpuProfiles = dgpuProfiles; + } + public java.util.List getDgpuProfiles() { + return this.dgpuProfiles; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/PciDeviceInventory.java b/sdk/src/main/java/org/zstack/sdk/PciDeviceInventory.java index a695b6c1b26..b3d7728f91e 100644 --- a/sdk/src/main/java/org/zstack/sdk/PciDeviceInventory.java +++ b/sdk/src/main/java/org/zstack/sdk/PciDeviceInventory.java @@ -4,6 +4,8 @@ import org.zstack.sdk.PciDeviceState; import org.zstack.sdk.PciDeviceStatus; import org.zstack.sdk.PciDeviceVirtStatus; +import org.zstack.sdk.PciDeviceVirtState; +import org.zstack.sdk.PciDeviceVirtMode; import org.zstack.sdk.PciDeviceChooser; import org.zstack.sdk.PciDeviceMetaData; @@ -97,6 +99,30 @@ public PciDeviceVirtStatus getVirtStatus() { return this.virtStatus; } + public PciDeviceVirtState virtState; + public void setVirtState(PciDeviceVirtState virtState) { + this.virtState = virtState; + } + public PciDeviceVirtState getVirtState() { + return this.virtState; + } + + public java.util.List virtCapabilities; + public void setVirtCapabilities(java.util.List virtCapabilities) { + this.virtCapabilities = virtCapabilities; + } + public java.util.List getVirtCapabilities() { + return this.virtCapabilities; + } + + public PciDeviceVirtMode virtMode; + public void setVirtMode(PciDeviceVirtMode virtMode) { + this.virtMode = virtMode; + } + public PciDeviceVirtMode getVirtMode() { + return this.virtMode; + } + public PciDeviceChooser chooser; public void setChooser(PciDeviceChooser chooser) { this.chooser = chooser; diff --git a/sdk/src/main/java/org/zstack/sdk/PciDeviceVirtMode.java b/sdk/src/main/java/org/zstack/sdk/PciDeviceVirtMode.java new file mode 100644 index 00000000000..cbee53defa5 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/PciDeviceVirtMode.java @@ -0,0 +1,8 @@ +package org.zstack.sdk; + +public enum PciDeviceVirtMode { + SRIOV, + VFIO_MDEV, + TENSORFUSION, + HAMI, +} diff --git a/sdk/src/main/java/org/zstack/sdk/PciDeviceVirtState.java b/sdk/src/main/java/org/zstack/sdk/PciDeviceVirtState.java new file mode 100644 index 00000000000..7a56eabf9c0 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/PciDeviceVirtState.java @@ -0,0 +1,8 @@ +package org.zstack.sdk; + +public enum PciDeviceVirtState { + UNVIRTUALIZABLE, + VIRTUALIZABLE, + VIRTUALIZED, + VIRTUAL, +} diff --git a/sdk/src/main/java/org/zstack/sdk/PciDeviceVirtStatus.java b/sdk/src/main/java/org/zstack/sdk/PciDeviceVirtStatus.java index e59f4237d25..3612d6fb754 100644 --- a/sdk/src/main/java/org/zstack/sdk/PciDeviceVirtStatus.java +++ b/sdk/src/main/java/org/zstack/sdk/PciDeviceVirtStatus.java @@ -9,5 +9,7 @@ public enum PciDeviceVirtStatus { SRIOV_VIRTUAL, VIRTUALIZED_BYPASS_ZSTACK, HAMI_VIRTUALIZED, + TENSORFUSION_VIRTUALIZABLE, + TENSORFUSION_VIRTUALIZED, UNKNOWN, } diff --git a/sdk/src/main/java/org/zstack/sdk/QueryDGpuDeviceAction.java b/sdk/src/main/java/org/zstack/sdk/QueryDGpuDeviceAction.java new file mode 100644 index 00000000000..ce5fc12e4af --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/QueryDGpuDeviceAction.java @@ -0,0 +1,75 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class QueryDGpuDeviceAction extends QueryAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.QueryDGpuDeviceResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode) + ); + } + + return this; + } + } + + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.QueryDGpuDeviceResult value = res.getResult(org.zstack.sdk.QueryDGpuDeviceResult.class); + ret.value = value == null ? new org.zstack.sdk.QueryDGpuDeviceResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "GET"; + info.path = "/gpu-device/dgpu-devices"; + info.needSession = true; + info.needPoll = false; + info.parameterName = ""; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/QueryDGpuDeviceResult.java b/sdk/src/main/java/org/zstack/sdk/QueryDGpuDeviceResult.java new file mode 100644 index 00000000000..54bbf450e4b --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/QueryDGpuDeviceResult.java @@ -0,0 +1,22 @@ +package org.zstack.sdk; + + + +public class QueryDGpuDeviceResult { + public java.util.List inventories; + public void setInventories(java.util.List inventories) { + this.inventories = inventories; + } + public java.util.List getInventories() { + return this.inventories; + } + + public java.lang.Long total; + public void setTotal(java.lang.Long total) { + this.total = total; + } + public java.lang.Long getTotal() { + return this.total; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/QueryDGpuProfileAction.java b/sdk/src/main/java/org/zstack/sdk/QueryDGpuProfileAction.java new file mode 100644 index 00000000000..b0f5b38380c --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/QueryDGpuProfileAction.java @@ -0,0 +1,75 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class QueryDGpuProfileAction extends QueryAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.QueryDGpuProfileResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode) + ); + } + + return this; + } + } + + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.QueryDGpuProfileResult value = res.getResult(org.zstack.sdk.QueryDGpuProfileResult.class); + ret.value = value == null ? new org.zstack.sdk.QueryDGpuProfileResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "GET"; + info.path = "/gpu-device/dgpu-profiles"; + info.needSession = true; + info.needPoll = false; + info.parameterName = ""; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/QueryDGpuProfileResult.java b/sdk/src/main/java/org/zstack/sdk/QueryDGpuProfileResult.java new file mode 100644 index 00000000000..7be7fc6e021 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/QueryDGpuProfileResult.java @@ -0,0 +1,22 @@ +package org.zstack.sdk; + + + +public class QueryDGpuProfileResult { + public java.util.List inventories; + public void setInventories(java.util.List inventories) { + this.inventories = inventories; + } + public java.util.List getInventories() { + return this.inventories; + } + + public java.lang.Long total; + public void setTotal(java.lang.Long total) { + this.total = total; + } + public java.lang.Long getTotal() { + return this.total; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/RemoveVmDGpuStrategyAction.java b/sdk/src/main/java/org/zstack/sdk/RemoveVmDGpuStrategyAction.java new file mode 100644 index 00000000000..e0d74840df8 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/RemoveVmDGpuStrategyAction.java @@ -0,0 +1,101 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class RemoveVmDGpuStrategyAction extends AbstractAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.RemoveVmDGpuStrategyResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode) + ); + } + + return this; + } + } + + @Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String vmInstanceUuid; + + @Param(required = false) + public java.util.List systemTags; + + @Param(required = false) + public java.util.List userTags; + + @Param(required = false) + public String sessionId; + + @Param(required = false) + public String accessKeyId; + + @Param(required = false) + public String accessKeySecret; + + @Param(required = false) + public String requestIp; + + @NonAPIParam + public long timeout = -1; + + @NonAPIParam + public long pollingInterval = -1; + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.RemoveVmDGpuStrategyResult value = res.getResult(org.zstack.sdk.RemoveVmDGpuStrategyResult.class); + ret.value = value == null ? new org.zstack.sdk.RemoveVmDGpuStrategyResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "DELETE"; + info.path = "/vm-instances/{vmInstanceUuid}/dgpu-strategy"; + info.needSession = true; + info.needPoll = true; + info.parameterName = ""; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/RemoveVmDGpuStrategyResult.java b/sdk/src/main/java/org/zstack/sdk/RemoveVmDGpuStrategyResult.java new file mode 100644 index 00000000000..866bc7622dc --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/RemoveVmDGpuStrategyResult.java @@ -0,0 +1,7 @@ +package org.zstack.sdk; + + + +public class RemoveVmDGpuStrategyResult { + +} diff --git a/sdk/src/main/java/org/zstack/sdk/SetDGpuProfileAction.java b/sdk/src/main/java/org/zstack/sdk/SetDGpuProfileAction.java new file mode 100644 index 00000000000..c0fedea7396 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/SetDGpuProfileAction.java @@ -0,0 +1,107 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class SetDGpuProfileAction extends AbstractAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.SetDGpuProfileResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode) + ); + } + + return this; + } + } + + @Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String gpuSpecUuid; + + @Param(required = true, nonempty = true, nullElements = false, emptyString = true, noTrim = false) + public java.util.List memorySizes; + + @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.Long shmemSize; + + @Param(required = false) + public java.util.List systemTags; + + @Param(required = false) + public java.util.List userTags; + + @Param(required = false) + public String sessionId; + + @Param(required = false) + public String accessKeyId; + + @Param(required = false) + public String accessKeySecret; + + @Param(required = false) + public String requestIp; + + @NonAPIParam + public long timeout = -1; + + @NonAPIParam + public long pollingInterval = -1; + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.SetDGpuProfileResult value = res.getResult(org.zstack.sdk.SetDGpuProfileResult.class); + ret.value = value == null ? new org.zstack.sdk.SetDGpuProfileResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "PUT"; + info.path = "/gpu-device/gpu-device-specs/{gpuSpecUuid}/actions"; + info.needSession = true; + info.needPoll = true; + info.parameterName = "setDGpuProfile"; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/SetDGpuProfileResult.java b/sdk/src/main/java/org/zstack/sdk/SetDGpuProfileResult.java new file mode 100644 index 00000000000..6dc9258fdb7 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/SetDGpuProfileResult.java @@ -0,0 +1,14 @@ +package org.zstack.sdk; + + + +public class SetDGpuProfileResult { + public java.util.List inventories; + public void setInventories(java.util.List inventories) { + this.inventories = inventories; + } + public java.util.List getInventories() { + return this.inventories; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/SetVmDGpuStrategyAction.java b/sdk/src/main/java/org/zstack/sdk/SetVmDGpuStrategyAction.java new file mode 100644 index 00000000000..e8f773e19de --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/SetVmDGpuStrategyAction.java @@ -0,0 +1,113 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class SetVmDGpuStrategyAction extends AbstractAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.SetVmDGpuStrategyResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode) + ); + } + + return this; + } + } + + @Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String vmInstanceUuid; + + @Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String dgpuProfileUuid; + + @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String gpuDeviceUuid; + + @Param(required = true, validValues = {"BySpec","ByDevice"}, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String chooser; + + @Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.Boolean autoDetachOnStop; + + @Param(required = false) + public java.util.List systemTags; + + @Param(required = false) + public java.util.List userTags; + + @Param(required = false) + public String sessionId; + + @Param(required = false) + public String accessKeyId; + + @Param(required = false) + public String accessKeySecret; + + @Param(required = false) + public String requestIp; + + @NonAPIParam + public long timeout = -1; + + @NonAPIParam + public long pollingInterval = -1; + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.SetVmDGpuStrategyResult value = res.getResult(org.zstack.sdk.SetVmDGpuStrategyResult.class); + ret.value = value == null ? new org.zstack.sdk.SetVmDGpuStrategyResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "PUT"; + info.path = "/vm-instances/{vmInstanceUuid}/actions"; + info.needSession = true; + info.needPoll = true; + info.parameterName = "setVmDGpuStrategy"; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/SetVmDGpuStrategyResult.java b/sdk/src/main/java/org/zstack/sdk/SetVmDGpuStrategyResult.java new file mode 100644 index 00000000000..d7815916628 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/SetVmDGpuStrategyResult.java @@ -0,0 +1,7 @@ +package org.zstack.sdk; + + + +public class SetVmDGpuStrategyResult { + +} diff --git a/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy b/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy index f8470e35bd3..8b570aa02ac 100644 --- a/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy +++ b/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy @@ -18485,6 +18485,33 @@ abstract class ApiHelper { } + def detachDGpuFromVm(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.DetachDGpuFromVmAction.class) Closure c) { + def a = new org.zstack.sdk.DetachDGpuFromVmAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + def detachDataVolumeFromHost(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.DetachDataVolumeFromHostAction.class) Closure c) { def a = new org.zstack.sdk.DetachDataVolumeFromHostAction() a.sessionId = Test.currentEnvSpec?.session?.uuid @@ -19592,6 +19619,33 @@ abstract class ApiHelper { } + def disableDGpuMode(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.DisableDGpuModeAction.class) Closure c) { + def a = new org.zstack.sdk.DisableDGpuModeAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + def discoverExternalPrimaryStorage(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.DiscoverExternalPrimaryStorageAction.class) Closure c) { def a = new org.zstack.sdk.DiscoverExternalPrimaryStorageAction() a.sessionId = Test.currentEnvSpec?.session?.uuid @@ -19727,6 +19781,33 @@ abstract class ApiHelper { } + def enableDGpuMode(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.EnableDGpuModeAction.class) Closure c) { + def a = new org.zstack.sdk.EnableDGpuModeAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + def executeAutoScalingRule(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.ExecuteAutoScalingRuleAction.class) Closure c) { def a = new org.zstack.sdk.ExecuteAutoScalingRuleAction() a.sessionId = Test.currentEnvSpec?.session?.uuid @@ -21941,6 +22022,33 @@ abstract class ApiHelper { } + def getDGpuSpecStats(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.GetDGpuSpecStatsAction.class) Closure c) { + def a = new org.zstack.sdk.GetDGpuSpecStatsAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + def getDataCenterFromRemote(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.GetDataCenterFromRemoteAction.class) Closure c) { def a = new org.zstack.sdk.GetDataCenterFromRemoteAction() a.sessionId = Test.currentEnvSpec?.session?.uuid @@ -22400,6 +22508,33 @@ abstract class ApiHelper { } + def getGpuDeviceCandidates(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.GetGpuDeviceCandidatesAction.class) Closure c) { + def a = new org.zstack.sdk.GetGpuDeviceCandidatesAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + def getGpuDeviceSpecCandidates(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.GetGpuDeviceSpecCandidatesAction.class) Closure c) { def a = new org.zstack.sdk.GetGpuDeviceSpecCandidatesAction() a.sessionId = Test.currentEnvSpec?.session?.uuid @@ -30198,6 +30333,64 @@ abstract class ApiHelper { } + def queryDGpuDevice(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.QueryDGpuDeviceAction.class) Closure c) { + def a = new org.zstack.sdk.QueryDGpuDeviceAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + a.conditions = a.conditions.collect { it.toString() } + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + + def queryDGpuProfile(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.QueryDGpuProfileAction.class) Closure c) { + def a = new org.zstack.sdk.QueryDGpuProfileAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + a.conditions = a.conditions.collect { it.toString() } + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + def queryDRSAdvice(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.QueryDRSAdviceAction.class) Closure c) { def a = new org.zstack.sdk.QueryDRSAdviceAction() a.sessionId = Test.currentEnvSpec?.session?.uuid @@ -38565,6 +38758,33 @@ abstract class ApiHelper { } + def removeVmDGpuStrategy(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.RemoveVmDGpuStrategyAction.class) Closure c) { + def a = new org.zstack.sdk.RemoveVmDGpuStrategyAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + def removeVmFromAffinityGroup(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.RemoveVmFromAffinityGroupAction.class) Closure c) { def a = new org.zstack.sdk.RemoveVmFromAffinityGroupAction() a.sessionId = Test.currentEnvSpec?.session?.uuid @@ -39321,6 +39541,33 @@ abstract class ApiHelper { } + def setDGpuProfile(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.SetDGpuProfileAction.class) Closure c) { + def a = new org.zstack.sdk.SetDGpuProfileAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + def setFlowMeterRouterId(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.SetFlowMeterRouterIdAction.class) Closure c) { def a = new org.zstack.sdk.SetFlowMeterRouterIdAction() a.sessionId = Test.currentEnvSpec?.session?.uuid @@ -39915,6 +40162,33 @@ abstract class ApiHelper { } + def setVmDGpuStrategy(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.SetVmDGpuStrategyAction.class) Closure c) { + def a = new org.zstack.sdk.SetVmDGpuStrategyAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + def setVmEmulatorPinning(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.SetVmEmulatorPinningAction.class) Closure c) { def a = new org.zstack.sdk.SetVmEmulatorPinningAction() a.sessionId = Test.currentEnvSpec?.session?.uuid diff --git a/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java b/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java index a0f09d4f1e9..f2cc0a9d03c 100644 --- a/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java +++ b/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java @@ -364,6 +364,8 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_ZWATCH_10004 = "ORG_ZSTACK_ZWATCH_10004"; + public static final String ORG_ZSTACK_ZWATCH_10005 = "ORG_ZSTACK_ZWATCH_10005"; + public static final String ORG_ZSTACK_SSO_SAML2_SERVICE_10000 = "ORG_ZSTACK_SSO_SAML2_SERVICE_10000"; public static final String ORG_ZSTACK_SSO_SAML2_SERVICE_10001 = "ORG_ZSTACK_SSO_SAML2_SERVICE_10001"; @@ -1654,6 +1656,10 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_LDAP_10019 = "ORG_ZSTACK_LDAP_10019"; + public static final String ORG_ZSTACK_LDAP_10020 = "ORG_ZSTACK_LDAP_10020"; + + public static final String ORG_ZSTACK_LDAP_10021 = "ORG_ZSTACK_LDAP_10021"; + public static final String ORG_ZSTACK_IMAGE_10000 = "ORG_ZSTACK_IMAGE_10000"; public static final String ORG_ZSTACK_IMAGE_10001 = "ORG_ZSTACK_IMAGE_10001"; @@ -6274,6 +6280,8 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_STORAGE_BACKUP_10133 = "ORG_ZSTACK_STORAGE_BACKUP_10133"; + public static final String ORG_ZSTACK_STORAGE_BACKUP_CANCEL_TIMEOUT = "ORG_ZSTACK_STORAGE_BACKUP_CANCEL_TIMEOUT"; + public static final String ORG_ZSTACK_COMPUTE_10000 = "ORG_ZSTACK_COMPUTE_10000"; public static final String ORG_ZSTACK_COMPUTE_10001 = "ORG_ZSTACK_COMPUTE_10001"; @@ -6500,6 +6508,8 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_STORAGE_ADDON_PRIMARY_10014 = "ORG_ZSTACK_STORAGE_ADDON_PRIMARY_10014"; + public static final String ORG_ZSTACK_STORAGE_ADDON_PRIMARY_10015 = "ORG_ZSTACK_STORAGE_ADDON_PRIMARY_10015"; + public static final String ORG_ZSTACK_STORAGE_ADDON_PRIMARY_10040 = "ORG_ZSTACK_STORAGE_ADDON_PRIMARY_10040"; public static final String ORG_ZSTACK_NETWORK_HOSTNETWORKINTERFACE_LLDP_10000 = "ORG_ZSTACK_NETWORK_HOSTNETWORKINTERFACE_LLDP_10000"; @@ -6850,6 +6860,12 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_PCIDEVICE_SPECIFICATION_10034 = "ORG_ZSTACK_PCIDEVICE_SPECIFICATION_10034"; + public static final String ORG_ZSTACK_PCIDEVICE_SPECIFICATION_10035 = "ORG_ZSTACK_PCIDEVICE_SPECIFICATION_10035"; + + public static final String ORG_ZSTACK_PCIDEVICE_SPECIFICATION_10036 = "ORG_ZSTACK_PCIDEVICE_SPECIFICATION_10036"; + + public static final String ORG_ZSTACK_PCIDEVICE_SPECIFICATION_10037 = "ORG_ZSTACK_PCIDEVICE_SPECIFICATION_10037"; + public static final String ORG_ZSTACK_XDRAGON_10000 = "ORG_ZSTACK_XDRAGON_10000"; public static final String ORG_ZSTACK_PLUGINPREMIUM_COMPUTE_ALLOCATOR_10000 = "ORG_ZSTACK_PLUGINPREMIUM_COMPUTE_ALLOCATOR_10000"; @@ -10652,6 +10668,8 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_PREMIUM_EXTERNALSERVICE_PROMETHEUS_10013 = "ORG_ZSTACK_PREMIUM_EXTERNALSERVICE_PROMETHEUS_10013"; + public static final String ORG_ZSTACK_PREMIUM_EXTERNALSERVICE_PROMETHEUS_10014 = "ORG_ZSTACK_PREMIUM_EXTERNALSERVICE_PROMETHEUS_10014"; + public static final String ORG_ZSTACK_AI_CONTAINER_10000 = "ORG_ZSTACK_AI_CONTAINER_10000"; public static final String ORG_ZSTACK_AI_CONTAINER_10001 = "ORG_ZSTACK_AI_CONTAINER_10001"; @@ -11586,6 +11604,8 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_PCIDEVICE_10076 = "ORG_ZSTACK_PCIDEVICE_10076"; + public static final String ORG_ZSTACK_PCIDEVICE_10077 = "ORG_ZSTACK_PCIDEVICE_10077"; + public static final String ORG_ZSTACK_CAS_DRIVER_DONGHAI_10000 = "ORG_ZSTACK_CAS_DRIVER_DONGHAI_10000"; public static final String ORG_ZSTACK_CAS_DRIVER_DONGHAI_10001 = "ORG_ZSTACK_CAS_DRIVER_DONGHAI_10001"; @@ -14802,6 +14822,14 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_AI_10133 = "ORG_ZSTACK_AI_10133"; + public static final String ORG_ZSTACK_AI_10134 = "ORG_ZSTACK_AI_10134"; + + public static final String ORG_ZSTACK_AI_10135 = "ORG_ZSTACK_AI_10135"; + + public static final String ORG_ZSTACK_AI_10136 = "ORG_ZSTACK_AI_10136"; + + public static final String ORG_ZSTACK_AI_10137 = "ORG_ZSTACK_AI_10137"; + public static final String ORG_ZSTACK_CORE_CLOUDBUS_10000 = "ORG_ZSTACK_CORE_CLOUDBUS_10000"; public static final String ORG_ZSTACK_CORE_CLOUDBUS_10001 = "ORG_ZSTACK_CORE_CLOUDBUS_10001"; @@ -15871,4 +15899,28 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_CRYPTO_SECURITYMACHINE_THIRDPARTY_PLUGIN_10005 = "ORG_ZSTACK_CRYPTO_SECURITYMACHINE_THIRDPARTY_PLUGIN_10005"; public static final String ORG_ZSTACK_CRYPTO_SECURITYMACHINE_THIRDPARTY_PLUGIN_10006 = "ORG_ZSTACK_CRYPTO_SECURITYMACHINE_THIRDPARTY_PLUGIN_10006"; + + public static final String ORG_ZSTACK_DGPU_10001 = "ORG_ZSTACK_DGPU_10001"; + + public static final String ORG_ZSTACK_DGPU_10002 = "ORG_ZSTACK_DGPU_10002"; + + public static final String ORG_ZSTACK_DGPU_10003 = "ORG_ZSTACK_DGPU_10003"; + + public static final String ORG_ZSTACK_DGPU_10004 = "ORG_ZSTACK_DGPU_10004"; + + public static final String ORG_ZSTACK_DGPU_10005 = "ORG_ZSTACK_DGPU_10005"; + + public static final String ORG_ZSTACK_DGPU_10006 = "ORG_ZSTACK_DGPU_10006"; + + public static final String ORG_ZSTACK_DGPU_10007 = "ORG_ZSTACK_DGPU_10007"; + + public static final String ORG_ZSTACK_DGPU_10008 = "ORG_ZSTACK_DGPU_10008"; + + public static final String ORG_ZSTACK_DGPU_10009 = "ORG_ZSTACK_DGPU_10009"; + + public static final String ORG_ZSTACK_DGPU_10010 = "ORG_ZSTACK_DGPU_10010"; + + public static final String ORG_ZSTACK_DGPU_10011 = "ORG_ZSTACK_DGPU_10011"; + + public static final String ORG_ZSTACK_DGPU_10012 = "ORG_ZSTACK_DGPU_10012"; }