Fix CLOUDSTACK-2485: ClassCastException in extracting ISO.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/252f384e Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/252f384e Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/252f384e Branch: refs/heads/object_store Commit: 252f384e89c85f373d69a9586d451f64217aaac7 Parents: 95e7e27 Author: Min Chen <[email protected]> Authored: Tue May 14 14:56:26 2013 -0700 Committer: Min Chen <[email protected]> Committed: Tue May 14 14:57:02 2013 -0700 ---------------------------------------------------------------------- .../storage/image/datastore/ImageStoreEntity.java | 1 + .../storage/image/store/ImageStoreImpl.java | 5 +++-- .../cloud/storage/upload/UploadMonitorImpl.java | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/252f384e/engine/api/src/org/apache/cloudstack/storage/image/datastore/ImageStoreEntity.java ---------------------------------------------------------------------- diff --git a/engine/api/src/org/apache/cloudstack/storage/image/datastore/ImageStoreEntity.java b/engine/api/src/org/apache/cloudstack/storage/image/datastore/ImageStoreEntity.java index fb1b1d7..9adcfb1 100644 --- a/engine/api/src/org/apache/cloudstack/storage/image/datastore/ImageStoreEntity.java +++ b/engine/api/src/org/apache/cloudstack/storage/image/datastore/ImageStoreEntity.java @@ -34,4 +34,5 @@ public interface ImageStoreEntity extends DataStore, ImageStore { SnapshotInfo getSnapshot(long snapshotId); boolean exists(DataObject object); Set<TemplateInfo> listTemplates(); + String getMountPoint(); // get the mount point on ssvm. } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/252f384e/engine/storage/image/src/org/apache/cloudstack/storage/image/store/ImageStoreImpl.java ---------------------------------------------------------------------- diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/store/ImageStoreImpl.java b/engine/storage/image/src/org/apache/cloudstack/storage/image/store/ImageStoreImpl.java index 5afe059..1b4dddc 100644 --- a/engine/storage/image/src/org/apache/cloudstack/storage/image/store/ImageStoreImpl.java +++ b/engine/storage/image/src/org/apache/cloudstack/storage/image/store/ImageStoreImpl.java @@ -177,8 +177,9 @@ public class ImageStoreImpl implements ImageStoreEntity { return getDriver().getStoreTO(this); } - public ImageStoreVO getImageStoreVO(){ - return this.imageDataStoreVO; + @Override + public String getMountPoint(){ + return this.imageDataStoreVO.getParent(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/252f384e/server/src/com/cloud/storage/upload/UploadMonitorImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/upload/UploadMonitorImpl.java b/server/src/com/cloud/storage/upload/UploadMonitorImpl.java index b944b76..b9cee66 100755 --- a/server/src/com/cloud/storage/upload/UploadMonitorImpl.java +++ b/server/src/com/cloud/storage/upload/UploadMonitorImpl.java @@ -38,6 +38,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint; import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector; import org.apache.cloudstack.storage.datastore.db.ImageStoreVO; import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO; +import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; @@ -229,7 +230,7 @@ public class UploadMonitorImpl extends ManagerBase implements UploadMonitor { // Create Symlink at ssvm String path = vmTemplateHost.getInstallPath(); String uuid = UUID.randomUUID().toString() + "." + template.getFormat().getFileExtension(); // adding "." + vhd/ova... etc. - CreateEntityDownloadURLCommand cmd = new CreateEntityDownloadURLCommand(((ImageStoreVO)store).getParent(), path, uuid); + CreateEntityDownloadURLCommand cmd = new CreateEntityDownloadURLCommand(((ImageStoreEntity)store).getMountPoint(), path, uuid); Answer ans = ep.sendMessage(cmd); if (ans == null || !ans.getResult()) { errorString = "Unable to create a link for " +type+ " id:"+template.getId() + "," + ans.getDetails();
