You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mc...@apache.org on 2013/07/25 02:51:42 UTC
git commit: updated refs/heads/master to 44cae46
Updated Branches:
refs/heads/master 2b1266e27 -> 44cae4601
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/44cae460
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/44cae460
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/44cae460
Branch: refs/heads/master
Commit: 44cae460147898186a56d7d022c734e3ac86e4dc
Parents: 2b1266e
Author: Min Chen <mi...@citrix.com>
Authored: Wed Jul 24 17:49:10 2013 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Wed Jul 24 17:51:28 2013 -0700
----------------------------------------------------------------------
.../resource/NfsSecondaryStorageResource.java | 23 ++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/44cae460/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);