package org.ovirt.engine.core.bll.storage.connection; import java.util.Map; import javax.inject.Inject; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.common.action.IdParameters; import org.ovirt.engine.core.common.businessentities.storage.StorageServerConnectionExtension; import org.ovirt.engine.core.common.errors.EngineMessage; import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.core.dao.StorageServerConnectionExtensionDao; public class RemoveStorageServerConnectionExtensionCommand<T extends IdParameters> extends StorageServerConnectionExtensionCommandBase<IdParameters> { private StorageServerConnectionExtension connExt; @Inject private StorageServerConnectionExtensionDao storageServerConnectionExtensionDao; public RemoveStorageServerConnectionExtensionCommand(T parameters, CommandContext cmdContext) { super(parameters, cmdContext); } @Override protected void init() { super.init(); connExt = getConnectionExtension(getParameters().getId()); } @Override protected void setActionMessageParameters() { super.setActionMessageParameters(); addValidationMessage(EngineMessage.VAR__ACTION__REMOVE); } @Override protected boolean validate() { return validate(getConnectionExtensionValidator().isConnectionExtensionExists(getParameters().getId())); } @Override protected void executeCommand() { storageServerConnectionExtensionDao.remove(getParameters().getId()); getReturnValue().setSucceeded(true); } @Override protected Map<String, Pair<String, String>> getExclusiveLocks() { if (connExt != null) { return createIdAndHostTargetLockMap(connExt); } else { // No point in locking, command will fail in CDA return null; } } }