From 9947e688c4d4046774d9a14cb28151cb757a16f5 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Fri, 20 Dec 2013 12:43:06 -0800 Subject: [PATCH] CS-18564: create template from snapshot failed, due to the volume(the snapshot created from) is deleted. --- .../storage/resource/NfsSecondaryStorageResource.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/secondary-storage/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java b/services/secondary-storage/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java index 00c1aac77d7..6964bf4a94b 100755 --- a/services/secondary-storage/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java +++ b/services/secondary-storage/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java @@ -444,7 +444,14 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S File srcFile = getFile(srcData.getPath(), srcDataStore.getUrl()); File destFile = getFile(destData.getPath(), destDataStore.getUrl()); - ImageFormat srcFormat = srcData.getVolume().getFormat(); + VolumeObjectTO volumeObjectTO = srcData.getVolume(); + ImageFormat srcFormat = null; + //TODO: the image format should be stored in snapshot table, instead of getting from volume + if (volumeObjectTO != null) { + srcFormat = volumeObjectTO.getFormat(); + } else { + srcFormat = ImageFormat.QCOW2; + } // get snapshot file name String templateName = srcFile.getName();