From 4a3deefd028ddc493c700622b8d4631c10feb44c Mon Sep 17 00:00:00 2001 From: anthony Date: Fri, 28 Oct 2011 16:49:24 -0700 Subject: [PATCH] Swift : template sync fix --- .../cloud/template/TemplateManagerImpl.java | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java index bd52481e76f..8dd704697a5 100755 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -827,29 +827,28 @@ public class TemplateManagerImpl implements TemplateManager, Manager, TemplateSe List templates = _tmpltDao.listByHypervisorType(hypers); List templateIds = new ArrayList(); for (VMTemplateVO template : templates) { - templateIds.add(template.getId()); + if (template.getTemplateType() != TemplateType.PERHOST) { + templateIds.add(template.getId()); + } + } + List templtSwiftRefs = _tmpltSwiftDao.listAll(); + for (VMTemplateSwiftVO templtSwiftRef : templtSwiftRefs) { + templateIds.remove((Long) templtSwiftRef.getTemplateId()); + } + if (templateIds.size() < 1) { + return; } if (swiftTemplateSyncLock.lock(3)) { try { List templtHostRefs = _tmpltHostDao.listByState(VMTemplateHostVO.Status.DOWNLOADED); - List templtSwiftRefs = _tmpltSwiftDao.listAll(); for (VMTemplateHostVO templtHostRef : templtHostRefs) { - if (!templateIds.contains(templtHostRef.getId())) { + if (!templateIds.contains(templtHostRef.getTemplateId())) { continue; } - boolean found = false; - for (VMTemplateSwiftVO templtSwiftRef : templtSwiftRefs) { - if (templtHostRef.getTemplateId() == templtSwiftRef.getTemplateId()) { - found = true; - break; - } - } - if (!found) { - try { - uploadTemplateToSwiftFromSecondaryStorage(templtHostRef); - } catch (Exception e) { - s_logger.debug("failed to upload template " + templtHostRef.getTemplateId() + " to Swift due to " + e.toString()); - } + try { + uploadTemplateToSwiftFromSecondaryStorage(templtHostRef); + } catch (Exception e) { + s_logger.debug("failed to upload template " + templtHostRef.getTemplateId() + " to Swift due to " + e.toString()); } } } catch (Throwable e) {