diff --git a/plugin/kvm/src/main/java/org/zstack/kvm/hypervisor/KvmHypervisorInfoManagerImpl.java b/plugin/kvm/src/main/java/org/zstack/kvm/hypervisor/KvmHypervisorInfoManagerImpl.java index f9501fe279e..df330171cf6 100644 --- a/plugin/kvm/src/main/java/org/zstack/kvm/hypervisor/KvmHypervisorInfoManagerImpl.java +++ b/plugin/kvm/src/main/java/org/zstack/kvm/hypervisor/KvmHypervisorInfoManagerImpl.java @@ -275,13 +275,15 @@ private boolean saveMetadataList(List definitions) @Transactional protected boolean saveHostOsCategoryList(List categoryVOS) { + if (CollectionUtils.isEmpty(categoryVOS)) { + logger.warn("no hypervisor metadata collected from DVD, skip refresh to preserve existing metadata"); + return false; + } + // refresh all metadata with current management node SQL.New(KvmHostHypervisorMetadataVO.class) .eq(KvmHostHypervisorMetadataVO_.managementNodeUuid, Platform.getManagementServerId()) .delete(); - if (CollectionUtils.isEmpty(categoryVOS)) { - return false; - } Set requestArchitectures = categoryVOS.stream() .map(HostOsCategoryVO::getArchitecture)