You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mc...@apache.org on 2013/08/21 01:01:49 UTC

git commit: updated refs/heads/master to fea7d21

Updated Branches:
  refs/heads/master 72299f49f -> fea7d21dc


CLOUDSTACK-4412: NPE while trying to force delete zone wide primary
storage when volumes are present.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fea7d21d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fea7d21d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fea7d21d

Branch: refs/heads/master
Commit: fea7d21dcda9793419894736281567f2183dda3c
Parents: 72299f4
Author: Min Chen <mi...@citrix.com>
Authored: Tue Aug 20 14:56:13 2013 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Tue Aug 20 16:01:38 2013 -0700

----------------------------------------------------------------------
 .../CloudStackPrimaryDataStoreDriverImpl.java   | 30 ++++++++++++++++----
 1 file changed, 25 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fea7d21d/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java
index fd191bf..a854d2e 100644
--- a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java
+++ b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java
@@ -92,7 +92,14 @@ public class CloudStackPrimaryDataStoreDriverImpl implements PrimaryDataStoreDri
 
         CreateObjectCommand cmd = new CreateObjectCommand(volume.getTO());
         EndPoint ep = epSelector.select(volume);
-        Answer answer = ep.sendMessage(cmd);
+        Answer answer = null;
+        if ( ep == null ){
+            String errMsg = "No remote endpoint to send DeleteCommand, check if host or ssvm is down?";
+            s_logger.error(errMsg);
+            answer = new Answer(cmd, false, errMsg);
+        } else{
+            answer = ep.sendMessage(cmd);
+        }
         return answer;
     }
 
@@ -139,9 +146,15 @@ public class CloudStackPrimaryDataStoreDriverImpl implements PrimaryDataStoreDri
         CommandResult result = new CommandResult();
         try {
             EndPoint ep = epSelector.select(data);
-            Answer answer = ep.sendMessage(cmd);
-            if (answer != null && !answer.getResult()) {
-                result.setResult(answer.getDetails());
+            if ( ep == null ){
+                String errMsg = "No remote endpoint to send DeleteCommand, check if host or ssvm is down?";
+                s_logger.error(errMsg);
+                result.setResult(errMsg);
+            } else {
+                Answer answer = ep.sendMessage(cmd);
+                if (answer != null && !answer.getResult()) {
+                    result.setResult(answer.getDetails());
+                }
             }
         } catch (Exception ex) {
             s_logger.debug("Unable to destoy volume" + data.getId(), ex);
@@ -168,7 +181,14 @@ public class CloudStackPrimaryDataStoreDriverImpl implements PrimaryDataStoreDri
 
             CreateObjectCommand cmd = new CreateObjectCommand(snapshotTO);
             EndPoint ep = this.epSelector.select(snapshot);
-            Answer answer = ep.sendMessage(cmd);
+            Answer answer = null;
+            if ( ep == null ){
+                String errMsg = "No remote endpoint to send DeleteCommand, check if host or ssvm is down?";
+                s_logger.error(errMsg);
+                answer = new Answer(cmd, false, errMsg);
+            } else{
+                answer = ep.sendMessage(cmd);
+            }
 
             result = new CreateCmdResult(null, answer);
             if (answer != null && !answer.getResult()) {