package org.ovirt.engine.core.bll.storage; import java.util.List; import java.util.Map; import org.ovirt.engine.core.bll.Backend; import org.ovirt.engine.core.common.action.StorageServerConnectionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.storage_domain_static; import org.ovirt.engine.core.common.businessentities.storage_domains; import org.ovirt.engine.core.common.businessentities.storage_server_connections; import org.ovirt.engine.core.common.vdscommands.ConnectStorageServerVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.LogCompat; import org.ovirt.engine.core.dal.dbbroker.DbFacade; public abstract class BaseFsStorageHelper extends StorageHelperBase { protected StorageType storageType; @Override protected boolean RunConnectionStorageToDomain(storage_domains storageDomain, Guid vdsId, int type) { boolean returnValue = false; storage_server_connections connection = DbFacade.getInstance().getStorageServerConnectionDAO().get( storageDomain.getstorage()); if (connection != null) { returnValue = Backend .getInstance() .runInternalAction(VdcActionType.forValue(type), new StorageServerConnectionParametersBase(connection, vdsId)).getSucceeded(); } else { getLog().warn("Did not connect host: " + vdsId + " to storage domain: " + storageDomain.getstorage_name() + " because connection for connectionId:" + storageDomain.getstorage() + " is null."); } return returnValue; } @Override public boolean ValidateStoragePoolConnectionsInHost(VDS vds, List<storage_server_connections> connections, Guid storagePoolId) { java.util.HashMap<String, String> validateConnections = (java.util.HashMap<String, String>) Backend .getInstance() .getResourceManager() .RunVdsCommand( VDSCommandType.ValidateStorageServerConnection, new ConnectStorageServerVDSCommandParameters(vds.getvds_id(), storagePoolId, this.storageType, connections)).getReturnValue(); return IsConnectSucceeded(validateConnections, connections); } @Override public boolean IsConnectSucceeded(java.util.HashMap<String, String> returnValue, List<storage_server_connections> connections) { boolean result = true; for (Map.Entry<String, String> entry : returnValue.entrySet()) { if (!"0".equals(entry.getValue())) { String connectionField = addToAuditLogErrorMessage(entry.getKey(), entry.getValue(), connections); printLog(getLog(), connectionField, entry.getValue()); result = false; } } return result; } @Override public List<storage_server_connections> GetStorageServerConnectionsByDomain( storage_domain_static storageDomain) { return new java.util.ArrayList<storage_server_connections>( java.util.Arrays.asList(new storage_server_connections[] { DbFacade.getInstance() .getStorageServerConnectionDAO().get(storageDomain.getstorage()) })); } protected abstract LogCompat getLog(); }