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

Reply via email to