Skip to content

Commit d2d2ea6

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

File tree

4 files changed

+35
-4
lines changed

4 files changed

+35
-4
lines changed

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
@@ -742,4 +745,30 @@ public void run(MessageReply reply) {
742745
}
743746
});
744747
}
748+
749+
@Override
750+
public String preDestroyVm(VmInstanceInventory inv) {
751+
return null;
752+
}
753+
754+
@Override
755+
public void beforeDestroyVm(VmInstanceInventory inv) {
756+
// do-nothing
757+
}
758+
759+
@Override
760+
public void afterDestroyVm(VmInstanceInventory inv) {
761+
String vmUuid = inv.getUuid();
762+
SQL.New(VmHostFileVO.class)
763+
.eq(VmHostFileVO_.vmInstanceUuid, vmUuid)
764+
.delete();
765+
SQL.New(VmHostBackupFileVO.class)
766+
.eq(VmHostBackupFileVO_.vmInstanceUuid, vmUuid)
767+
.delete();
768+
}
769+
770+
@Override
771+
public void failedToDestroyVm(VmInstanceInventory inv, ErrorCode reason) {
772+
// do-nothing
773+
}
745774
}

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)