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);

Reply via email to