|
30 | 30 | import org.zstack.header.vm.DiskAO; |
31 | 31 | import org.zstack.header.vm.PreVmInstantiateResourceExtensionPoint; |
32 | 32 | import org.zstack.header.vm.VmInstanceConstant; |
| 33 | +import org.zstack.header.vm.AfterReimageVmInstanceExtensionPoint; |
33 | 34 | import org.zstack.header.vm.VmInstanceDestroyExtensionPoint; |
34 | 35 | import org.zstack.header.vm.VmInstanceInventory; |
35 | 36 | import org.zstack.header.vm.VmInstanceSpec; |
|
85 | 86 | public class KvmSecureBootExtensions implements KVMStartVmExtensionPoint, |
86 | 87 | PreVmInstantiateResourceExtensionPoint, |
87 | 88 | VmInstanceDestroyExtensionPoint, |
88 | | - VmPreMigrationExtensionPoint { |
| 89 | + VmPreMigrationExtensionPoint, |
| 90 | + AfterReimageVmInstanceExtensionPoint { |
89 | 91 | private static final CLogger logger = Utils.getLogger(KvmSecureBootExtensions.class); |
90 | 92 |
|
91 | 93 | @Autowired |
@@ -711,4 +713,22 @@ public void afterDestroyVm(VmInstanceInventory inv) { |
711 | 713 | public void failedToDestroyVm(VmInstanceInventory inv, ErrorCode reason) { |
712 | 714 | // do-nothing |
713 | 715 | } |
| 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 | + } |
714 | 734 | } |
0 commit comments