Tal Nisan has uploaded a new change for review.

Change subject: core: Extending SAN storage caused an NPE for a storage 
detached from a pool
......................................................................

core: Extending SAN storage caused an NPE for a storage detached from a pool

Extending a SAN storage domain that is detached from a storage pool caused
an NPE due to a bug in the CDA part which caused the CDA evaluation to
continue even though the status validation failed

Change-Id: I4f6687bfe8390142519c2d641badc79fe6a1e0db
Bug-Url: https://bugzilla.redhat.com/1061121
Signed-off-by: Tal Nisan <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendSANStorageDomainCommand.java
1 file changed, 27 insertions(+), 25 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/69/25169/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendSANStorageDomainCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendSANStorageDomainCommand.java
index c1ff65ef..cab44f2 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendSANStorageDomainCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendSANStorageDomainCommand.java
@@ -75,32 +75,34 @@
             return false;
         }
 
-        boolean returnValue = checkStorageDomain() && 
checkStorageDomainStatus(StorageDomainStatus.Active);
-        if (returnValue
-                && (getStorageDomain().getStorageType() == StorageType.NFS || 
getStorageDomain().getStorageType() == StorageType.UNKNOWN)) {
-            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_ILLEGAL);
-            returnValue = false;
-        } else {
-            final ConnectAllHostsToLunCommandReturnValue connectResult =
-                    (ConnectAllHostsToLunCommandReturnValue) 
Backend.getInstance().runInternalAction(
-                            VdcActionType.ConnectAllHostsToLun,
-                            new 
ExtendSANStorageDomainParameters(getParameters().getStorageDomainId(), 
getParameters()
-                                    .getLunIds()));
-            if (!connectResult.getSucceeded()) {
-                
addCanDoActionMessage(VdcBllMessages.ERROR_CANNOT_EXTEND_CONNECTION_FAILED);
-                if (connectResult.getFailedVds() != null) {
-                    
getReturnValue().getCanDoActionMessages().add(String.format("$hostName %1s",
-                            connectResult.getFailedVds().getName()));
-                }
-                String lunId = connectResult.getFailedLun() != null ? 
connectResult.getFailedLun().getLUN_id() : "";
-                
getReturnValue().getCanDoActionMessages().add(String.format("$lun %1s", lunId));
-                returnValue = false;
-            } else {
-                // use luns list from connect command
-                getParameters().setLunsList((ArrayList<LUNs>) 
connectResult.getActionReturnValue());
-            }
+        if (!(checkStorageDomain() && 
checkStorageDomainStatus(StorageDomainStatus.Active))) {
+            return false;
         }
-        return returnValue;
+
+        if ((getStorageDomain().getStorageType() == StorageType.NFS || 
getStorageDomain().getStorageType() == StorageType.UNKNOWN)) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_ILLEGAL);
+            return false;
+        }
+
+        final ConnectAllHostsToLunCommandReturnValue connectResult =
+                (ConnectAllHostsToLunCommandReturnValue) 
Backend.getInstance().runInternalAction(
+                        VdcActionType.ConnectAllHostsToLun,
+                        new 
ExtendSANStorageDomainParameters(getParameters().getStorageDomainId(), 
getParameters()
+                                .getLunIds()));
+        if (!connectResult.getSucceeded()) {
+            
addCanDoActionMessage(VdcBllMessages.ERROR_CANNOT_EXTEND_CONNECTION_FAILED);
+            if (connectResult.getFailedVds() != null) {
+                
getReturnValue().getCanDoActionMessages().add(String.format("$hostName %1s",
+                        connectResult.getFailedVds().getName()));
+            }
+            String lunId = connectResult.getFailedLun() != null ? 
connectResult.getFailedLun().getLUN_id() : "";
+            getReturnValue().getCanDoActionMessages().add(String.format("$lun 
%1s", lunId));
+            return false;
+        } else {
+            // use luns list from connect command
+            getParameters().setLunsList((ArrayList<LUNs>) 
connectResult.getActionReturnValue());
+        }
+        return true;
     }
 
     @Override


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

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

Reply via email to