diff --git a/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/TemplateTest.java b/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/TemplateTest.java index 7749c076458..a38b91c3252 100644 --- a/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/TemplateTest.java +++ b/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/TemplateTest.java @@ -61,7 +61,7 @@ public class TemplateTest extends CloudStackTestNGBase { @Inject DownloadMonitorImpl downloadMonitor; - + long dcId; long templateId; @@ -134,4 +134,23 @@ public class TemplateTest extends CloudStackTestNGBase { } } + // @Test + public void deleteTemplate() { + TemplateInfo template = templateFactory.getTemplate(templateId); + DataStore store = dataStoreMgr.getImageStore(dcId); + AsyncCallFuture future = new AsyncCallFuture(); + templateSvr.deleteTemplateAsync(template); + try { + TemplateApiResult result = future.get(); + assertTrue(result.isSuccess(), "failed to delete template: " + result.getResult()); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + assertTrue(false, e.getMessage()); + } catch (ExecutionException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + assertTrue(false, e.getMessage()); + } + } } diff --git a/engine/storage/integration-test/test/resource/testng.xml b/engine/storage/integration-test/test/resource/testng.xml index dbadae1dde1..4b074487b4c 100644 --- a/engine/storage/integration-test/test/resource/testng.xml +++ b/engine/storage/integration-test/test/resource/testng.xml @@ -27,8 +27,8 @@ - - + + diff --git a/server/src/com/cloud/storage/download/DownloadListener.java b/server/src/com/cloud/storage/download/DownloadListener.java index 84c51b1ffdb..001b45dc1c4 100755 --- a/server/src/com/cloud/storage/download/DownloadListener.java +++ b/server/src/com/cloud/storage/download/DownloadListener.java @@ -99,7 +99,7 @@ public class DownloadListener implements Listener { public static final Logger s_logger = Logger.getLogger(DownloadListener.class.getName()); public static final int SMALL_DELAY = 100; - public static final long STATUS_POLL_INTERVAL = 300000L; //10000L; + public static final long STATUS_POLL_INTERVAL = 10000L; public static final String DOWNLOADED=Status.DOWNLOADED.toString(); public static final String NOT_DOWNLOADED=Status.NOT_DOWNLOADED.toString(); diff --git a/server/src/com/cloud/template/HypervisorTemplateAdapter.java b/server/src/com/cloud/template/HypervisorTemplateAdapter.java index 973b558e162..35bc5e5d678 100755 --- a/server/src/com/cloud/template/HypervisorTemplateAdapter.java +++ b/server/src/com/cloud/template/HypervisorTemplateAdapter.java @@ -193,13 +193,20 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase { } } - protected Void createTemplateAsyncCallBack(AsyncCallbackDispatcher callback, CreateTemplateContext context) { - TemplateInfo template = context.template; - VMTemplateVO tmplt = this._tmpltDao.findById(template.getId()); - long accountId = tmplt.getAccountId(); - if (template.getSize() != null) { - _resourceLimitMgr.incrementResourceCount(accountId, ResourceType.secondary_storage, template.getSize()); + protected Void createTemplateAsyncCallBack(AsyncCallbackDispatcher callback, + CreateTemplateContext context) { + TemplateApiResult result = callback.getResult(); + TemplateInfo template = context.template; + if (result.isFailed()) { + // failed in creating template, we need to remove those already + // populated template entry + _tmpltDao.remove(template.getId()); + } else { + VMTemplateVO tmplt = this._tmpltDao.findById(template.getId()); + long accountId = tmplt.getAccountId(); + if (template.getSize() != null) { + _resourceLimitMgr.incrementResourceCount(accountId, ResourceType.secondary_storage, template.getSize()); + } } return null;