void preDetach(BackupStorageVO vo, String zoneUuid) throws BackupStorageException {
BackupStorageInventory inv = BackupStorageInventory.valueOf(vo);
for (BackupStorageDetachExtensionPoint extp : detachExts) {
try {
extp.preDetachBackupStorage(inv, zoneUuid);
} catch (BackupStorageException be) {
logger.debug(String.format("%s refused to detach backup storage[uuid:%s] because %s", extp.getClass().getName(), inv.getUuid(), be.getMessage()));
throw be;
} catch (Exception e) {
logger.warn("Exception happened when calling preDetach of BackupStorageDetachExtensionPoint", e);
}
}
}