Skip to content

Commit 604eaaa

Browse files
author
Zhang Wenhao
committed
<feature>[kvm]: clean VmHostFileVO after VM destroy
Resolves: ZSV-11439 Related: ZSV-11310 Change-Id: I68696b7776656f78677679686370707a70616665
1 parent cdbb0cc commit 604eaaa

4 files changed

Lines changed: 35 additions & 4 deletions

File tree

compute/src/main/java/org/zstack/compute/vm/VmCascadeExtension.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -472,9 +472,9 @@ public void done(ErrorCodeList errorCodeList) {
472472
.flatMap(List::stream).map(VmCdRomInventory::getUuid)
473473
.collect(Collectors.toList());
474474
dbf.removeByPrimaryKeys(cdRomUuids, VmCdRomVO.class);
475-
dbf.removeByPrimaryKeys(vminvs.stream().map(p -> p.getInventory().getUuid())
476-
.collect(Collectors.toList()),
477-
VmInstanceVO.class);
475+
476+
List<String> vmUuidList = transform(vminvs, p -> p.getInventory().getUuid());
477+
dbf.removeByPrimaryKeys(vmUuidList, VmInstanceVO.class);
478478
}
479479

480480
completion.success();

conf/springConfigXml/Kvm.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +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" />
273274
</zstack:plugin>
274275
</bean>
275276

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

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import org.zstack.header.message.MessageReply;
2727
import org.zstack.header.vm.DiskAO;
2828
import org.zstack.header.vm.PreVmInstantiateResourceExtensionPoint;
29+
import org.zstack.header.vm.VmInstanceDestroyExtensionPoint;
30+
import org.zstack.header.vm.VmInstanceInventory;
2931
import org.zstack.header.vm.VmInstanceSpec;
3032
import org.zstack.header.vm.VmInstantiateResourceException;
3133
import org.zstack.header.vm.additions.VmHostBackupFileVO;
@@ -76,7 +78,8 @@
7678
import static org.zstack.utils.CollectionUtils.transform;
7779

7880
public class KvmSecureBootExtensions implements KVMStartVmExtensionPoint,
79-
PreVmInstantiateResourceExtensionPoint {
81+
PreVmInstantiateResourceExtensionPoint,
82+
VmInstanceDestroyExtensionPoint {
8083
private static final CLogger logger = Utils.getLogger(KvmSecureBootExtensions.class);
8184

8285
@Autowired
@@ -746,4 +749,30 @@ public void run(MessageReply reply) {
746749
}
747750
});
748751
}
752+
753+
@Override
754+
public String preDestroyVm(VmInstanceInventory inv) {
755+
return null;
756+
}
757+
758+
@Override
759+
public void beforeDestroyVm(VmInstanceInventory inv) {
760+
// do-nothing
761+
}
762+
763+
@Override
764+
public void afterDestroyVm(VmInstanceInventory inv) {
765+
String vmUuid = inv.getUuid();
766+
SQL.New(VmHostFileVO.class)
767+
.eq(VmHostFileVO_.vmInstanceUuid, vmUuid)
768+
.delete();
769+
SQL.New(VmHostBackupFileVO.class)
770+
.eq(VmHostBackupFileVO_.vmInstanceUuid, vmUuid)
771+
.delete();
772+
}
773+
774+
@Override
775+
public void failedToDestroyVm(VmInstanceInventory inv, ErrorCode reason) {
776+
// do-nothing
777+
}
749778
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +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" />
272273
</zstack:plugin>
273274
</bean>
274275

0 commit comments

Comments
 (0)