diff --git a/conf/db/upgrade/V5.5.6__schema.sql b/conf/db/upgrade/V5.5.6__schema.sql index 4b92ec28fb..ed57233ff4 100644 --- a/conf/db/upgrade/V5.5.6__schema.sql +++ b/conf/db/upgrade/V5.5.6__schema.sql @@ -14,3 +14,79 @@ CALL CREATE_INDEX('ModelVO', 'idx_modelId', 'modelId'); -- Upgrade existing data: set modelId to uuid if modelId is NULL -- This UPDATE is idempotent: WHERE clause ensures only NULL values are updated UPDATE ModelVO SET modelId = uuid WHERE modelId IS NULL; + + +DELIMITER $$ + +CREATE PROCEDURE UpdateBareMetal2InstanceProvisionNicVO() +BEGIN + DECLARE instanceUuid_exists INT; + DECLARE isPrimaryProvisionNic_exists_in_ProvisionNicVO INT; + DECLARE isPrimaryProvisionNic_exists_in_ChassisNicVO INT; + + DECLARE EXIT HANDLER FOR SQLEXCEPTION + BEGIN + ROLLBACK; + SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'An error occurred during the update process.'; + END; + + START TRANSACTION; + + SELECT COUNT(*) + INTO instanceUuid_exists + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = 'zstack' + AND TABLE_NAME = 'BareMetal2InstanceProvisionNicVO' + AND COLUMN_NAME = 'instanceUuid'; + + IF instanceUuid_exists = 0 THEN + CALL ADD_COLUMN('BareMetal2InstanceProvisionNicVO', 'instanceUuid', 'VARCHAR(32)', FALSE, ''); + + UPDATE `zstack`.`BareMetal2InstanceProvisionNicVO` + SET `instanceUuid` = `uuid`; + + ALTER TABLE `zstack`.`BareMetal2InstanceProvisionNicVO` + DROP FOREIGN KEY `fkBareMetal2InstanceProvisionNicVOInstanceVO`; + + CALL ADD_CONSTRAINT('BareMetal2InstanceProvisionNicVO', 'fkBareMetal2InstanceProvisionNicVOInstanceVO', + 'instanceUuid', 'BareMetal2InstanceVO', 'uuid', 'CASCADE'); + + UPDATE `zstack`.`BareMetal2InstanceProvisionNicVO` + SET `uuid` = REPLACE(UUID(), '-', ''); + END IF; + + SELECT COUNT(*) + INTO isPrimaryProvisionNic_exists_in_ProvisionNicVO + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = 'zstack' + AND TABLE_NAME = 'BareMetal2InstanceProvisionNicVO' + AND COLUMN_NAME = 'isPrimaryProvisionNic'; + + IF isPrimaryProvisionNic_exists_in_ProvisionNicVO = 0 THEN + CALL ADD_COLUMN('BareMetal2InstanceProvisionNicVO', 'isPrimaryProvisionNic', 'BOOLEAN', FALSE, FALSE); + + UPDATE `zstack`.`BareMetal2InstanceProvisionNicVO` + SET `isPrimaryProvisionNic` = TRUE; + END IF; + + SELECT COUNT(*) + INTO isPrimaryProvisionNic_exists_in_ChassisNicVO + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = 'zstack' + AND TABLE_NAME = 'BareMetal2ChassisNicVO' + AND COLUMN_NAME = 'isPrimaryProvisionNic'; + + IF isPrimaryProvisionNic_exists_in_ChassisNicVO = 0 THEN + CALL ADD_COLUMN('BareMetal2ChassisNicVO', 'isPrimaryProvisionNic', 'BOOLEAN', FALSE, FALSE); + + UPDATE `zstack`.`BareMetal2ChassisNicVO` + SET `isPrimaryProvisionNic` = TRUE + WHERE `isProvisionNic` = TRUE; + END IF; + + COMMIT; +END$$ + +DELIMITER ; +CALL UpdateBareMetal2InstanceProvisionNicVO(); +DROP PROCEDURE IF EXISTS UpdateBareMetal2InstanceProvisionNicVO; diff --git a/plugin/ceph/src/main/java/org/zstack/storage/ceph/primary/CephPrimaryStorageBase.java b/plugin/ceph/src/main/java/org/zstack/storage/ceph/primary/CephPrimaryStorageBase.java index d8349cd8f2..38ddf77394 100755 --- a/plugin/ceph/src/main/java/org/zstack/storage/ceph/primary/CephPrimaryStorageBase.java +++ b/plugin/ceph/src/main/java/org/zstack/storage/ceph/primary/CephPrimaryStorageBase.java @@ -54,8 +54,12 @@ import org.zstack.header.storage.primary.*; import org.zstack.header.storage.primary.VolumeSnapshotCapability.VolumeSnapshotArrangementType; import org.zstack.header.storage.snapshot.*; +import org.zstack.header.tag.SystemTagVO; +import org.zstack.header.tag.SystemTagVO_; import org.zstack.header.vm.VmInstanceSpec; import org.zstack.header.vm.VmInstanceSpec.ImageSpec; +import org.zstack.header.vm.VmInstanceVO; +import org.zstack.header.vm.VmInstanceVO_; import org.zstack.header.vo.ResourceVO; import org.zstack.header.volume.*; import org.zstack.identity.AccountManager; @@ -485,6 +489,8 @@ public static class CloneRsp extends AgentResponse { public Long size; public Long actualSize; public String installPath; + public String volumeId; + public String volumeStatus; public String getInstallPath() { return installPath; @@ -493,6 +499,22 @@ public String getInstallPath() { public void setInstallPath(String installPath) { this.installPath = installPath; } + + public String getVolumeId() { + return volumeId; + } + + public void setVolumeId(String volumeId) { + this.volumeId = volumeId; + } + + public String getVolumeStatus() { + return volumeStatus; + } + + public void setVolumeStatus(String volumeStatus) { + this.volumeStatus = volumeStatus; + } } public static class FlattenCmd extends AgentCommand implements HasThreadContext { diff --git a/sdk/src/main/java/org/zstack/sdk/BareMetal2ChassisNicInventory.java b/sdk/src/main/java/org/zstack/sdk/BareMetal2ChassisNicInventory.java index 4586cbaa65..3325ebb5eb 100644 --- a/sdk/src/main/java/org/zstack/sdk/BareMetal2ChassisNicInventory.java +++ b/sdk/src/main/java/org/zstack/sdk/BareMetal2ChassisNicInventory.java @@ -52,6 +52,14 @@ public java.lang.Boolean getIsProvisionNic() { return this.isProvisionNic; } + public java.lang.Boolean isPrimaryProvisionNic; + public void setIsPrimaryProvisionNic(java.lang.Boolean isPrimaryProvisionNic) { + this.isPrimaryProvisionNic = isPrimaryProvisionNic; + } + public java.lang.Boolean getIsPrimaryProvisionNic() { + return this.isPrimaryProvisionNic; + } + public java.sql.Timestamp createDate; public void setCreateDate(java.sql.Timestamp createDate) { this.createDate = createDate; diff --git a/sdk/src/main/java/org/zstack/sdk/BareMetal2InstanceInventory.java b/sdk/src/main/java/org/zstack/sdk/BareMetal2InstanceInventory.java index d4c75d84a3..2ddc554a90 100644 --- a/sdk/src/main/java/org/zstack/sdk/BareMetal2InstanceInventory.java +++ b/sdk/src/main/java/org/zstack/sdk/BareMetal2InstanceInventory.java @@ -1,6 +1,6 @@ package org.zstack.sdk; -import org.zstack.sdk.BareMetal2InstanceProvisionNicInventory; + public class BareMetal2InstanceInventory extends org.zstack.sdk.VmInstanceInventory { @@ -84,12 +84,12 @@ public boolean getIsLatestAgent() { return this.isLatestAgent; } - public BareMetal2InstanceProvisionNicInventory provisionNic; - public void setProvisionNic(BareMetal2InstanceProvisionNicInventory provisionNic) { - this.provisionNic = provisionNic; + public java.util.List provisionNics; + public void setProvisionNics(java.util.List provisionNics) { + this.provisionNics = provisionNics; } - public BareMetal2InstanceProvisionNicInventory getProvisionNic() { - return this.provisionNic; + public java.util.List getProvisionNics() { + return this.provisionNics; } } diff --git a/sdk/src/main/java/org/zstack/sdk/BareMetal2InstanceProvisionNicInventory.java b/sdk/src/main/java/org/zstack/sdk/BareMetal2InstanceProvisionNicInventory.java index 50bbe75673..4f25c5ebb9 100644 --- a/sdk/src/main/java/org/zstack/sdk/BareMetal2InstanceProvisionNicInventory.java +++ b/sdk/src/main/java/org/zstack/sdk/BareMetal2InstanceProvisionNicInventory.java @@ -52,6 +52,22 @@ public java.lang.String getGateway() { return this.gateway; } + public java.lang.String instanceUuid; + public void setInstanceUuid(java.lang.String instanceUuid) { + this.instanceUuid = instanceUuid; + } + public java.lang.String getInstanceUuid() { + return this.instanceUuid; + } + + public java.lang.Boolean isPrimaryProvisionNic; + public void setIsPrimaryProvisionNic(java.lang.Boolean isPrimaryProvisionNic) { + this.isPrimaryProvisionNic = isPrimaryProvisionNic; + } + public java.lang.Boolean getIsPrimaryProvisionNic() { + return this.isPrimaryProvisionNic; + } + public java.lang.String metadata; public void setMetadata(java.lang.String metadata) { this.metadata = metadata; 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 7907558db2..2343ef17c9 100644 --- a/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java +++ b/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java @@ -700,6 +700,8 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_STORAGE_VOLUME_BLOCK_10002 = "ORG_ZSTACK_STORAGE_VOLUME_BLOCK_10002"; + public static final String ORG_ZSTACK_STORAGE_VOLUME_BLOCK_10003 = "ORG_ZSTACK_STORAGE_VOLUME_BLOCK_10003"; + public static final String ORG_ZSTACK_ALIYUN_CORE_10000 = "ORG_ZSTACK_ALIYUN_CORE_10000"; public static final String ORG_ZSTACK_ALIYUN_CORE_10001 = "ORG_ZSTACK_ALIYUN_CORE_10001"; @@ -7678,6 +7680,10 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_BAREMETAL2_INSTANCE_10087 = "ORG_ZSTACK_BAREMETAL2_INSTANCE_10087"; + public static final String ORG_ZSTACK_BAREMETAL2_INSTANCE_10088 = "ORG_ZSTACK_BAREMETAL2_INSTANCE_10088"; + + public static final String ORG_ZSTACK_BAREMETAL2_INSTANCE_10089 = "ORG_ZSTACK_BAREMETAL2_INSTANCE_10089"; + public static final String ORG_ZSTACK_CRYPTO_SECURITYMACHINE_SECRETRESOURCEPOOL_10000 = "ORG_ZSTACK_CRYPTO_SECURITYMACHINE_SECRETRESOURCEPOOL_10000"; public static final String ORG_ZSTACK_CRYPTO_SECURITYMACHINE_SECRETRESOURCEPOOL_10001 = "ORG_ZSTACK_CRYPTO_SECURITYMACHINE_SECRETRESOURCEPOOL_10001"; @@ -12824,6 +12830,8 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_STORAGE_CEPH_PRIMARY_10052 = "ORG_ZSTACK_STORAGE_CEPH_PRIMARY_10052"; + public static final String ORG_ZSTACK_STORAGE_CEPH_PRIMARY_10053 = "ORG_ZSTACK_STORAGE_CEPH_PRIMARY_10053"; + public static final String ORG_ZSTACK_EXTERNALSERVICE_CRONJOB_10000 = "ORG_ZSTACK_EXTERNALSERVICE_CRONJOB_10000"; public static final String ORG_ZSTACK_EXTERNALSERVICE_CRONJOB_10001 = "ORG_ZSTACK_EXTERNALSERVICE_CRONJOB_10001"; @@ -13706,6 +13714,10 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_BAREMETAL2_CHASSIS_10023 = "ORG_ZSTACK_BAREMETAL2_CHASSIS_10023"; + public static final String ORG_ZSTACK_BAREMETAL2_CHASSIS_10024 = "ORG_ZSTACK_BAREMETAL2_CHASSIS_10024"; + + public static final String ORG_ZSTACK_BAREMETAL2_CHASSIS_10025 = "ORG_ZSTACK_BAREMETAL2_CHASSIS_10025"; + public static final String ORG_ZSTACK_BAREMETAL2_CLUSTER_10000 = "ORG_ZSTACK_BAREMETAL2_CLUSTER_10000"; public static final String ORG_ZSTACK_BAREMETAL2_CLUSTER_10001 = "ORG_ZSTACK_BAREMETAL2_CLUSTER_10001";