From 8766c8ad439da80125fb169d13a098f23fd823de Mon Sep 17 00:00:00 2001 From: Mike Tutkowski Date: Mon, 20 Oct 2014 15:48:29 -0600 Subject: [PATCH] Improve error handling for a host-side error --- .../storage/test/FakePrimaryDataStoreDriver.java | 2 +- .../snapshot/StorageSystemSnapshotStrategy.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/FakePrimaryDataStoreDriver.java b/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/FakePrimaryDataStoreDriver.java index 18637b0466c..4810fbd91e3 100644 --- a/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/FakePrimaryDataStoreDriver.java +++ b/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/FakePrimaryDataStoreDriver.java @@ -49,7 +49,7 @@ public class FakePrimaryDataStoreDriver implements PrimaryDataStoreDriver { } @Override - public boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore) { return false; } + public boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore) { return false; } @Override public void revokeAccess(DataObject dataObject, Host host, DataStore dataStore) {} diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java index 1ba9d582def..a36afd3e261 100644 --- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java +++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java @@ -245,6 +245,19 @@ public class StorageSystemSnapshotStrategy extends SnapshotStrategyBase { } } + if (snapshotAndCopyAnswer == null || !snapshotAndCopyAnswer.getResult()) { + final String errMsg; + + if (snapshotAndCopyAnswer != null && snapshotAndCopyAnswer.getDetails() != null && !snapshotAndCopyAnswer.getDetails().isEmpty()) { + errMsg = snapshotAndCopyAnswer.getDetails(); + } + else { + errMsg = "Unable to perform host-side operation"; + } + + throw new CloudRuntimeException(errMsg); + } + String path = snapshotAndCopyAnswer.getPath(); // for XenServer, this is the VDI's UUID SnapshotDetailsVO snapshotDetail = new SnapshotDetailsVO(snapshotInfo.getId(),