Liron Ar has uploaded a new change for review.

Change subject: core: adding option to not connect host to inactive domains 
servers
......................................................................

core: adding option to not connect host to inactive domains servers

This patch adds support for connecting a host only the the storage
servers of unknown/active domains.

Change-Id: I7cdde23f8513afa119af6eeff0a02e77c43395f3
Signed-off-by: Liron Aravot <[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/ConnectHostToStoragePoolServerCommandBase.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServersCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DisconnectHostFromStoragePoolServersCommand.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ConnectHostToStoragePoolServersParameters.java
5 files changed, 59 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/22/27522/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 a6c159f..73bd445 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
@@ -13,6 +13,7 @@
 import org.ovirt.engine.core.bll.storage.StoragePoolStatusHandler;
 import org.ovirt.engine.core.bll.utils.GlusterUtil;
 import org.ovirt.engine.core.common.AuditLogType;
+import 
org.ovirt.engine.core.common.action.ConnectHostToStoragePoolServersParameters;
 import org.ovirt.engine.core.common.action.HostStoragePoolParametersBase;
 import org.ovirt.engine.core.common.action.SetNonOperationalVdsParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
@@ -193,7 +194,7 @@
             returnValue = true;
             connectPoolSucceeded = true;
         } else {
-            HostStoragePoolParametersBase params = new 
HostStoragePoolParametersBase(getStoragePool(), getVds());
+            ConnectHostToStoragePoolServersParameters params = new 
ConnectHostToStoragePoolServersParameters(getStoragePool(), getVds());
             
Backend.getInstance().runInternalAction(VdcActionType.ConnectHostToStoragePoolServers,
 params);
             returnValue = connectHostToPool();
             connectPoolSucceeded = returnValue;
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServerCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServerCommandBase.java
index a890c5d..8f2a60f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServerCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServerCommandBase.java
@@ -1,11 +1,14 @@
 package org.ovirt.engine.core.bll.storage;
 
+import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.ovirt.engine.core.bll.InternalCommandAttribute;
 import org.ovirt.engine.core.common.action.StoragePoolParametersBase;
+import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
 import org.ovirt.engine.core.common.businessentities.StorageType;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
@@ -25,8 +28,21 @@
         return connectionsTypeMap;
     }
 
-    protected void initConnectionList() {
-        _connections = 
DbFacade.getInstance().getStorageServerConnectionDao().getAllConnectableStorageSeverConnection(getStoragePool().getId());
+    protected void initConnectionList(boolean includeInactiveDomains) {
+        Set<StorageDomainStatus> statuses;
+        if (includeInactiveDomains) {
+            statuses =
+                    EnumSet.of(StorageDomainStatus.Active, 
StorageDomainStatus.InActive, StorageDomainStatus.Unknown);
+        } else {
+            statuses = EnumSet.of(StorageDomainStatus.Active, 
StorageDomainStatus.Unknown);
+        }
+
+        _connections =
+                DbFacade.getInstance()
+                        .getStorageServerConnectionDao()
+                        
.getConnectableStorageConnectionsByStorageTypeAndStatus(getStoragePool().getId(),
+                                null,
+                                statuses);
         updateConnectionsTypeMap();
     }
 
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 ff9a7c9..170d0b3 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
@@ -6,9 +6,9 @@
 import org.ovirt.engine.core.bll.InternalCommandAttribute;
 import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute;
 import org.ovirt.engine.core.common.AuditLogType;
-import org.ovirt.engine.core.common.action.HostStoragePoolParametersBase;
-import org.ovirt.engine.core.common.businessentities.StorageType;
+import 
org.ovirt.engine.core.common.action.ConnectHostToStoragePoolServersParameters;
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
+import org.ovirt.engine.core.common.businessentities.StorageType;
 import 
org.ovirt.engine.core.common.vdscommands.StorageServerConnectionManagementVDSParameters;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector;
@@ -21,9 +21,9 @@
 @NonTransactiveCommandAttribute
 @InternalCommandAttribute
 public class ConnectHostToStoragePoolServersCommand extends
-        
ConnectHostToStoragePoolServerCommandBase<HostStoragePoolParametersBase> {
+        
ConnectHostToStoragePoolServerCommandBase<ConnectHostToStoragePoolServersParameters>
 {
 
-    public 
ConnectHostToStoragePoolServersCommand(HostStoragePoolParametersBase 
parameters) {
+    public 
ConnectHostToStoragePoolServersCommand(ConnectHostToStoragePoolServersParameters
 parameters) {
         super(parameters);
         setStoragePool(parameters.getStoragePool());
         setVds(parameters.getVds());
@@ -31,7 +31,7 @@
 
     @Override
     protected void executeCommand() {
-        initConnectionList();
+        initConnectionList(getParameters().isConnectToInactiveDomains());
         setSucceeded(connectStorageServer(getConnectionsTypeMap()));
 
         if (!getSucceeded()) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DisconnectHostFromStoragePoolServersCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DisconnectHostFromStoragePoolServersCommand.java
index e21bba8..86a5ca0 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DisconnectHostFromStoragePoolServersCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DisconnectHostFromStoragePoolServersCommand.java
@@ -27,7 +27,7 @@
 
     @Override
     protected void executeCommand() {
-        initConnectionList();
+        initConnectionList(true);
 
         for (Map.Entry<StorageType, List<StorageServerConnections>> 
connectionToType : getConnectionsTypeMap().entrySet()) {
             disconnectStorageByType(connectionToType.getKey(), 
connectionToType.getValue());
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ConnectHostToStoragePoolServersParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ConnectHostToStoragePoolServersParameters.java
new file mode 100644
index 0000000..911a82a
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ConnectHostToStoragePoolServersParameters.java
@@ -0,0 +1,33 @@
+package org.ovirt.engine.core.common.action;
+
+import org.ovirt.engine.core.common.businessentities.StoragePool;
+import org.ovirt.engine.core.common.businessentities.VDS;
+
+public class ConnectHostToStoragePoolServersParameters extends 
HostStoragePoolParametersBase {
+    private boolean connectToInactiveDomains = true;
+
+    public ConnectHostToStoragePoolServersParameters(VDS vds, boolean 
connectToInactiveDomains) {
+        super(vds);
+        this.connectToInactiveDomains = connectToInactiveDomains;
+    }
+
+    public ConnectHostToStoragePoolServersParameters() {
+    }
+
+    public ConnectHostToStoragePoolServersParameters(StoragePool storage_pool, 
VDS vds, boolean connectToInactiveDomains) {
+        super(storage_pool, vds);
+        this.connectToInactiveDomains = connectToInactiveDomains;
+    }
+
+    public ConnectHostToStoragePoolServersParameters(StoragePool storage_pool, 
VDS vds) {
+        super(storage_pool, vds);
+    }
+
+    public boolean isConnectToInactiveDomains() {
+        return connectToInactiveDomains;
+    }
+
+    public void setConnectToInactiveDomains(boolean connectToInactiveDomains) {
+        this.connectToInactiveDomains = connectToInactiveDomains;
+    }
+}


-- 
To view, visit http://gerrit.ovirt.org/27522
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7cdde23f8513afa119af6eeff0a02e77c43395f3
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Liron Ar <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to