From 736bf540e8ef759a101d221622c64f3b3c3ed425 Mon Sep 17 00:00:00 2001 From: Logan B Date: Fri, 20 Jun 2014 13:27:32 -0400 Subject: [PATCH] Changed logic for copying snapshot from S3 to NFS staging store to prevent needless failure. Signed-off-by: Daan Hoogland --- .../resource/NfsSecondaryStorageResource.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java index 6927f028cf2..78f4bf19a91 100755 --- a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java +++ b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java @@ -340,12 +340,14 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S String downloadPath = determineStorageTemplatePath(storagePath, destPath); final File downloadDirectory = _storage.getFile(downloadPath); - if (!downloadDirectory.mkdirs()) { - final String errMsg = "Unable to create directory " + downloadPath + " to copy from S3 to cache."; - s_logger.error(errMsg); - return new CopyCmdAnswer(errMsg); - } else { + if (downloadDirectory.exists()) { s_logger.debug("Directory " + downloadPath + " already exists"); + } else { + if (!downloadDirectory.mkdirs()) { + final String errMsg = "Unable to create directory " + downloadPath + " to copy from S3 to cache."; + s_logger.error(errMsg); + return new CopyCmdAnswer(errMsg); + } } File destFile = S3Utils.getFile(s3, s3.getBucketName(), srcData.getPath(), downloadDirectory, new FileNamingStrategy() {