From d1459fb1f77ee8ca0b7561e7bc4224689e3f0c7b Mon Sep 17 00:00:00 2001 From: "haoyu.ding" Date: Thu, 16 Apr 2026 14:21:02 +0800 Subject: [PATCH] [sdk]: refactor HA network group validation DBImpact Resolves: ZSTAC-84164 Change-Id: I736967737a6963726b666776746b677a69717278 --- conf/db/upgrade/V5.5.12__schema.sql | 16 +++++++++++----- .../zstack/sdk/CreateHaNetworkGroupAction.java | 3 --- .../org/zstack/sdk/HaNetworkGroupInventory.java | 16 ---------------- .../main/java/org/zstack/testlib/EnvSpec.groovy | 3 ++- .../clouderrorcode/CloudOperationsErrorCode.java | 8 ++++++++ 5 files changed, 21 insertions(+), 25 deletions(-) diff --git a/conf/db/upgrade/V5.5.12__schema.sql b/conf/db/upgrade/V5.5.12__schema.sql index 050060469fd..42c9437d18b 100644 --- a/conf/db/upgrade/V5.5.12__schema.sql +++ b/conf/db/upgrade/V5.5.12__schema.sql @@ -2,15 +2,12 @@ CREATE TABLE IF NOT EXISTS `zstack`.`HaNetworkGroupVO` ( `uuid` VARCHAR(32) NOT NULL UNIQUE COMMENT 'uuid', `name` VARCHAR(255) NOT NULL, `description` VARCHAR(2048) DEFAULT NULL, - `clusterUuid` VARCHAR(32) NOT NULL, `type` VARCHAR(128) NOT NULL, `minAvailableCount` INT(10) NOT NULL DEFAULT 1, - `configVersion` BIGINT UNSIGNED NOT NULL DEFAULT 0, `state` VARCHAR(32) NOT NULL DEFAULT 'Enabled', `lastOpDate` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, `createDate` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', - PRIMARY KEY (`uuid`), - CONSTRAINT `fkHaNetworkGroupVOClusterEO` FOREIGN KEY (`clusterUuid`) REFERENCES `zstack`.`ClusterEO` (`uuid`) ON DELETE CASCADE + PRIMARY KEY (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `zstack`.`HaNetworkGroupL3NetworkRefVO` ( @@ -21,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `zstack`.`HaNetworkGroupL3NetworkRefVO` ( `createDate` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`uuid`), INDEX `idxHaNetworkGroupL3NetworkRefVOhaNetworkGroupUuid` (`haNetworkGroupUuid`), - INDEX `idxHaNetworkGroupL3NetworkRefVOl3NetworkUuid` (`l3NetworkUuid`), + UNIQUE INDEX `ukHaNetworkGroupL3NetworkRefVOl3NetworkUuid` (`l3NetworkUuid`), CONSTRAINT `fkHaNetworkGroupL3NetworkRefVOHaNetworkGroupVO` FOREIGN KEY (`haNetworkGroupUuid`) REFERENCES `zstack`.`HaNetworkGroupVO` (`uuid`) ON DELETE CASCADE, CONSTRAINT `fkHaNetworkGroupL3NetworkRefVOL3NetworkEO` FOREIGN KEY (`l3NetworkUuid`) REFERENCES `zstack`.`L3NetworkEO` (`uuid`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -40,3 +37,12 @@ CREATE TABLE IF NOT EXISTS `zstack`.`HostHaNetworkGroupStatusVO` ( CONSTRAINT `fkHostHaNetworkGroupStatusVOHostEO` FOREIGN KEY (`hostUuid`) REFERENCES `zstack`.`HostEO` (`uuid`) ON DELETE CASCADE, CONSTRAINT `fkHostHaNetworkGroupStatusVOHaNetworkGroupVO` FOREIGN KEY (`networkGroupUuid`) REFERENCES `zstack`.`HaNetworkGroupVO` (`uuid`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `zstack`.`HaNetworkGroupGlobalConfigVersionVO` ( + `name` VARCHAR(64) NOT NULL, + `version` BIGINT UNSIGNED NOT NULL DEFAULT 0, + PRIMARY KEY (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +INSERT IGNORE INTO `zstack`.`HaNetworkGroupGlobalConfigVersionVO` (`name`, `version`) +VALUES ('ha-network-group', 0); diff --git a/sdk/src/main/java/org/zstack/sdk/CreateHaNetworkGroupAction.java b/sdk/src/main/java/org/zstack/sdk/CreateHaNetworkGroupAction.java index afd25614e98..4ec460f54a1 100644 --- a/sdk/src/main/java/org/zstack/sdk/CreateHaNetworkGroupAction.java +++ b/sdk/src/main/java/org/zstack/sdk/CreateHaNetworkGroupAction.java @@ -31,9 +31,6 @@ public Result throwExceptionIfError() { @Param(required = false, maxLength = 2048, nonempty = false, nullElements = false, emptyString = true, noTrim = false) public java.lang.String description; - @Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false) - public java.lang.String clusterUuid; - @Param(required = true, validValues = {"Flat","Public"}, nonempty = false, nullElements = false, emptyString = true, noTrim = false) public java.lang.String type; diff --git a/sdk/src/main/java/org/zstack/sdk/HaNetworkGroupInventory.java b/sdk/src/main/java/org/zstack/sdk/HaNetworkGroupInventory.java index 2a2ce9b44e8..af8235e50e0 100644 --- a/sdk/src/main/java/org/zstack/sdk/HaNetworkGroupInventory.java +++ b/sdk/src/main/java/org/zstack/sdk/HaNetworkGroupInventory.java @@ -28,14 +28,6 @@ public java.lang.String getDescription() { return this.description; } - public java.lang.String clusterUuid; - public void setClusterUuid(java.lang.String clusterUuid) { - this.clusterUuid = clusterUuid; - } - public java.lang.String getClusterUuid() { - return this.clusterUuid; - } - public java.lang.String type; public void setType(java.lang.String type) { this.type = type; @@ -52,14 +44,6 @@ public int getMinAvailableCount() { return this.minAvailableCount; } - public java.lang.Long configVersion; - public void setConfigVersion(java.lang.Long configVersion) { - this.configVersion = configVersion; - } - public java.lang.Long getConfigVersion() { - return this.configVersion; - } - public java.lang.String state; public void setState(java.lang.String state) { this.state = state; diff --git a/testlib/src/main/java/org/zstack/testlib/EnvSpec.groovy b/testlib/src/main/java/org/zstack/testlib/EnvSpec.groovy index 5491d321f1b..e0dbab38c3c 100755 --- a/testlib/src/main/java/org/zstack/testlib/EnvSpec.groovy +++ b/testlib/src/main/java/org/zstack/testlib/EnvSpec.groovy @@ -707,7 +707,8 @@ class EnvSpec extends ApiHelper implements Node { "EventRecordsVO", "AuditsVO", "AlarmRecordsVO", "VmCrashHistoryVO", "EncryptionIntegrityVO", "FileIntegrityVerificationVO", "EncryptEntityMetadataVO", "VmInstanceDeviceAddressGroupVO", "HostOsCategoryVO", "KvmHostHypervisorMetadataVO", "HaStrategyConditionVO", "SystemTagVO", "ConsoleProxyAgentVO", "ConsoleProxyVO", "XmlHookVO", "SSOServerTokenVO", - "HostNetworkLabelVO", "L3NetworkSequenceNumberVO"]) { + "HostNetworkLabelVO", "L3NetworkSequenceNumberVO", + "HaNetworkGroupGlobalConfigVersionVO"]) { return } 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 1e7c95bcd52..3f49320a3b1 100644 --- a/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java +++ b/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java @@ -1894,6 +1894,14 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_HA_10036 = "ORG_ZSTACK_HA_10036"; + public static final String ORG_ZSTACK_HA_10037 = "ORG_ZSTACK_HA_10037"; + + public static final String ORG_ZSTACK_HA_10038 = "ORG_ZSTACK_HA_10038"; + + public static final String ORG_ZSTACK_HA_10039 = "ORG_ZSTACK_HA_10039"; + + public static final String ORG_ZSTACK_HA_10040 = "ORG_ZSTACK_HA_10040"; + public static final String ORG_ZSTACK_NETWORK_SERVICE_SLB_10000 = "ORG_ZSTACK_NETWORK_SERVICE_SLB_10000"; public static final String ORG_ZSTACK_NETWORK_SERVICE_SLB_10001 = "ORG_ZSTACK_NETWORK_SERVICE_SLB_10001";