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 fd191bf12bf..a854d2ef415 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()) {