package org.ovirt.engine.core.vdsbroker.irsbroker; import javax.inject.Inject; import org.ovirt.engine.core.common.FeatureSupported; import org.ovirt.engine.core.common.asynctasks.AsyncTaskCreationInfo; import org.ovirt.engine.core.common.asynctasks.AsyncTaskType; import org.ovirt.engine.core.common.vdscommands.DeleteImageGroupVDSCommandParameters; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.StoragePoolDao; public class DeleteImageGroupVDSCommand<P extends DeleteImageGroupVDSCommandParameters> extends IrsCreateCommand<P> { @Inject private StoragePoolDao storagePoolDao; public DeleteImageGroupVDSCommand(P parameters) { super(parameters); } @Override protected void executeIrsBrokerCommand() { uuidReturn = deleteImage(getParameters().getStorageDomainId().toString(), getParameters().getStoragePoolId().toString(), getParameters().getImageGroupId().toString(), String.valueOf(getParameters().getPostZero()), getParameters().isDiscard(), String.valueOf(getParameters().getForceDelete()).toLowerCase()); proceedProxyReturnValue(); Guid taskID = new Guid(uuidReturn.uuid); getVDSReturnValue().setCreationInfo( new AsyncTaskCreationInfo(taskID, AsyncTaskType.deleteImage, getParameters().getStoragePoolId())); } private OneUuidReturn deleteImage(String storageDomainId, String storagePoolId, String imageGroupId, String postZero, boolean discard, String forceDelete) { if (FeatureSupported.discardAfterDeleteSupported( storagePoolDao.get(getParameters().getStoragePoolId()).getCompatibilityVersion())) { return getIrsProxy().deleteImage(storageDomainId, storagePoolId, imageGroupId, postZero, discard, forceDelete); } return getIrsProxy().deleteImage(storageDomainId, storagePoolId, imageGroupId, postZero, forceDelete); } }