@@ -509,13 +509,12 @@ private void createTemplateStoreRefEntry(SystemVMTemplateDetails details) {
509509 }
510510 }
511511
512- public void updateTemplateDetails (SystemVMTemplateDetails details , boolean updateTemplateDetails ) {
512+ public void updateTemplateDetails (SystemVMTemplateDetails details ) {
513513 VMTemplateVO template = vmTemplateDao .findById (details .getId ());
514- if (updateTemplateDetails ) {
515- template .setSize (details .getSize ());
516- template .setState (VirtualMachineTemplate .State .Active );
517- vmTemplateDao .update (template .getId (), template );
518- }
514+ template .setSize (details .getSize ());
515+ template .setState (VirtualMachineTemplate .State .Active );
516+ vmTemplateDao .update (template .getId (), template );
517+
519518 TemplateDataStoreVO templateDataStoreVO = templateDataStoreDao .findByStoreTemplate (details .getStoreId (), template .getId ());
520519 templateDataStoreVO .setSize (details .getSize ());
521520 templateDataStoreVO .setPhysicalSize (details .getPhysicalSize ());
@@ -613,7 +612,7 @@ private void setupTemplate(String templateName, Pair<Hypervisor.HypervisorType,
613612
614613 private Long performTemplateRegistrationOperations (Pair <Hypervisor .HypervisorType , String > hypervisorAndTemplateName ,
615614 String url , String checksum , ImageFormat format , long guestOsId ,
616- Long storeId , Long templateId , String filePath , boolean updateTmpltDetails ) {
615+ Long storeId , Long templateId , String filePath , TemplateDataStoreVO templateDataStoreVO ) {
617616 Hypervisor .HypervisorType hypervisor = hypervisorAndTemplateName .first ();
618617 String templateName = UUID .randomUUID ().toString ();
619618 Date created = new Date (DateUtil .currentGMTTime ().getTime ());
@@ -631,21 +630,24 @@ private Long performTemplateRegistrationOperations(Pair<Hypervisor.HypervisorTyp
631630 String destTempFolderName = String .valueOf (templateId );
632631 String destTempFolder = filePath + PARTIAL_TEMPLATE_FOLDER + destTempFolderName ;
633632 details .setInstallPath (PARTIAL_TEMPLATE_FOLDER + destTempFolderName + File .separator + templateName + "." + hypervisorImageFormat .get (hypervisor ).getFileExtension ());
634- createTemplateStoreRefEntry (details );
633+ if (templateDataStoreVO == null ) {
634+ createTemplateStoreRefEntry (details );
635+ }
635636 setupTemplate (templateName , hypervisorAndTemplateName , destTempFolder );
636637 readTemplateProperties (destTempFolder + "/template.properties" , details );
637638 details .setUpdated (new Date (DateUtil .currentGMTTime ().getTime ()));
638- updateTemplateDetails (details , updateTmpltDetails );
639+ updateTemplateDetails (details );
639640 return templateId ;
640641 }
641642
642643 public void registerTemplate (Pair <Hypervisor .HypervisorType , String > hypervisorAndTemplateName ,
643- Pair <String , Long > storeUrlAndId , VMTemplateVO templateVO , String filePath ) {
644+ Pair <String , Long > storeUrlAndId , VMTemplateVO templateVO ,
645+ TemplateDataStoreVO templateDataStoreVO , String filePath ) {
644646 Long templateId = null ;
645647 try {
646648 templateId = templateVO .getId ();
647649 performTemplateRegistrationOperations (hypervisorAndTemplateName , templateVO .getUrl (), templateVO .getChecksum (),
648- templateVO .getFormat (), templateVO .getGuestOSId (), storeUrlAndId .second (), templateId , filePath , false );
650+ templateVO .getFormat (), templateVO .getGuestOSId (), storeUrlAndId .second (), templateId , filePath , templateDataStoreVO );
649651 } catch (Exception e ) {
650652 String errMsg = String .format ("Failed to register template for hypervisor: %s" , hypervisorAndTemplateName .first ());
651653 LOGGER .error (errMsg , e );
@@ -662,7 +664,7 @@ public void registerTemplate(Pair<Hypervisor.HypervisorType, String> hypervisorA
662664 try {
663665 Hypervisor .HypervisorType hypervisor = hypervisorAndTemplateName .first ();
664666 templateId = performTemplateRegistrationOperations (hypervisorAndTemplateName , NewTemplateUrl .get (hypervisor ), NewTemplateChecksum .get (hypervisor ),
665- hypervisorImageFormat .get (hypervisor ), hypervisorGuestOsMap .get (hypervisor ), storeUrlAndId .second (), null , filePath , true );
667+ hypervisorImageFormat .get (hypervisor ), hypervisorGuestOsMap .get (hypervisor ), storeUrlAndId .second (), null , filePath , null );
666668 Map <String , String > configParams = new HashMap <>();
667669 configParams .put (RouterTemplateConfigurationNames .get (hypervisorAndTemplateName .first ()), hypervisorAndTemplateName .second ());
668670 configParams .put ("minreq.sysvmtemplate.version" , getSystemVmTemplateVersion ());
@@ -783,7 +785,7 @@ public void doInTransactionWithoutResult(final TransactionStatus status) {
783785 if (validateIfSeeded (storeUrlAndId .first (), installPath )) {
784786 continue ;
785787 } else if (templateVO != null ) {
786- registerTemplate (hypervisorAndTemplateName , storeUrlAndId , templateVO , filePath );
788+ registerTemplate (hypervisorAndTemplateName , storeUrlAndId , templateVO , templateDataStoreVO , filePath );
787789 continue ;
788790 }
789791 }
0 commit comments