| | |
| | | { |
| | | while (suffixes.isEmpty()) |
| | | { |
| | | if (!noSchemaOrAds(availableSuffixes)) |
| | | if (containsSchemaOrAdminSuffix(availableSuffixes)) |
| | | { |
| | | // In interactive mode we do not propose to manage the |
| | | // administration suffix. |
| | |
| | | } |
| | | } |
| | | |
| | | private boolean noSchemaOrAds(Collection<String> suffixes) |
| | | private boolean containsSchemaOrAdminSuffix(Collection<String> suffixes) |
| | | { |
| | | for (String suffix : suffixes) |
| | | { |
| | | if (isNotSchemaOrAds(suffix)) |
| | | if (isSchemaOrAdminSuffix(suffix)) |
| | | { |
| | | return true; |
| | | } |
| | |
| | | return false; |
| | | } |
| | | |
| | | private boolean isNotSchemaOrAds(String suffix) |
| | | private boolean isSchemaOrAdminSuffix(String suffix) |
| | | { |
| | | return !areDnsEqual(suffix, ADSContext.getAdministrationSuffixDN()) |
| | | && !areDnsEqual(suffix, Constants.SCHEMA_DN); |
| | | return areDnsEqual(suffix, ADSContext.getAdministrationSuffixDN()) |
| | | || areDnsEqual(suffix, Constants.SCHEMA_DN); |
| | | } |
| | | |
| | | /** |
| | |
| | | { |
| | | while (suffixes.isEmpty()) |
| | | { |
| | | if (!noSchemaOrAds(availableSuffixes)) |
| | | if (containsSchemaOrAdminSuffix(availableSuffixes)) |
| | | { |
| | | // In interactive mode we do not propose to manage the |
| | | // administration suffix. |
| | |
| | | { |
| | | for (String dn : availableSuffixes) |
| | | { |
| | | if (isNotSchemaOrAds(dn)) |
| | | if (!isSchemaOrAdminSuffix(dn)) |
| | | { |
| | | try |
| | | { |
| | |
| | | while (suffixes.isEmpty()) |
| | | { |
| | | println(); |
| | | if (!noSchemaOrAds(availableSuffixes)) |
| | | if (containsSchemaOrAdminSuffix(availableSuffixes)) |
| | | { |
| | | // In interactive mode we do not propose to manage the |
| | | // administration suffix. |
| | | // In interactive mode we do not propose to manage the administration suffix. |
| | | if (argParser.isInitializeAllReplicationSubcommand()) |
| | | { |
| | | println( |
| | | ERR_NO_SUFFIXES_AVAILABLE_TO_INITIALIZE_ALL_REPLICATION.get()); |
| | | println(ERR_NO_SUFFIXES_AVAILABLE_TO_INITIALIZE_ALL_REPLICATION.get()); |
| | | } |
| | | else |
| | | { |
| | | println( |
| | | ERR_NO_SUFFIXES_AVAILABLE_TO_INITIALIZE_LOCAL_REPLICATION.get()); |
| | | println(ERR_NO_SUFFIXES_AVAILABLE_TO_INITIALIZE_LOCAL_REPLICATION.get()); |
| | | } |
| | | break; |
| | | } |
| | |
| | | |
| | | for (String dn : availableSuffixes) |
| | | { |
| | | if (isNotSchemaOrAds(dn)) |
| | | if (!isSchemaOrAdminSuffix(dn)) |
| | | { |
| | | boolean addSuffix; |
| | | try |
| | |
| | | { |
| | | // They are already replicated: nothing to do in terms of ADS |
| | | // initialization or ADS update data |
| | | adsAlreadyReplicated = isBaseDNReplicated(server1, server2, |
| | | ADSContext.getAdministrationSuffixDN()); |
| | | adsAlreadyReplicated = isBaseDNReplicated(server1, server2, ADSContext.getAdministrationSuffixDN()); |
| | | |
| | | if (!adsAlreadyReplicated) |
| | | { |
| | | // Try to merge if both are replicated |
| | | boolean isADS1Replicated = isBaseDNReplicated(server1, |
| | | ADSContext.getAdministrationSuffixDN()); |
| | | boolean isADS2Replicated = isBaseDNReplicated(server2, |
| | | ADSContext.getAdministrationSuffixDN()); |
| | | boolean isADS1Replicated = isBaseDNReplicated(server1, ADSContext.getAdministrationSuffixDN()); |
| | | boolean isADS2Replicated = isBaseDNReplicated(server2, ADSContext.getAdministrationSuffixDN()); |
| | | if (isADS1Replicated && isADS2Replicated) |
| | | { |
| | | // Merge |
| | |
| | | Set<Integer> usedIds = hmUsedReplicationDomainIds.get(baseDN); |
| | | Set<String> alreadyConfiguredServers = new HashSet<String>(); |
| | | |
| | | if (uData.configureReplicationDomain1() || |
| | | areDnsEqual(baseDN, ADSContext.getAdministrationSuffixDN())) |
| | | if (uData.configureReplicationDomain1() |
| | | || areDnsEqual(baseDN, ADSContext.getAdministrationSuffixDN())) |
| | | { |
| | | try |
| | | { |
| | |
| | | } |
| | | alreadyConfiguredServers.add(server1.getId()); |
| | | |
| | | if (uData.configureReplicationDomain2() || |
| | | areDnsEqual(baseDN, ADSContext.getAdministrationSuffixDN())) |
| | | if (uData.configureReplicationDomain2() |
| | | || areDnsEqual(baseDN, ADSContext.getAdministrationSuffixDN())) |
| | | { |
| | | try |
| | | { |
| | |
| | | pointAdder.start(); |
| | | try |
| | | { |
| | | initializeAllSuffix(ADSContext.getAdministrationSuffixDN(), |
| | | ctxSource, false); |
| | | initializeAllSuffix(ADSContext.getAdministrationSuffixDN(), ctxSource, false); |
| | | } |
| | | finally |
| | | { |
| | |
| | | INFO_ENABLE_REPLICATION_INITIALIZING_ADS.get( |
| | | getHostPort(ctxDestination), getHostPort(ctxSource)))); |
| | | |
| | | initializeSuffix(ADSContext.getAdministrationSuffixDN(), ctxSource, |
| | | ctxDestination, false); |
| | | initializeSuffix(ADSContext.getAdministrationSuffixDN(), ctxSource, ctxDestination, false); |
| | | print(formatter.getFormattedDone()); |
| | | println(); |
| | | } |
| | |
| | | |
| | | for (SuffixDescriptor suffix : cache.getSuffixes()) |
| | | { |
| | | if (areDnsEqual(suffix.getDN(), |
| | | ADSContext.getAdministrationSuffixDN()) || |
| | | areDnsEqual(suffix.getDN(), Constants.SCHEMA_DN)) |
| | | if (isSchemaOrAdminSuffix(suffix.getDN())) |
| | | { |
| | | // Do not display these suffixes. |
| | | continue; |
| | |
| | | Set<String> baseDNs = new LinkedHashSet<String>(); |
| | | for (SuffixDescriptor suffix : beforeLastRepServer) |
| | | { |
| | | if (!areDnsEqual(suffix.getDN(), |
| | | ADSContext.getAdministrationSuffixDN()) && |
| | | !areDnsEqual(suffix.getDN(), Constants.SCHEMA_DN)) |
| | | if (!isSchemaOrAdminSuffix(suffix.getDN())) |
| | | { |
| | | // Do not display these suffixes. |
| | | baseDNs.add(suffix.getDN()); |
| | |
| | | boolean baseDNSpecified = false; |
| | | for (String baseDN : uData.getBaseDNs()) |
| | | { |
| | | if (areDnsEqual(baseDN, |
| | | ADSContext.getAdministrationSuffixDN()) || |
| | | areDnsEqual(baseDN, Constants.SCHEMA_DN)) |
| | | { |
| | | // Do not display these suffixes. |
| | | continue; |
| | | } |
| | | if (areDnsEqual(baseDN, suffix.getDN())) |
| | | if (!isSchemaOrAdminSuffix(baseDN) |
| | | && areDnsEqual(baseDN, suffix.getDN())) |
| | | { |
| | | baseDNSpecified = true; |
| | | break; |
| | |
| | | |
| | | // If no base DNs where specified display all the base DNs but the schema |
| | | // and cn=admin data. |
| | | boolean found; |
| | | if (userBaseDNs.isEmpty()) |
| | | { |
| | | found = containsDN(userBaseDNs, dn); |
| | | } |
| | | else |
| | | { |
| | | found = displayAll |
| | | && !areDnsEqual(dn, ADSContext.getAdministrationSuffixDN()) |
| | | && !areDnsEqual(dn, Constants.SCHEMA_DN); |
| | | } |
| | | boolean found = containsDN(userBaseDNs, dn) |
| | | || (displayAll && !isSchemaOrAdminSuffix(dn)); |
| | | if (found) |
| | | { |
| | | boolean replicated = false; |
| | |
| | | { |
| | | userSpecifiedAdminBaseDN = containsDN(l, ADSContext.getAdministrationSuffixDN()); |
| | | } |
| | | if (!userSpecifiedAdminBaseDN && areDnsEqual(baseDN, |
| | | ADSContext.getAdministrationSuffixDN())) |
| | | if (!userSpecifiedAdminBaseDN |
| | | && areDnsEqual(baseDN, ADSContext.getAdministrationSuffixDN())) |
| | | { |
| | | print(formatter.getFormattedWithPoints( |
| | | INFO_REPLICATION_ENABLE_CONFIGURING_ADS.get(getHostPort(ctx)))); |