Michael Kublin has uploaded a new change for review. Change subject: core: Removing last host in status UP in pool ......................................................................
core: Removing last host in status UP in pool If host can not connect to storage it will be moved to Non-Operational. A reson that host was left at sttaus UP was to use it as fence agent when it is the only host at pool, soon it will be possible to use a non-operational host as fence agent Change-Id: I42b3b45e882fe84eb869c82fe83eadb7c1da5152 Signed-off-by: Michael Kublin <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServersCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/StoragePoolParametersBase.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java 6 files changed, 25 insertions(+), 79 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/9566/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java index bfdb7c4..a87690f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java @@ -32,7 +32,6 @@ import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase; import org.ovirt.engine.core.common.vdscommands.gluster.GlusterHostAddVDSParameters; import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.compat.TransactionScopeOption; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AlertDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; @@ -127,16 +126,12 @@ _connectStorageSucceeded = true; _connectPoolSucceeded = true; } else { - boolean suppressCheck = getAllRunningVdssInPool().size() == 0; StoragePoolParametersBase tempStorageBaseParams = new StoragePoolParametersBase(getVds().getstorage_pool_id()); tempStorageBaseParams.setVdsId(getVds().getId()); - tempStorageBaseParams.setSuppressCheck(suppressCheck); - tempStorageBaseParams.setTransactionScopeOption(TransactionScopeOption.Suppress); if (Backend.getInstance() .runInternalAction(VdcActionType.ConnectHostToStoragePoolServers, tempStorageBaseParams) - .getSucceeded() - || suppressCheck) { + .getSucceeded()) { _connectStorageSucceeded = true; try { setStoragePool(null); @@ -156,13 +151,6 @@ AuditLogDirector.log(new AuditLogableBase(getVdsId()), AuditLogType.VDS_STORAGE_VDS_STATS_FAILED); } - } - // if couldn't connect check if this is the only vds - // return true if connect succeeded or it's the only vds - if (!returnValue && suppressCheck) { - AuditLogDirector.log(new AuditLogableBase(getVdsId()), - AuditLogType.VDS_STORAGE_CONNECTION_FAILED_BUT_LAST_VDS); - returnValue = true; } } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServersCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServersCommand.java index 8fc968d..b9da88a 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServersCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServersCommand.java @@ -4,6 +4,7 @@ import org.ovirt.engine.core.bll.Backend; import org.ovirt.engine.core.bll.InternalCommandAttribute; +import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute; import org.ovirt.engine.core.common.action.StoragePoolParametersBase; import org.ovirt.engine.core.common.businessentities.StoragePoolStatus; import org.ovirt.engine.core.common.businessentities.StorageType; @@ -11,19 +12,16 @@ import org.ovirt.engine.core.common.vdscommands.ConnectStorageServerVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.dal.VdcBllMessages; -import org.ovirt.engine.core.utils.log.Log; -import org.ovirt.engine.core.utils.log.LogFactory; /** * Connect host to all Storage server connections in Storage pool. We * considering that connection failed only if data domains failed to connect. If * Iso/Export domains failed to connect - only log it. */ +@NonTransactiveCommandAttribute @InternalCommandAttribute public class ConnectHostToStoragePoolServersCommand<T extends StoragePoolParametersBase> extends ConnectHostToStoragePooServerCommandBase<T> { - - private static Log log = LogFactory.getLog(ConnectHostToStoragePoolServersCommand.class); public ConnectHostToStoragePoolServersCommand(T parameters) { super(parameters); @@ -52,32 +50,30 @@ protected boolean canDoAction() { boolean returnValue = checkStoragePool() && CheckStoragePoolStatusNotEqual(StoragePoolStatus.Uninitialized, - VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_POOL_STATUS_ILLEGAL) + VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_POOL_STATUS_ILLEGAL) && InitializeVds(); if (returnValue) { InitConnectionList(); - if (!getParameters().getSuppressCheck()) { - if (!ValidConnection(getStoragePool().getstorage_pool_type(), getConnections())) { - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_CONNECTION); - returnValue = false; - } else { - if (getIsoConnections() != null && getIsoConnections().size() != 0) { - setNeedToConnectIso(ValidConnection(getIsoType(), getIsoConnections())); - if (!getNeedToConnectIso()) { - log.infoFormat( - "Failed to validated connections for host {0} to StoragePool {1} Iso domain/s connections", - getVds().getvds_name(), - getStoragePool().getname()); - } + if (!ValidConnection(getStoragePool().getstorage_pool_type(), getConnections())) { + addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_CONNECTION); + returnValue = false; + } else { + if (getIsoConnections() != null && getIsoConnections().size() != 0) { + setNeedToConnectIso(ValidConnection(getIsoType(), getIsoConnections())); + if (!getNeedToConnectIso()) { + log.infoFormat( + "Failed to validated connections for host {0} to StoragePool {1} Iso domain/s connections", + getVds().getvds_name(), + getStoragePool().getname()); } - if (getExportConnections() != null && getExportConnections().size() != 0) { - setNeedToConnectExport(ValidConnection(getExportType(), getExportConnections())); - if (!getNeedToConnectExport()) { - log.infoFormat( - "Failed to validated connections for host {0} to StoragePool {1} Export domain/s connections", - getVds().getvds_name(), - getStoragePool().getname()); - } + } + if (getExportConnections() != null && getExportConnections().size() != 0) { + setNeedToConnectExport(ValidConnection(getExportType(), getExportConnections())); + if (!getNeedToConnectExport()) { + log.infoFormat( + "Failed to validated connections for host {0} to StoragePool {1} Export domain/s connections", + getVds().getvds_name(), + getStoragePool().getname()); } } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java index 76b0816..a1f8fc6 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java @@ -41,6 +41,7 @@ VDS_INITIALIZING(514, AuditLogTimeInterval.SECOND.getValue() * 30), VDS_CPU_LOWER_THAN_CLUSTER(515), VDS_CPU_RETRIEVE_FAILED(516), + @Deprecated VDS_STORAGE_CONNECTION_FAILED_BUT_LAST_VDS(533), VDS_STORAGES_CONNECTION_FAILED(535), VDS_STORAGE_VDS_STATS_FAILED(534), diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/StoragePoolParametersBase.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/StoragePoolParametersBase.java index d0111bc..03f6831 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/StoragePoolParametersBase.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/StoragePoolParametersBase.java @@ -6,8 +6,7 @@ private static final long serialVersionUID = 8118928386101354539L; private Guid vdsId; - private Guid storagePoolId = new Guid(); - private boolean suppressCheck; + private Guid storagePoolId = Guid.Empty; private boolean forceDelete; public StoragePoolParametersBase() { @@ -31,14 +30,6 @@ public void setStoragePoolId(Guid value) { storagePoolId = value; - } - - public boolean getSuppressCheck() { - return suppressCheck; - } - - public void setSuppressCheck(boolean value) { - suppressCheck = value; } public boolean getForceDelete() { diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java index 06f69c9..122c7dc 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java @@ -60,7 +60,6 @@ import org.ovirt.engine.core.utils.transaction.TransactionMethod; import org.ovirt.engine.core.utils.transaction.TransactionSupport; import org.ovirt.engine.core.vdsbroker.irsbroker.IRSErrorException; -import org.ovirt.engine.core.vdsbroker.irsbroker.IrsBrokerCommand; import org.ovirt.engine.core.vdsbroker.vdsbroker.DestroyVDSCommand; import org.ovirt.engine.core.vdsbroker.vdsbroker.FullListVdsCommand; import org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand; @@ -267,7 +266,6 @@ // use this lock in order to allow only one host updating DB and // calling UpEvent in a time VdsManager.cancelRecoveryJob(_vds.getId()); - IrsBrokerCommand.lockDbSave(_vds.getstorage_pool_id()); if (log.isDebugEnabled()) { log.debugFormat("vds {0}-{1} firing up event.", _vds.getId(), _vds.getvds_name()); } @@ -288,8 +286,6 @@ } catch (RuntimeException ex) { logFailureMessage("ResourceManager::refreshVdsRunTimeInfo:", ex); log.error(ExceptionUtils.getMessage(ex), ex); - } finally { - IrsBrokerCommand.unlockDbSave(_vds.getstorage_pool_id()); } } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java index d01994f..d741656 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java @@ -12,7 +12,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.locks.ReentrantLock; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.lang.exception.ExceptionUtils; @@ -96,23 +95,9 @@ return false; } - public static void lockDbSave(Guid storagePoolId) { - IrsProxyData proxy = _irsProxyData.get(storagePoolId); - if (proxy != null) { - proxy.lockDbSave(); - } - } - @Override protected VDSExceptionBase createDefaultConcreteException(String errorMessage) { return new IRSErrorException(errorMessage); - } - - public static void unlockDbSave(Guid storagePoolId) { - IrsProxyData proxy = _irsProxyData.get(storagePoolId); - if (proxy != null) { - proxy.unlockDbSave(); - } } public static void Init() { @@ -1018,17 +1003,6 @@ private final Map<Guid, String> _timers = new HashMap<Guid, String>(); private AtomicBoolean duringReconstructMaster = new AtomicBoolean(false); private final Object _lockObject = new Object(); - private final ReentrantLock _lockObjForDbSave = new ReentrantLock(); - - public void lockDbSave() { - _lockObjForDbSave.lock(); - } - - public void unlockDbSave() { - if (_lockObjForDbSave.isHeldByCurrentThread()) { - _lockObjForDbSave.unlock(); - } - } public void UpdateVdsDomainsData(final Guid vdsId, final String vdsName, final ArrayList<VDSDomainsData> data) { -- To view, visit http://gerrit.ovirt.org/9566 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I42b3b45e882fe84eb869c82fe83eadb7c1da5152 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Michael Kublin <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
