From 93ce108e0c26da079e8dabb107104dbd76be3799 Mon Sep 17 00:00:00 2001 From: SudharmaJain Date: Thu, 24 Sep 2015 11:41:54 +0530 Subject: [PATCH] CLOUDSTACK-8901: PrepareTemplate job thread hard-coded to max 8 threads --- .../src/com/cloud/template/TemplateManager.java | 7 +++++++ server/src/com/cloud/template/TemplateManagerImpl.java | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/engine/components-api/src/com/cloud/template/TemplateManager.java b/engine/components-api/src/com/cloud/template/TemplateManager.java index 5987ac0ee5b..5b2d64ad5a3 100644 --- a/engine/components-api/src/com/cloud/template/TemplateManager.java +++ b/engine/components-api/src/com/cloud/template/TemplateManager.java @@ -38,9 +38,16 @@ import com.cloud.vm.VirtualMachineProfile; */ public interface TemplateManager { static final String AllowPublicUserTemplatesCK = "allow.public.user.templates"; + static final String TemplatePreloaderPoolSizeCK = "template.preloader.pool.size"; + static final ConfigKey AllowPublicUserTemplates = new ConfigKey("Advanced", Boolean.class, AllowPublicUserTemplatesCK, "true", "If false, users will not be able to create public templates.", true, ConfigKey.Scope.Account); + static final ConfigKey TemplatePreloaderPoolSize = new ConfigKey("Advanced", Integer.class, TemplatePreloaderPoolSizeCK, "8", + "Size of the TemplateManager threadpool", false, ConfigKey.Scope.Global); + + + /** * Prepares a template for vm creation for a certain storage pool. * diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java index e6141425dfe..4b27c8b326c 100644 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -926,7 +926,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager, String disableExtraction = _configDao.getValue(Config.DisableExtraction.toString()); _disableExtraction = (disableExtraction == null) ? false : Boolean.parseBoolean(disableExtraction); - _preloadExecutor = Executors.newFixedThreadPool(8, new NamedThreadFactory("Template-Preloader")); + _preloadExecutor = Executors.newFixedThreadPool(TemplatePreloaderPoolSize.value(), new NamedThreadFactory("Template-Preloader")); return true; } @@ -1975,7 +1975,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager, @Override public ConfigKey[] getConfigKeys() { - return new ConfigKey[] {AllowPublicUserTemplates}; + return new ConfigKey[] {AllowPublicUserTemplates, TemplatePreloaderPoolSize}; } public List getTemplateAdapters() {