@@ -1617,43 +1617,34 @@ private DirectTemplateDownloader getDirectTemplateDownloaderFromCommand(DirectDo
16171617 public Answer handleDownloadTemplateToPrimaryStorage (DirectDownloadCommand cmd ) {
16181618 final PrimaryDataStoreTO pool = cmd .getDestPool ();
16191619 if (!pool .getPoolType ().equals (StoragePoolType .NetworkFilesystem )) {
1620- return new DirectDownloadAnswer (false , "Unsupported pool type " + pool .getPoolType ().toString ());
1620+ return new DirectDownloadAnswer (false , "Unsupported pool type " + pool .getPoolType ().toString (), true );
16211621 }
16221622 KVMStoragePool destPool = storagePoolMgr .getStoragePool (pool .getPoolType (), pool .getUuid ());
16231623 DirectTemplateDownloader downloader ;
16241624
16251625 try {
16261626 downloader = getDirectTemplateDownloaderFromCommand (cmd , destPool );
16271627 } catch (IllegalArgumentException e ) {
1628- return new DirectDownloadAnswer (false , "Unable to create direct downloader: " + e .getMessage ());
1628+ return new DirectDownloadAnswer (false , "Unable to create direct downloader: " + e .getMessage (), true );
16291629 }
16301630
1631- int retries = 3 ;
1632- boolean ok = false ;
1633- do {
1634- try {
1635- retries --;
1636- s_logger .info ("Trying to download template, retries left: " + retries );
1637- if (!downloader .downloadTemplate ()) {
1638- s_logger .warn ("Couldn't download template" );
1639- continue ;
1640- }
1641- if (!downloader .validateChecksum ()) {
1642- s_logger .warn ("Couldn't validate template checksum" );
1643- continue ;
1644- }
1645- if (!downloader .extractAndInstallDownloadedTemplate ()) {
1646- s_logger .warn ("Couldn't extract and install template" );
1647- continue ;
1648- }
1649- ok = true ;
1650- } catch (CloudRuntimeException e ) {
1651- s_logger .warn ("Error downloading template " + cmd .getTemplateId () + " due to: " + e .getMessage () + " retries left: " + retries );
1631+ try {
1632+ s_logger .info ("Trying to download template" );
1633+ if (!downloader .downloadTemplate ()) {
1634+ s_logger .warn ("Couldn't download template" );
1635+ return new DirectDownloadAnswer (false , "Unable to download template" , true );
16521636 }
1653- } while (!ok && retries > 0 );
1654-
1655- if (!ok ) {
1656- return new DirectDownloadAnswer (false , "Unable to download template " + cmd .getTemplateId ());
1637+ if (!downloader .validateChecksum ()) {
1638+ s_logger .warn ("Couldn't validate template checksum" );
1639+ return new DirectDownloadAnswer (false , "Checksum validation failed" , false );
1640+ }
1641+ if (!downloader .extractAndInstallDownloadedTemplate ()) {
1642+ s_logger .warn ("Couldn't extract and install template" );
1643+ return new DirectDownloadAnswer (false , "Extraction and installation failed" , false );
1644+ }
1645+ } catch (CloudRuntimeException e ) {
1646+ s_logger .warn ("Error downloading template " + cmd .getTemplateId () + " due to: " + e .getMessage ());
1647+ return new DirectDownloadAnswer (false , "Unable to download template: " + e .getMessage (), true );
16571648 }
16581649
16591650 DirectTemplateInformation info = downloader .getTemplateInformation ();
0 commit comments