@@ -452,7 +452,7 @@ public Answer execute(CreateDatadiskTemplateCommand cmd) {
452452 OVFHelper ovfHelper = new OVFHelper ();
453453 ovfHelper .rewriteOVFFile (ovfFilePath + ".orig" , newOvfFilePath , diskName );
454454
455- postCreatePrivateTemplate (newTmplDirAbsolute , templateId , templateUniqueName , physicalSize , virtualSize );
455+ postCreatePrivateTemplate (diskName , newTmplDirAbsolute , templateId , templateUniqueName , physicalSize , virtualSize );
456456 writeMetaOvaForTemplate (newTmplDirAbsolute , ovfFilePath .substring (ovfFilePath .lastIndexOf (File .separator ) + 1 ), diskName , templateUniqueName , physicalSize );
457457
458458 diskTemplate .setId (templateId );
@@ -526,47 +526,68 @@ private static String getTemplateRelativeDirInSecStorage(long accountId, long te
526526 return "template/tmpl/" + accountId + "/" + templateId ;
527527 }
528528
529- private void postCreatePrivateTemplate (String installFullPath , long templateId , String templateName , long size , long virtualSize ) throws Exception {
530-
529+ private void postCreatePrivateTemplate (final String diskName , final String installFullPath , final long templateId , final String templateName , final long size , final long virtualSize ) throws Exception {
531530 // TODO a bit ugly here
532- BufferedWriter out = null ;
533- try {
534- out = new BufferedWriter (new OutputStreamWriter (new FileOutputStream (installFullPath + "/template.properties" ), "UTF-8" ));
535- out .write ("filename=" + templateName + ".ova" );
536- out .newLine ();
537- out .write ("description=" );
538- out .newLine ();
539- out .write ("checksum=" );
540- out .newLine ();
541- out .write ("hvm=false" );
542- out .newLine ();
543- out .write ("size=" + size );
544- out .newLine ();
545- //out.write("ova=true");
546- out .write ("ova=false" ); //volss: the real ova file is not created
547- out .newLine ();
548- out .write ("id=" + templateId );
549- out .newLine ();
550- out .write ("public=false" );
551- out .newLine ();
552- out .write ("ova.filename=" + templateName + ".ova" );
553- out .newLine ();
554- out .write ("uniquename=" + templateName );
555- out .newLine ();
556- out .write ("ova.virtualsize=" + virtualSize );
557- out .newLine ();
558- out .write ("virtualsize=" + virtualSize );
559- out .newLine ();
560- out .write ("ova.size=" + size );
561- out .newLine ();
562- } finally {
563- if (out != null ) {
564- out .close ();
565- }
566- }
567- }
568-
569- private void writeMetaOvaForTemplate (String installFullPath , String ovfFilename , String vmdkFilename , String templateName , long diskSize ) throws Exception {
531+ try (BufferedWriter out = new BufferedWriter (new OutputStreamWriter (new FileOutputStream (installFullPath + "/template.properties" ), "UTF-8" ));) {
532+ if (diskName .endsWith ("iso" )) {
533+ out .write ("filename=" + diskName );
534+ out .newLine ();
535+ out .write ("iso.filename=" + diskName );
536+ out .newLine ();
537+ out .write ("uniquename=" + diskName .substring (diskName .lastIndexOf ('.' ) + 1 ));
538+ out .newLine ();
539+ out .write ("description=privateIso" );
540+ out .newLine ();
541+ out .write ("iso.virtualsize=" + virtualSize );
542+ out .newLine ();
543+ out .write ("virtualsize=" + virtualSize );
544+ out .newLine ();
545+ out .write ("iso.size=" + size );
546+ out .newLine ();
547+ out .write ("checksum=" );
548+ out .newLine ();
549+ out .write ("hvm=false" );
550+ out .newLine ();
551+ out .write ("size=" + size );
552+ out .newLine ();
553+ out .write ("iso=true" );
554+ out .newLine ();
555+ out .write ("id=" + templateId );
556+ out .newLine ();
557+ out .write ("public=false" );
558+ out .newLine ();
559+ } else {
560+ out .write ("filename=" + diskName );
561+ out .newLine ();
562+ out .write ("description=privateVmdk" );
563+ out .newLine ();
564+ out .write ("checksum=" );
565+ out .newLine ();
566+ out .write ("hvm=false" );
567+ out .newLine ();
568+ out .write ("size=" + size );
569+ out .newLine ();
570+ out .write ("vmdk=false" );
571+ out .newLine ();
572+ out .write ("id=" + templateId );
573+ out .newLine ();
574+ out .write ("public=false" );
575+ out .newLine ();
576+ out .write ("vmdk.filename=" + diskName );
577+ out .newLine ();
578+ out .write ("uniquename=" + diskName .substring (diskName .lastIndexOf ('.' ) + 1 ));
579+ out .newLine ();
580+ out .write ("vmdk.virtualsize=" + virtualSize );
581+ out .newLine ();
582+ out .write ("virtualsize=" + virtualSize );
583+ out .newLine ();
584+ out .write ("vmdk.size=" + size );
585+ out .newLine ();
586+ }
587+ }
588+ }
589+
590+ private void writeMetaOvaForTemplate (final String installFullPath , final String ovfFilename , final String vmdkFilename , final String templateName , final long diskSize ) throws Exception {
570591
571592 // TODO a bit ugly here
572593 BufferedWriter out = null ;
0 commit comments