Skip to content

Commit 00ffc6a

Browse files
author
Zhang Wenhao
committed
<refactor>[kvm]: move VM host file cleanup to new extension point
Migrate VM host file cleanup from VmInstanceDestroyExtensionPoint to VmJustBeforeDeleteFromDbExtensionPoint. This ensures VmHostFileVO and VmHostBackupFileVO records are deleted before VM is removed from database. Changes: - Replace VmInstanceDestroyExtensionPoint with VmJustBeforeDeleteFromDbExtensionPoint - Remove unnecessary destroy lifecycle methods - Use SQLBatch for atomic deletion of both file records - Update Spring configuration in both production and test Resolves: ZSV-11436 Related: ZSV-11310 Change-Id: I6b766c6e757971796b696e6f7265766e76616871
1 parent a3e3214 commit 00ffc6a

3 files changed

Lines changed: 17 additions & 25 deletions

File tree

conf/springConfigXml/Kvm.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@
270270
<zstack:plugin>
271271
<zstack:extension interface="org.zstack.kvm.KVMStartVmExtensionPoint" />
272272
<zstack:extension interface="org.zstack.header.vm.PreVmInstantiateResourceExtensionPoint" />
273-
<zstack:extension interface="org.zstack.header.vm.VmInstanceDestroyExtensionPoint" />
273+
<zstack:extension interface="org.zstack.header.vm.VmJustBeforeDeleteFromDbExtensionPoint" />
274274
<zstack:extension interface="org.zstack.header.vm.VmPreMigrationExtensionPoint" />
275275
<zstack:extension interface="org.zstack.header.vm.AfterReimageVmInstanceExtensionPoint" />
276276
<zstack:extension interface="org.zstack.header.vm.VmReleaseResourceExtensionPoint" />

plugin/kvm/src/main/java/org/zstack/kvm/efi/KvmSecureBootExtensions.java

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.zstack.core.db.DatabaseFacade;
1212
import org.zstack.core.db.Q;
1313
import org.zstack.core.db.SQL;
14+
import org.zstack.core.db.SQLBatch;
1415
import org.zstack.core.workflow.SimpleFlowChain;
1516
import org.zstack.header.core.Completion;
1617
import org.zstack.header.core.NoErrorCompletion;
@@ -37,6 +38,7 @@
3738
import org.zstack.header.vm.VmInstanceMigrateExtensionPoint;
3839
import org.zstack.header.vm.VmInstanceSpec;
3940
import org.zstack.header.vm.VmInstantiateResourceException;
41+
import org.zstack.header.vm.VmJustBeforeDeleteFromDbExtensionPoint;
4042
import org.zstack.header.vm.VmMigrationType;
4143
import org.zstack.header.vm.VmPreMigrationExtensionPoint;
4244
import org.zstack.header.vm.VmReleaseResourceExtensionPoint;
@@ -93,7 +95,7 @@
9395

9496
public class KvmSecureBootExtensions implements KVMStartVmExtensionPoint,
9597
PreVmInstantiateResourceExtensionPoint,
96-
VmInstanceDestroyExtensionPoint,
98+
VmJustBeforeDeleteFromDbExtensionPoint,
9799
VmPreMigrationExtensionPoint,
98100
AfterReimageVmInstanceExtensionPoint,
99101
VmReleaseResourceExtensionPoint,
@@ -701,29 +703,19 @@ public void run(MessageReply reply) {
701703
}
702704

703705
@Override
704-
public String preDestroyVm(VmInstanceInventory inv) {
705-
return null;
706-
}
707-
708-
@Override
709-
public void beforeDestroyVm(VmInstanceInventory inv) {
710-
// do-nothing
711-
}
712-
713-
@Override
714-
public void afterDestroyVm(VmInstanceInventory inv) {
706+
public void vmJustBeforeDeleteFromDb(VmInstanceInventory inv) {
715707
String vmUuid = inv.getUuid();
716-
SQL.New(VmHostFileVO.class)
717-
.eq(VmHostFileVO_.vmInstanceUuid, vmUuid)
718-
.delete();
719-
SQL.New(VmHostBackupFileVO.class)
720-
.eq(VmHostBackupFileVO_.resourceUuid, vmUuid)
721-
.delete();
722-
}
723-
724-
@Override
725-
public void failedToDestroyVm(VmInstanceInventory inv, ErrorCode reason) {
726-
// do-nothing
708+
new SQLBatch() {
709+
@Override
710+
protected void scripts() {
711+
sql(VmHostFileVO.class)
712+
.eq(VmHostFileVO_.vmInstanceUuid, vmUuid)
713+
.delete();
714+
sql(VmHostBackupFileVO.class)
715+
.eq(VmHostBackupFileVO_.resourceUuid, vmUuid)
716+
.delete();
717+
}
718+
}.execute();
727719
}
728720

729721
@Override

test/src/test/resources/springConfigXml/Kvm.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@
269269
<zstack:plugin>
270270
<zstack:extension interface="org.zstack.kvm.KVMStartVmExtensionPoint" />
271271
<zstack:extension interface="org.zstack.header.vm.PreVmInstantiateResourceExtensionPoint" />
272-
<zstack:extension interface="org.zstack.header.vm.VmInstanceDestroyExtensionPoint" />
272+
<zstack:extension interface="org.zstack.header.vm.VmJustBeforeDeleteFromDbExtensionPoint" />
273273
<zstack:extension interface="org.zstack.header.vm.VmPreMigrationExtensionPoint" />
274274
<zstack:extension interface="org.zstack.header.vm.AfterReimageVmInstanceExtensionPoint" />
275275
<zstack:extension interface="org.zstack.header.vm.VmReleaseResourceExtensionPoint" />

0 commit comments

Comments
 (0)