Updated Branches: refs/heads/4.2 e8f1ce3aa -> bfe5a7c6f
CLOUDSTACK-3741: generate template.properties so that KVM processor will not fail with FileNotFound. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/bfe5a7c6 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/bfe5a7c6 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/bfe5a7c6 Branch: refs/heads/4.2 Commit: bfe5a7c6ffb3b5d27d75f1d62da66c489f7b1fe7 Parents: e8f1ce3 Author: Min Chen <[email protected]> Authored: Wed Jul 24 17:49:10 2013 -0700 Committer: Min Chen <[email protected]> Committed: Wed Jul 24 17:49:36 2013 -0700 ---------------------------------------------------------------------- .../resource/NfsSecondaryStorageResource.java | 23 ++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bfe5a7c6/services/secondary-storage/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java ---------------------------------------------------------------------- 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 082fc6c..e7dc62d 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 @@ -423,11 +423,26 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S String destFileFullPath = destFile.getAbsolutePath() + File.separator + templateName + "." + ImageFormat.QCOW2.getFileExtension(); s_logger.debug("copy snapshot " + srcFile.getAbsolutePath() + " to template " + destFileFullPath); Script.runSimpleBashScript("cp " + srcFile.getAbsolutePath() + " " + destFileFullPath); - // template post processing - QCOW2Processor processor = new QCOW2Processor(); - Map<String, Object> params = new HashMap<String, Object>(); - params.put(StorageLayer.InstanceConfigKey, _storage); try { + // generate template.properties file + String metaFileName = destFile.getAbsolutePath() + File.separator + "template.properties"; + _storage.create(destFile.getAbsolutePath(), "template.properties"); + File metaFile = new File(metaFileName); + FileWriter writer = new FileWriter(metaFile); + BufferedWriter bufferWriter = new BufferedWriter(writer); + bufferWriter.write("uniquename=" + destData.getName()); + bufferWriter.write("\n"); + bufferWriter.write("filename=" + templateName + "." + ImageFormat.QCOW2.getFileExtension()); + bufferWriter.write("\n"); + long size = this._storage.getSize(destFileFullPath); + bufferWriter.write("size=" + size); + bufferWriter.close(); + writer.close(); + // template post processing + QCOW2Processor processor = new QCOW2Processor(); + Map<String, Object> params = new HashMap<String, Object>(); + params.put(StorageLayer.InstanceConfigKey, _storage); + processor.configure("qcow2 processor", params); String destPath = destFile.getAbsolutePath(); FormatInfo info = processor.process(destPath, null, templateName);
