From 313c49a651cea2e236eec6ad135fd9b8f218fe55 Mon Sep 17 00:00:00 2001 From: Zhang Wenhao Date: Thu, 16 Jul 2026 10:43:20 +0800 Subject: [PATCH] [storage]: update storage global config for ZSV mode Resolves: ZSV-12625 Related: ZSV-5323 Change-Id: I6b74746f747863686677686e64726a6577616572 --- pom.xml | 1 + .../primary/PrimaryStorageGlobalConfig.java | 2 +- .../snapshot/VolumeSnapshotGlobalConfig.java | 2 +- test/pom.xml | 1175 ++++++++--------- .../CephCreateRootVolumeTemplateCase.groovy | 90 -- ...DataVolumeFromVolumeTemplateMsgCase.groovy | 6 - 6 files changed, 590 insertions(+), 686 deletions(-) delete mode 100644 test/src/test/groovy/org/zstack/test/integration/storage/backup/ceph/CephCreateRootVolumeTemplateCase.groovy diff --git a/pom.xml b/pom.xml index 402bf289cb5..1742bbc1a1d 100755 --- a/pom.xml +++ b/pom.xml @@ -53,6 +53,7 @@ resourceconfig plugin/iscsi abstraction + test diff --git a/storage/src/main/java/org/zstack/storage/primary/PrimaryStorageGlobalConfig.java b/storage/src/main/java/org/zstack/storage/primary/PrimaryStorageGlobalConfig.java index 1a0ef4a1556..e87b5088699 100755 --- a/storage/src/main/java/org/zstack/storage/primary/PrimaryStorageGlobalConfig.java +++ b/storage/src/main/java/org/zstack/storage/primary/PrimaryStorageGlobalConfig.java @@ -50,7 +50,7 @@ public class PrimaryStorageGlobalConfig { @GlobalConfigValidation(validValues = {"true", "false"}) @BindResourceConfig({PrimaryStorageVO.class}) - @GlobalConfigDef(defaultValue = "false", type = Boolean.class, description = "Whether undo temp snapshot after template uploaded") + @GlobalConfigDef(defaultValue = "true", type = Boolean.class, description = "Whether undo temp snapshot after template uploaded") public static GlobalConfig UNDO_TEMP_SNAPSHOT = new GlobalConfig(CATEGORY, "undo.tempSnapshot"); @GlobalConfigValidation(min = 1) @GlobalConfigDef(defaultValue = "1", type = Long.class) diff --git a/storage/src/main/java/org/zstack/storage/snapshot/VolumeSnapshotGlobalConfig.java b/storage/src/main/java/org/zstack/storage/snapshot/VolumeSnapshotGlobalConfig.java index b308d039a42..20ce80a0b2e 100755 --- a/storage/src/main/java/org/zstack/storage/snapshot/VolumeSnapshotGlobalConfig.java +++ b/storage/src/main/java/org/zstack/storage/snapshot/VolumeSnapshotGlobalConfig.java @@ -21,6 +21,6 @@ public class VolumeSnapshotGlobalConfig { public static GlobalConfig SNAPSHOT_BEFORE_REVERTVOLUME = new GlobalConfig(CATEGORY, "snapshot.before.revertvolume"); @GlobalConfigValidation(validValues = {"true", "false"}) - @GlobalConfigDef(defaultValue = "false", type = Boolean.class, description = "effective count with detached volumes") + @GlobalConfigDef(defaultValue = "true", type = Boolean.class, description = "effective count with detached volumes") public static GlobalConfig EFFECTIVE_COUNT_WITH_DETACHED_VOLUMES = new GlobalConfig(CATEGORY, "effectiveCount.withDetachedVolumes"); } diff --git a/test/pom.xml b/test/pom.xml index 1022c44d9b6..27375c2490b 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -1,588 +1,587 @@ - - - true - ${env.skipJacoco} - ${skipJacoco} - - 4.0.0 - - zstack - org.zstack - 5.0.0 - .. - - test - - - - - - org.kohsuke - groovy-sandbox - 1.19 - - - - junit - junit - 4.13.1 - - - org.zapodot - embedded-ldap-junit - 0.7 - test - - - - org.mockito - mockito-core - 4.11.0 - - - - org.zstack - core - ${project.version} - - - org.zstack - compute - ${project.version} - - - org.zstack - header - ${project.version} - - - org.zstack - portal - ${project.version} - - - org.zstack - utils - ${project.version} - - - org.zstack - external-service - ${project.version} - - - org.zstack - simulatorImpl - ${project.version} - - - org.zstack - image - ${project.version} - - - org.zstack - network - ${project.version} - - - org.zstack - configuration - ${project.version} - - - org.zstack - identity - ${project.version} - - - org.zstack - search - ${project.version} - - - org.zstack - console - ${project.version} - - - org.zstack - applianceVm - ${project.version} - - - org.zstack - localstorage - ${project.version} - - - org.zstack - externalStorage - ${project.version} - - - org.zstack - zbs - ${project.version} - - - org.zstack - cbd - ${project.version} - - - org.zstack - expon - ${project.version} - - - org.zstack - vhost - ${project.version} - - - org.zstack - iscsi - ${project.version} - - - org.zstack - ceph - ${project.version} - - - org.zstack - sharedMountPointPrimaryStorage - ${project.version} - - - org.zstack - ldap - ${project.version} - - - - org.jboss.shrinkwrap - shrinkwrap-api - 1.0.0-alpha-12 - test - - - org.jboss.shrinkwrap - 1.0.0-alpha-12 - shrinkwrap-impl-base - test - - - org.eclipse.jetty - jetty-server - 9.4.51.v20230217 - - - org.eclipse.jetty - jetty-webapp - 9.4.49.v20220914 - - - - org.zstack - kvm - ${project.version} - - - org.zstack - nfsPrimaryStorage - ${project.version} - - - org.zstack - sftpBackupStorage - ${project.version} - - - org.zstack - virtualRouterProvider - ${project.version} - - - org.zstack - securityGroup - ${project.version} - - - org.zstack - vip - ${project.version} - - - org.zstack - mediator - ${project.version} - - - org.zstack - flatNetworkProvider - ${project.version} - - - org.zstack - rest - ${project.version} - - - org.zstack - vxlan - ${project.version} - - - org.zstack - longjob - ${project.version} - - - org.zstack - sshKeyPair - ${project.version} - - - org.zstack - sdk - ${project.version} - - - org.zstack - hostNetworkInterface - ${project.version} - - - org.zstack - testlib - ${project.version} - - - com.github.javaparser - javaparser-core - - - org.jasig.cas.client - cas-client-core - - - - - - merge - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.8 - - - - - run - - - default-cli - - - - - - - - - - - - - - - - - - org.jacoco - org.jacoco.ant - 0.8.6 - - - - - - - - - coverage - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.8 - - - - run - - - default-cli - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - org.jacoco - org.jacoco.ant - 0.8.6 - - - - - - - - - coverage-xml - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.8 - - - - run - - - default-cli - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - org.jacoco - org.jacoco.ant - 0.8.6 - - - - - - - - - - - - - org.jacoco - jacoco-maven-plugin - 0.8.6 - - - - prepare-agent - - prepare-agent - - - true - target/classes - - org.zstack.* - - target/jacoco.exec - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.18 - - - c3p0:c3p0:jar:0.9.1.1 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${project.compiler.version} - - ${project.java.version} - ${project.java.version} - true - false - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.6.1 - - groovy-eclipse-compiler - ${project.java.version} - ${project.java.version} - lines,vars,source - true - - - - org.codehaus.groovy - groovy-eclipse-compiler - 2.9.2-01 - - - org.codehaus.groovy - groovy-eclipse-batch - 2.4.3-01 - - - - - - org.codehaus.mojo - aspectj-maven-plugin - ${aspectj.plugin.version} - - - - compile - test-compile - - - - - ${project.java.version} - ${project.java.version} - ${project.java.version} - true - - - org.springframework - spring-aspects - - - org.zstack - core - - - org.zstack - header - - - - - - - maven-resources-plugin - 2.5 - - - copy-conf - - validate - - copy-resources - - - target/test-classes - true - - - ../conf - - - - - - - - - + + + true + ${env.skipJacoco} + ${skipJacoco} + + 4.0.0 + + zstack + org.zstack + 5.0.0 + + test + + + + + + org.kohsuke + groovy-sandbox + 1.19 + + + + junit + junit + 4.13.1 + + + org.zapodot + embedded-ldap-junit + 0.7 + test + + + + org.mockito + mockito-core + 4.11.0 + + + + org.zstack + core + ${project.version} + + + org.zstack + compute + ${project.version} + + + org.zstack + header + ${project.version} + + + org.zstack + portal + ${project.version} + + + org.zstack + utils + ${project.version} + + + org.zstack + external-service + ${project.version} + + + org.zstack + simulatorImpl + ${project.version} + + + org.zstack + image + ${project.version} + + + org.zstack + network + ${project.version} + + + org.zstack + configuration + ${project.version} + + + org.zstack + identity + ${project.version} + + + org.zstack + search + ${project.version} + + + org.zstack + console + ${project.version} + + + org.zstack + applianceVm + ${project.version} + + + org.zstack + localstorage + ${project.version} + + + org.zstack + externalStorage + ${project.version} + + + org.zstack + zbs + ${project.version} + + + org.zstack + cbd + ${project.version} + + + org.zstack + expon + ${project.version} + + + org.zstack + vhost + ${project.version} + + + org.zstack + iscsi + ${project.version} + + + org.zstack + ceph + ${project.version} + + + org.zstack + sharedMountPointPrimaryStorage + ${project.version} + + + org.zstack + ldap + ${project.version} + + + + org.jboss.shrinkwrap + shrinkwrap-api + 1.0.0-alpha-12 + test + + + org.jboss.shrinkwrap + 1.0.0-alpha-12 + shrinkwrap-impl-base + test + + + org.eclipse.jetty + jetty-server + 9.4.51.v20230217 + + + org.eclipse.jetty + jetty-webapp + 9.4.49.v20220914 + + + + org.zstack + kvm + ${project.version} + + + org.zstack + nfsPrimaryStorage + ${project.version} + + + org.zstack + sftpBackupStorage + ${project.version} + + + org.zstack + virtualRouterProvider + ${project.version} + + + org.zstack + securityGroup + ${project.version} + + + org.zstack + vip + ${project.version} + + + org.zstack + mediator + ${project.version} + + + org.zstack + flatNetworkProvider + ${project.version} + + + org.zstack + rest + ${project.version} + + + org.zstack + vxlan + ${project.version} + + + org.zstack + longjob + ${project.version} + + + org.zstack + sshKeyPair + ${project.version} + + + org.zstack + sdk + ${project.version} + + + org.zstack + hostNetworkInterface + ${project.version} + + + org.zstack + testlib + ${project.version} + + + com.github.javaparser + javaparser-core + + + org.jasig.cas.client + cas-client-core + + + + + + merge + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.8 + + + + + run + + + default-cli + + + + + + + + + + + + + + + + + + org.jacoco + org.jacoco.ant + 0.8.6 + + + + + + + + + coverage + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.8 + + + + run + + + default-cli + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.jacoco + org.jacoco.ant + 0.8.6 + + + + + + + + + coverage-xml + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.8 + + + + run + + + default-cli + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.jacoco + org.jacoco.ant + 0.8.6 + + + + + + + + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.6 + + + + prepare-agent + + prepare-agent + + + true + target/classes + + org.zstack.* + + target/jacoco.exec + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.18 + + + c3p0:c3p0:jar:0.9.1.1 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${project.compiler.version} + + ${project.java.version} + ${project.java.version} + true + false + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.6.1 + + groovy-eclipse-compiler + ${project.java.version} + ${project.java.version} + lines,vars,source + true + + + + org.codehaus.groovy + groovy-eclipse-compiler + 2.9.2-01 + + + org.codehaus.groovy + groovy-eclipse-batch + 2.4.3-01 + + + + + + org.codehaus.mojo + aspectj-maven-plugin + ${aspectj.plugin.version} + + + + compile + test-compile + + + + + ${project.java.version} + ${project.java.version} + ${project.java.version} + true + + + org.springframework + spring-aspects + + + org.zstack + core + + + org.zstack + header + + + + + + + maven-resources-plugin + 2.5 + + + copy-conf + + validate + + copy-resources + + + target/test-classes + true + + + ../conf + + + + + + + + + diff --git a/test/src/test/groovy/org/zstack/test/integration/storage/backup/ceph/CephCreateRootVolumeTemplateCase.groovy b/test/src/test/groovy/org/zstack/test/integration/storage/backup/ceph/CephCreateRootVolumeTemplateCase.groovy deleted file mode 100644 index 69907a8f606..00000000000 --- a/test/src/test/groovy/org/zstack/test/integration/storage/backup/ceph/CephCreateRootVolumeTemplateCase.groovy +++ /dev/null @@ -1,90 +0,0 @@ -package org.zstack.test.integration.storage.backup.ceph - -import org.zstack.core.db.Q -import org.zstack.header.image.ImageConstant -import org.zstack.header.image.ImagePlatform -import org.zstack.header.image.ImageState -import org.zstack.header.image.ImageStatus -import org.zstack.header.storage.snapshot.VolumeSnapshotConstant -import org.zstack.header.storage.snapshot.VolumeSnapshotState -import org.zstack.header.storage.snapshot.VolumeSnapshotStatus -import org.zstack.header.storage.snapshot.VolumeSnapshotVO -import org.zstack.header.volume.VolumeConstant -import org.zstack.header.volume.VolumeType -import org.zstack.sdk.ImageInventory -import org.zstack.sdk.VmInstanceInventory -import org.zstack.sdk.VolumeInventory -import org.zstack.sdk.VolumeSnapshotInventory -import org.zstack.test.integration.storage.CephEnv -import org.zstack.test.integration.storage.StorageTest -import org.zstack.testlib.EnvSpec -import org.zstack.testlib.SubCase -/** - * Created by lining on 2017-9-10. - */ -class CephCreateRootVolumeTemplateCase extends SubCase{ - EnvSpec env - - @Override - void setup() { - useSpring(StorageTest.springSpec) - } - - @Override - void environment() { - env = CephEnv.CephStorageOneVmEnv() - } - - @Override - void test() { - env.create { - createImageFromRootVolumeWhenVmRunning() - } - } - - void createImageFromRootVolumeWhenVmRunning(){ - VmInstanceInventory vm = env.inventoryByName("test-vm") - VolumeInventory rootVolume = vm.allVolumes.find { it.uuid == vm.rootVolumeUuid } - - assert 0 == Q.New(VolumeSnapshotVO.class).count() - - ImageInventory img = createRootVolumeTemplateFromRootVolume { - name = "template" - rootVolumeUuid = vm.getRootVolumeUuid() - sessionId = loginAsAdmin().uuid - } - assert ImageState.Enabled.name() == img.state - assert img.type == ImageConstant.ZSTACK_IMAGE_TYPE - assert img.guestOsType == "CentOS" - assert img.mediaType == ImageConstant.ImageMediaType.RootVolumeTemplate.name() - assert img.platform == ImagePlatform.Linux.name() - assert ImageStatus.Ready.name() == img.status - assert null != img.uuid - assert VolumeConstant.VOLUME_FORMAT_RAW == img.format - - - VolumeSnapshotInventory snapshotInventory = queryVolumeSnapshot { - }[0] - assert snapshotInventory.primaryStorageUuid == rootVolume.primaryStorageUuid - assert snapshotInventory.state == VolumeSnapshotState.Enabled.name() - assert snapshotInventory.status == VolumeSnapshotStatus.Ready.name() - assert null != snapshotInventory.treeUuid - assert snapshotInventory.type == VolumeSnapshotConstant.STORAGE_SNAPSHOT_TYPE.toString() - assert snapshotInventory.volumeUuid == vm.getRootVolumeUuid() - assert snapshotInventory.volumeType == VolumeType.Root.name() - assert null != snapshotInventory.uuid - assert snapshotInventory.format == VolumeConstant.VOLUME_FORMAT_RAW - - createVmInstance { - name = "newVm" - instanceOfferingUuid = vm.instanceOfferingUuid - imageUuid = img.uuid - l3NetworkUuids = [vm.getDefaultL3NetworkUuid()] - } - } - - @Override - void clean() { - env.delete() - } -} diff --git a/test/src/test/groovy/org/zstack/test/integration/storage/systemtag/CreateSystemTagForAPICreateDataVolumeFromVolumeTemplateMsgCase.groovy b/test/src/test/groovy/org/zstack/test/integration/storage/systemtag/CreateSystemTagForAPICreateDataVolumeFromVolumeTemplateMsgCase.groovy index 6454fd659b8..db5301f60a0 100644 --- a/test/src/test/groovy/org/zstack/test/integration/storage/systemtag/CreateSystemTagForAPICreateDataVolumeFromVolumeTemplateMsgCase.groovy +++ b/test/src/test/groovy/org/zstack/test/integration/storage/systemtag/CreateSystemTagForAPICreateDataVolumeFromVolumeTemplateMsgCase.groovy @@ -191,11 +191,5 @@ class CreateSystemTagForAPICreateDataVolumeFromVolumeTemplateMsgCase extends Sub expungeDataVolume { uuid = dataVolume.uuid } - - VolumeSnapshotInventory snapshotInventory = queryVolumeSnapshot { - }[0] - deleteVolumeSnapshot { - uuid = snapshotInventory.uuid - } } }