public static PlatformSyncInfo buildPlatformSyncInfo(Resource platform) { Set<Integer> toplevelServerIds = new HashSet<Integer>(); for (Resource r : platform.getChildResources()) { if (r.getResourceType().getCategory().equals(ResourceCategory.SERVER)) { toplevelServerIds.add(r.getId()); } } ResourceSyncInfo resSyncInfo = ResourceSyncInfo.buildResourceSyncInfo(platform); PlatformSyncInfo syncInfo = new PlatformSyncInfo(resSyncInfo, new HashSet<ResourceSyncInfo>(1), toplevelServerIds); return syncInfo; } }
@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? }
ResourceSyncInfo platformResourceSyncInfo = platformSyncInfo.getPlatform(); addAllUuids(platformSyncInfo.getServices(), allServerSideUuids); Collection<ResourceSyncInfo> syncInfos = platformSyncInfo.getServices(); 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 + "]"); Collection<Integer> topLevelServerIds = platformSyncInfo.getTopLevelServerIds(); if (null != topLevelServerIds) { DiscoveryServerService service = configuration.getServerServices().getDiscoveryServerService(); log.info("Sync Complete: Platform [" + platformSyncInfo.getPlatform().getId() + "]."); + platformSyncInfo.getPlatform().getId() + "]");
@Override public PlatformSyncInfo getPlatformSyncInfo(Agent knownAgent) { Resource platform = resourceManager.getPlatform(knownAgent); if (null == platform) { return null; } Set<Resource> toplevelServices = new HashSet<Resource>(); Set<Integer> topLevelServerIds = new HashSet<Integer>(); for (Resource platformChild : platform.getChildResources()) { switch (platformChild.getResourceType().getCategory()) { case SERVER: topLevelServerIds.add(platformChild.getId()); break; case SERVICE: toplevelServices.add(platformChild); break; default: break; } } ResourceSyncInfo platformSyncInfo = ResourceSyncInfo.buildResourceSyncInfo(platform); Set<ResourceSyncInfo> topLevelServiceSyncInfo = getToplevelServiceSyncInfo(toplevelServices); PlatformSyncInfo result = new PlatformSyncInfo(platformSyncInfo, topLevelServiceSyncInfo, topLevelServerIds); return result; }