private void getToplevelServiceSyncInfoHierarchy(Set<Integer> parentIds, Set<ResourceSyncInfo> result) { if (parentIds.isEmpty()) { return; } Query q = entityManager.createNamedQuery(ResourceSyncInfo.QUERY_SERVICE_CHILDREN); q.setParameter("parentIds", parentIds); List<ResourceSyncInfo> childSyncInfos = q.getResultList(); if (!childSyncInfos.isEmpty()) { result.addAll(childSyncInfos); Set<Integer> childIds = new HashSet<Integer>(childSyncInfos.size()); for (ResourceSyncInfo childSyncInfo : childSyncInfos) { childIds.add(childSyncInfo.getId()); } getToplevelServiceSyncInfoHierarchy(childIds, result); } }
@Override public void synchronizePlatform(PlatformSyncInfo syncInfo) { syncPlatform(syncInfo); performServiceScan(syncInfo.getPlatform().getId()); // NOTE: This will block (the initial scan blocks). // TODO: (jshaughn) should we also request a full avail scan? }
syncInfos.add(platformResourceSyncInfo); log.info("Sync Starting: Platform [" + platformSyncInfo.getPlatform().getId() + "]"); log.info("Sync Starting: Platform Top level services [" + platformSyncInfo.getPlatform().getId() + "]"); boolean hadSyncedResources = syncResources(platformResourceSyncInfo.getId(), syncInfos); log.info("Sync Complete: Platform Top level services [" + platformSyncInfo.getPlatform().getId() + "] Local inventory changed: [" + hadSyncedResources + "]"); log.info("Sync Complete: Platform [" + platformSyncInfo.getPlatform().getId() + "]."); + platformSyncInfo.getPlatform().getId() + "]");
resourceIdList.add(syncInfo.getId());
deletedResourceIds.add(syncInfo.getId()); } else { ResourceContainer container = getResourceContainer(syncInfo.getUuid()); unknownResourceSyncInfos.add(syncInfo); } else { log.info("Got an unknown but ignored resource - ignoring it: " + syncInfo.getId()); log.debug("Local Resource: id=" + resource.getId() + ", status=" + resource.getInventoryStatus() + ", mtime=" + resource.getMtime()); log.debug("Sync Resource: " + syncInfo.getId() + ", status=" + syncInfo.getInventoryStatus() + ", mtime=" + syncInfo.getMtime()); resource.setId(syncInfo.getId()); resource.setMtime(syncInfo.getMtime()); resource.setInventoryStatus(syncInfo.getInventoryStatus()); } else { if (resource.getId() != syncInfo.getId()) { + ") does not match Server Resource id (" + syncInfo.getId() + ") for Resource with uuid " + resource.getUuid() + ": " + resource); modifiedResourceIds.add(syncInfo.getId());