317 boolean isVDSMode = CacheRefreshUpdateMethod.VDS.equals(updateMethod);
320 log.info(
"Attempting to load entries from source server");
321 List<GluuSimplePerson> sourcePersons;
323 if (cacheRefreshConfiguration.isUseSearchLimit()) {
329 log.info(
"Found '{}' entries in source server", sourcePersons.size());
331 Map<CacheCompoundKey, GluuSimplePerson> sourcePersonCacheCompoundKeyMap =
getSourcePersonCompoundKeyMap(cacheRefreshConfiguration, sourcePersons);
332 log.info(
"Found '{}' unique entries in source server", sourcePersonCacheCompoundKeyMap.size());
335 List<GluuInumMap> inumMaps = null;
340 if (loadedObject != null) {
342 inumMaps = (List<GluuInumMap>) loadedObject;
343 log.debug(
"Found '{}' entries in inum objects disk cache", inumMaps.size());
344 }
catch (Exception ex) {
345 log.error(
"Failed to convert to GluuInumMap list", ex);
350 if (inumMaps == null) {
353 log.info(
"Found '{}' entries in inum server", inumMaps.size());
359 HashMap<CacheCompoundKey, GluuInumMap> addedPrimaryKeyAttrValueInumMap =
addNewInumServerEntries(cacheRefreshConfiguration, inumDbServerConnection,
360 sourcePersonCacheCompoundKeyMap, primaryKeyAttrValueInumMap);
362 HashMap<CacheCompoundKey, GluuInumMap> allPrimaryKeyAttrValueInumMap =
getAllInumServerEntries(primaryKeyAttrValueInumMap,
363 addedPrimaryKeyAttrValueInumMap);
364 log.debug(
"Count actual inum entries '{}' after updating inum server", allPrimaryKeyAttrValueInumMap.size());
367 sourcePersonCacheCompoundKeyMap, allPrimaryKeyAttrValueInumMap);
368 log.debug(
"Count actual source entries '{}' after calculating hash code", currInumWithEntryHashCodeMap.size());
380 Set<String> changedInums =
getChangedInums(currInumWithEntryHashCodeMap, prevInumWithEntryHashCodeMap, isVDSMode);
381 log.info(
"Found '{}' changed entries", changedInums.size());
385 if (problemInums != null) {
386 log.info(
"Loaded '{}' problem entries from problem file", problemInums.size());
388 changedInums.addAll(problemInums);
391 List<String> updatedInums = null;
396 updatedInums =
updateTargetEntriesViaCopy(cacheRefreshConfiguration, sourcePersonCacheCompoundKeyMap, allPrimaryKeyAttrValueInumMap, changedInums);
399 log.info(
"Updated '{}' entries", updatedInums.size());
400 changedInums.removeAll(updatedInums);
401 log.info(
"Failed to update '{}' entries", changedInums.size());
413 currentAppliance.setVdsCacheRefreshProblemCount(String.valueOf(changedInums.size()));
417 List<GluuSimplePerson> personsForRemoval = null;
419 boolean keepExternalPerson = cacheRefreshConfiguration.isKeepExternalPerson();
420 log.debug(
"Keep external persons: '{}'", keepExternalPerson);
421 if (keepExternalPerson) {
423 personsForRemoval =
getRemovedPersons(currInumWithEntryHashCodeMap, prevInumWithEntryHashCodeMap);
429 log.info(
"Found '{}' entries in target server", targetPersons.size());
434 log.debug(
"Count entries '{}' for removal from target server", personsForRemoval.size());
437 HashMap<String, GluuInumMap> inumInumMap =
getInumInumMap(inumMaps);
439 List<String> removedPersonInums = removeTargetEntriesResult.getFirst();
440 List<String> removedGluuInumMaps = removeTargetEntriesResult.getSecond();
441 log.info(
"Removed '{}' persons from target server", removedPersonInums.size());
444 ArrayList<GluuInumMap> currentInumMaps =
applyChangesToInumMap(inumInumMap, addedPrimaryKeyAttrValueInumMap, removedGluuInumMaps);
449 currentAppliance.setVdsCacheRefreshLastUpdateCount(String.valueOf(updatedInums.size() + removedPersonInums.size()));
String getInumCachePath(CacheRefreshConfiguration cacheRefreshConfiguration)
Definition: CacheRefreshTimer.java:1128
Set< String > getChangedInums(HashMap< String, Integer > currInumWithEntryHashCodeMap, Map< String, Integer > prevInumWithEntryHashCodeMap, boolean includeDeleted)
Definition: CacheRefreshTimer.java:469
CacheRefreshSnapshotFileService cacheRefreshSnapshotFileService
Definition: CacheRefreshTimer.java:121
List< GluuInumMap > loadInumServerEntries(CacheRefreshConfiguration cacheRefreshConfiguration, LdapServerConnection inumDbServerConnection)
Definition: CacheRefreshTimer.java:790
boolean createSnapshot(CacheRefreshConfiguration cacheRefreshConfiguration, Map< String, Integer > inumWithEntryHashCodeMap)
Definition: CacheRefreshSnapshotFileService.java:70
List< GluuSimplePerson > getRemovedPersons(HashMap< String, Integer > currInumWithEntryHashCodeMap, Map< String, Integer > prevInumWithEntryHashCodeMap)
Definition: CacheRefreshTimer.java:500
boolean retainSnapshots(CacheRefreshConfiguration cacheRefreshConfiguration, int count)
Definition: CacheRefreshSnapshotFileService.java:168
List< GluuSimplePerson > processTargetPersons(List< GluuSimplePerson > targetPersons, HashMap< String, Integer > currInumWithEntryHashCodeMap)
Definition: CacheRefreshTimer.java:984
HashMap< CacheCompoundKey, GluuInumMap > getPrimaryKeyAttrValueInumMap(List< GluuInumMap > inumMaps)
Definition: CacheRefreshTimer.java:999
List< GluuSimplePerson > loadSourceServerEntriesWithoutLimits(CacheRefreshConfiguration cacheRefreshConfiguration, LdapServerConnection[] sourceServerConnections)
Definition: CacheRefreshTimer.java:801
List< GluuSimplePerson > loadSourceServerEntries(CacheRefreshConfiguration cacheRefreshConfiguration, LdapServerConnection[] sourceServerConnections)
Definition: CacheRefreshTimer.java:845
ArrayList< GluuInumMap > applyChangesToInumMap(HashMap< String, GluuInumMap > inumInumMap, HashMap< CacheCompoundKey, GluuInumMap > addedPrimaryKeyAttrValueInumMap, List< String > removedGluuInumMaps)
Definition: CacheRefreshTimer.java:454
Map< CacheCompoundKey, GluuSimplePerson > getSourcePersonCompoundKeyMap(CacheRefreshConfiguration cacheRefreshConfiguration, List< GluuSimplePerson > sourcePersons)
Definition: CacheRefreshTimer.java:1021
HashMap< String, GluuInumMap > getInumInumMap(List< GluuInumMap > inumMaps)
Definition: CacheRefreshTimer.java:1011
PersistenceEntryManager ldapEntryManager
Definition: CacheRefreshTimer.java:115
Map< String, Integer > readLastSnapshot(CacheRefreshConfiguration cacheRefreshConfiguration)
Definition: CacheRefreshSnapshotFileService.java:147
List< String > readProblemList(CacheRefreshConfiguration cacheRefreshConfiguration)
Definition: CacheRefreshSnapshotFileService.java:188
List< String > updateTargetEntriesViaCopy(CacheRefreshConfiguration cacheRefreshConfiguration, Map< CacheCompoundKey, GluuSimplePerson > sourcePersonCacheCompoundKeyMap, HashMap< CacheCompoundKey, GluuInumMap > primaryKeyAttrValueInumMap, Set< String > changedInums)
Definition: CacheRefreshTimer.java:550
boolean prepareSnapshotsFolder(CacheRefreshConfiguration cacheRefreshConfiguration)
Definition: CacheRefreshSnapshotFileService.java:54
HashMap< String, Integer > getSourcePersonsHashCodesMap(LdapServerConnection inumDbServerConnection, Map< CacheCompoundKey, GluuSimplePerson > sourcePersonCacheCompoundKeyMap, HashMap< CacheCompoundKey, GluuInumMap > primaryKeyAttrValueInumMap)
Definition: CacheRefreshTimer.java:965
Logger log
Definition: CacheRefreshTimer.java:94
List< GluuSimplePerson > loadTargetServerEntries(CacheRefreshConfiguration cacheRefreshConfiguration, PersistenceEntryManager targetPersistenceEntryManager)
Definition: CacheRefreshTimer.java:892
List< String > updateTargetEntriesViaVDS(CacheRefreshConfiguration cacheRefreshConfiguration, LdapServerConnection targetServerConnection, Set< String > changedInums)
Definition: CacheRefreshTimer.java:531
HashMap< CacheCompoundKey, GluuInumMap > addNewInumServerEntries(CacheRefreshConfiguration cacheRefreshConfiguration, LdapServerConnection inumDbServerConnection, Map< CacheCompoundKey, GluuSimplePerson > sourcePersonCacheCompoundKeyMap, HashMap< CacheCompoundKey, GluuInumMap > primaryKeyAttrValueInumMap)
Definition: CacheRefreshTimer.java:923
Pair< List< String >, List< String > > removeTargetEntries(LdapServerConnection inumDbServerConnection, PersistenceEntryManager targetPersistenceEntryManager, List< GluuSimplePerson > removedPersons, HashMap< String, GluuInumMap > inumInumMap)
Definition: CacheRefreshTimer.java:706
ObjectSerializationService objectSerializationService
Definition: CacheRefreshTimer.java:139
HashMap< CacheCompoundKey, GluuInumMap > getAllInumServerEntries(HashMap< CacheCompoundKey, GluuInumMap > primaryKeyAttrValueInumMap, HashMap< CacheCompoundKey, GluuInumMap > addedPrimaryKeyAttrValueInumMap)
Definition: CacheRefreshTimer.java:954
boolean writeProblemList(CacheRefreshConfiguration cacheRefreshConfiguration, Set< String > changedInums)
Definition: CacheRefreshSnapshotFileService.java:222