package org.ovirt.engine.core.bll.storage.lsm; import javax.inject.Inject; import javax.inject.Singleton; import org.ovirt.engine.core.bll.CommandBase; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.RemoveImageParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.businessentities.storage.ImageDbOperationScope; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dao.BaseDiskDao; import org.ovirt.engine.core.dao.StorageDomainStaticDao; @Singleton public class LiveStorageMigrationHelper { @Inject private BaseDiskDao baseDiskDao; @Inject private StorageDomainStaticDao storageDomainStaticDao; @Inject private AuditLogDirector auditLogDirector; public void removeImage(CommandBase<?> cmd, Guid storageDomainId, Guid imageGroupId, Guid imageId, AuditLogType failureAuditLog) { RemoveImageParameters removeImageParams = new RemoveImageParameters(imageId); removeImageParams.setStorageDomainId(storageDomainId); removeImageParams.setParentCommand(VdcActionType.RemoveImage); removeImageParams.setDbOperationScope(ImageDbOperationScope.NONE); removeImageParams.setShouldLockImage(false); VdcReturnValueBase returnValue = cmd.runInternalActionWithTasksContext( VdcActionType.RemoveImage, removeImageParams); if (returnValue.getSucceeded()) { cmd.startPollingAsyncTasks(returnValue.getInternalVdsmTaskIdList()); } else { cmd.addCustomValue("DiskAlias", baseDiskDao.get(imageGroupId).getDiskAlias()); cmd.addCustomValue("StorageDomainName", storageDomainStaticDao.get(storageDomainId).getName()); cmd.addCustomValue("UserName", cmd.getUserName()); auditLogDirector.log(cmd, failureAuditLog); } } }