Skip to content

Commit 86ccf0b

Browse files
author
Zhang Wenhao
committed
<feature>[kvm]: reset TPM state after VM reimage
Related: ZSV-11310 Change-Id: I706c6478786c61697476647a69727a6675636370
1 parent 250163f commit 86ccf0b

3 files changed

Lines changed: 23 additions & 1 deletion

File tree

conf/springConfigXml/Kvm.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@
272272
<zstack:extension interface="org.zstack.header.vm.PreVmInstantiateResourceExtensionPoint" />
273273
<zstack:extension interface="org.zstack.header.vm.VmInstanceDestroyExtensionPoint" />
274274
<zstack:extension interface="org.zstack.header.vm.VmPreMigrationExtensionPoint" />
275+
<zstack:extension interface="org.zstack.header.vm.AfterReimageVmInstanceExtensionPoint" />
275276
</zstack:plugin>
276277
</bean>
277278
</beans>

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

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.zstack.header.vm.DiskAO;
3131
import org.zstack.header.vm.PreVmInstantiateResourceExtensionPoint;
3232
import org.zstack.header.vm.VmInstanceConstant;
33+
import org.zstack.header.vm.AfterReimageVmInstanceExtensionPoint;
3334
import org.zstack.header.vm.VmInstanceDestroyExtensionPoint;
3435
import org.zstack.header.vm.VmInstanceInventory;
3536
import org.zstack.header.vm.VmInstanceSpec;
@@ -85,7 +86,8 @@
8586
public class KvmSecureBootExtensions implements KVMStartVmExtensionPoint,
8687
PreVmInstantiateResourceExtensionPoint,
8788
VmInstanceDestroyExtensionPoint,
88-
VmPreMigrationExtensionPoint {
89+
VmPreMigrationExtensionPoint,
90+
AfterReimageVmInstanceExtensionPoint {
8991
private static final CLogger logger = Utils.getLogger(KvmSecureBootExtensions.class);
9092

9193
@Autowired
@@ -711,4 +713,22 @@ public void afterDestroyVm(VmInstanceInventory inv) {
711713
public void failedToDestroyVm(VmInstanceInventory inv, ErrorCode reason) {
712714
// do-nothing
713715
}
716+
717+
@Override
718+
public void afterReimageVmInstance(VolumeInventory inventory) {
719+
String vmUuid = inventory.getVmInstanceUuid();
720+
if (vmUuid == null) {
721+
return;
722+
}
723+
724+
SQL.New(VmHostFileVO.class)
725+
.eq(VmHostFileVO_.vmInstanceUuid, vmUuid)
726+
.delete();
727+
SQL.New(VmHostBackupFileVO.class)
728+
.eq(VmHostBackupFileVO_.resourceUuid, vmUuid)
729+
.delete();
730+
731+
logger.debug(String.format("reset TPM state for VM[uuid:%s] after reimage: " +
732+
"deleted all VmHostFileVO and VmHostBackupFileVO records", vmUuid));
733+
}
714734
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@
271271
<zstack:extension interface="org.zstack.header.vm.PreVmInstantiateResourceExtensionPoint" />
272272
<zstack:extension interface="org.zstack.header.vm.VmInstanceDestroyExtensionPoint" />
273273
<zstack:extension interface="org.zstack.header.vm.VmPreMigrationExtensionPoint" />
274+
<zstack:extension interface="org.zstack.header.vm.AfterReimageVmInstanceExtensionPoint" />
274275
</zstack:plugin>
275276
</bean>
276277
</beans>

0 commit comments

Comments
 (0)