From 500a5fa7736443b580040010253269ea9db32eba Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 12 Jul 2016 10:08:20 +0000
Subject: [PATCH] ReplicationCliMain.java: code cleanup
---
opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java | 318 +++++++++++++++++++++-------------------------------
1 files changed, 129 insertions(+), 189 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java
index 2429723..f5a8666 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java
@@ -1263,17 +1263,14 @@
printNewCommandBuilder(PURGE_HISTORICAL_SUBCMD_NAME, uData);
}
- try
- {
- return purgeHistoricalRemoteTask(conn, uData);
- }
- catch (ReplicationCliException rce)
- {
- errPrintln();
- errPrintln(getCriticalExceptionMessage(rce));
- logger.error(LocalizableMessage.raw("Complete error stack:"), rce);
- return rce.getErrorCode();
- }
+ return purgeHistoricalRemoteTask(conn, uData);
+ }
+ catch (ReplicationCliException rce)
+ {
+ errPrintln();
+ errPrintln(getCriticalExceptionMessage(rce));
+ logger.error(LocalizableMessage.raw("Complete error stack:"), rce);
+ return rce.getErrorCode();
}
finally
{
@@ -1725,27 +1722,8 @@
TreeSet<DN> availableSuffixes = new TreeSet<>();
TreeSet<DN> notReplicatedSuffixes = new TreeSet<>();
- for (ReplicaDescriptor rep : replicas)
- {
- DN dn = rep.getSuffix().getDN();
- if (rep.isReplicated())
- {
- availableSuffixes.add(dn);
- }
- else
- {
- notReplicatedSuffixes.add(dn);
- }
- }
+ partitionReplicasByReplicated(replicas, availableSuffixes, notReplicatedSuffixes);
- checkSuffixesForPurgeHistorical(suffixes, availableSuffixes, notReplicatedSuffixes, interactive);
- }
-
- private void checkSuffixesForPurgeHistorical(Collection<DN> suffixes,
- Collection<DN> availableSuffixes,
- Collection<DN> notReplicatedSuffixes,
- boolean interactive)
- {
if (availableSuffixes.isEmpty())
{
errPrintln();
@@ -1757,20 +1735,8 @@
// Verify that the provided suffixes are configured in the servers.
TreeSet<DN> notFound = new TreeSet<>();
TreeSet<DN> alreadyNotReplicated = new TreeSet<>();
- for (DN dn : suffixes)
- {
- if (!availableSuffixes.contains(dn))
- {
- if (notReplicatedSuffixes.contains(dn))
- {
- alreadyNotReplicated.add(dn);
- }
- else
- {
- notFound.add(dn);
- }
- }
- }
+ determineSuffixesNotFoundAndAlreadyNotReplicated(
+ suffixes, availableSuffixes, notReplicatedSuffixes, notFound, alreadyNotReplicated);
suffixes.removeAll(notFound);
suffixes.removeAll(alreadyNotReplicated);
if (!notFound.isEmpty())
@@ -1788,6 +1754,42 @@
}
}
+ private void partitionReplicasByReplicated(Collection<ReplicaDescriptor> replicas,
+ Set<DN> replicatedSuffixes, Set<DN> notReplicatedSuffixes)
+ {
+ for (ReplicaDescriptor rep : replicas)
+ {
+ DN dn = rep.getSuffix().getDN();
+ if (rep.isReplicated())
+ {
+ replicatedSuffixes.add(dn);
+ }
+ else
+ {
+ notReplicatedSuffixes.add(dn);
+ }
+ }
+ }
+
+ private void determineSuffixesNotFoundAndAlreadyNotReplicated(Collection<DN> suffixes,
+ Set<DN> availableSuffixes, Set<DN> notReplicatedSuffixes, Set<DN> notFound, Set<DN> alreadyNotReplicated)
+ {
+ for (DN dn : suffixes)
+ {
+ if (!availableSuffixes.contains(dn))
+ {
+ if (notReplicatedSuffixes.contains(dn))
+ {
+ alreadyNotReplicated.add(dn);
+ }
+ else
+ {
+ notFound.add(dn);
+ }
+ }
+ }
+ }
+
private void askConfirmations(Collection<DN> suffixes,
Collection<DN> availableSuffixes, Arg0 noSuffixAvailableMsg,
Arg0 noSuffixSelectedMsg, Arg1<Object> confirmationMsgPromt)
@@ -2639,8 +2641,7 @@
* @throws ReplicationCliException if there is a critical error reading the
* ADS.
*/
- private boolean promptIfRequired(DisableReplicationUserData uData)
- throws ReplicationCliException
+ private boolean promptIfRequired(DisableReplicationUserData uData) throws ReplicationCliException
{
boolean cancelled = false;
@@ -4084,18 +4085,15 @@
try
{
- try
- {
- displayStatus(conn, uData);
- return SUCCESSFUL;
- }
- catch (ReplicationCliException rce)
- {
- errPrintln();
- errPrintln(getCriticalExceptionMessage(rce));
- logger.error(LocalizableMessage.raw("Complete error stack:"), rce);
- return rce.getErrorCode();
- }
+ displayStatus(conn, uData);
+ return SUCCESSFUL;
+ }
+ catch (ReplicationCliException rce)
+ {
+ errPrintln();
+ errPrintln(getCriticalExceptionMessage(rce));
+ logger.error(LocalizableMessage.raw("Complete error stack:"), rce);
+ return rce.getErrorCode();
}
finally
{
@@ -4441,20 +4439,8 @@
// Verify that the provided suffixes are configured in the servers.
TreeSet<DN> notFound = new TreeSet<>();
TreeSet<DN> alreadyReplicated = new TreeSet<>();
- for (DN dn : suffixes)
- {
- if (!availableSuffixes.contains(dn))
- {
- if (alreadyReplicatedSuffixes.contains(dn))
- {
- alreadyReplicated.add(dn);
- }
- else
- {
- notFound.add(dn);
- }
- }
- }
+ determineSuffixesNotFoundAndAlreadyNotReplicated(
+ suffixes, availableSuffixes, alreadyReplicatedSuffixes, notFound,alreadyReplicated);
suffixes.removeAll(notFound);
suffixes.removeAll(alreadyReplicated);
if (!notFound.isEmpty())
@@ -4498,19 +4484,7 @@
TreeSet<DN> availableSuffixes = new TreeSet<>();
TreeSet<DN> notReplicatedSuffixes = new TreeSet<>();
- Collection<ReplicaDescriptor> replicas = getReplicas(conn);
- for (ReplicaDescriptor rep : replicas)
- {
- DN dn = rep.getSuffix().getDN();
- if (rep.isReplicated())
- {
- availableSuffixes.add(dn);
- }
- else
- {
- notReplicatedSuffixes.add(dn);
- }
- }
+ partitionReplicasByReplicated(getReplicas(conn), availableSuffixes, notReplicatedSuffixes);
if (availableSuffixes.isEmpty())
{
if (displayErrors)
@@ -4543,20 +4517,8 @@
// Verify that the provided suffixes are configured in the servers.
TreeSet<DN> notFound = new TreeSet<>();
TreeSet<DN> alreadyNotReplicated = new TreeSet<>();
- for (DN dn : suffixes)
- {
- if (!availableSuffixes.contains(dn))
- {
- if (notReplicatedSuffixes.contains(dn))
- {
- alreadyNotReplicated.add(dn);
- }
- else
- {
- notFound.add(dn);
- }
- }
- }
+ determineSuffixesNotFoundAndAlreadyNotReplicated(
+ suffixes, availableSuffixes, notReplicatedSuffixes, notFound, alreadyNotReplicated);
suffixes.removeAll(notFound);
suffixes.removeAll(alreadyNotReplicated);
if (!notFound.isEmpty() && displayErrors)
@@ -4645,19 +4607,7 @@
TreeSet<DN> availableSuffixes = new TreeSet<>();
TreeSet<DN> notReplicatedSuffixes = new TreeSet<>();
- Collection<ReplicaDescriptor> replicas = getReplicas(conn);
- for (ReplicaDescriptor rep : replicas)
- {
- DN dn = rep.getSuffix().getDN();
- if (rep.isReplicated())
- {
- availableSuffixes.add(dn);
- }
- else
- {
- notReplicatedSuffixes.add(dn);
- }
- }
+ partitionReplicasByReplicated(getReplicas(conn), availableSuffixes, notReplicatedSuffixes);
if (availableSuffixes.isEmpty())
{
println();
@@ -4695,20 +4645,8 @@
// Verify that the provided suffixes are configured in the servers.
TreeSet<DN> notFound = new TreeSet<>();
TreeSet<DN> alreadyNotReplicated = new TreeSet<>();
- for (DN dn : suffixes)
- {
- if (!availableSuffixes.contains(dn))
- {
- if (notReplicatedSuffixes.contains(dn))
- {
- alreadyNotReplicated.add(dn);
- }
- else
- {
- notFound.add(dn);
- }
- }
- }
+ determineSuffixesNotFoundAndAlreadyNotReplicated(
+ suffixes, availableSuffixes, notReplicatedSuffixes, notFound, alreadyNotReplicated);
suffixes.removeAll(notFound);
suffixes.removeAll(alreadyNotReplicated);
if (!notFound.isEmpty())
@@ -5232,20 +5170,20 @@
hmRepServers.put(baseDN, repServersForBaseDN);
Set<Integer> ids = new HashSet<>();
- ids.addAll(getReplicationDomainIds(baseDN, serverDesc1));
- ids.addAll(getReplicationDomainIds(baseDN, serverDesc2));
+ addReplicationDomainIds(ids, serverDesc1, baseDN);
+ addReplicationDomainIds(ids, serverDesc2, baseDN);
if (cache1 != null)
{
for (ServerDescriptor server : cache1.getServers())
{
- ids.addAll(getReplicationDomainIds(baseDN, server));
+ addReplicationDomainIds(ids, server, baseDN);
}
}
if (cache2 != null)
{
for (ServerDescriptor server : cache2.getServers())
{
- ids.addAll(getReplicationDomainIds(baseDN, server));
+ addReplicationDomainIds(ids, server, baseDN);
}
}
hmUsedReplicationDomainIds.put(baseDN, ids);
@@ -5346,6 +5284,15 @@
}
}
+ private void addReplicationDomainIds(Set<Integer> replicationIds, ServerDescriptor serverDesc1, DN baseDN)
+ {
+ ReplicaDescriptor replica = findReplicated(baseDN, serverDesc1);
+ if (replica != null)
+ {
+ replicationIds.add(replica.getReplicationId());
+ }
+ }
+
private void addToSets(ServerDescriptor serverDesc, EnableReplicationServerData serverData, ConnectionWrapper conn,
final Set<String> twoReplServers, final Set<Integer> usedReplicationServerIds)
{
@@ -5661,9 +5608,9 @@
Collection<ReplicaDescriptor> replicas = getReplicas(conn);
for (ReplicaDescriptor rep : replicas)
{
- DN dn = rep.getSuffix().getDN();
if (rep.isReplicated())
{
+ DN dn = rep.getSuffix().getDN();
if (ADSContext.getAdministrationSuffixDN().equals(dn))
{
adsReplicated = true;
@@ -5703,13 +5650,7 @@
Set<DN> suffixesToDisable = new HashSet<>();
if (uData.disableAll())
{
- for (ReplicaDescriptor replica : server.getReplicas())
- {
- if (replica.isReplicated())
- {
- suffixesToDisable.add(replica.getSuffix().getDN());
- }
- }
+ addAllReplicated(suffixesToDisable, server.getReplicas());
}
else
{
@@ -5859,6 +5800,17 @@
}
}
+ private void addAllReplicated(Set<DN> suffixesToDisable, Set<ReplicaDescriptor> replicas)
+ {
+ for (ReplicaDescriptor replica : replicas)
+ {
+ if (replica.isReplicated())
+ {
+ suffixesToDisable.add(replica.getSuffix().getDN());
+ }
+ }
+ }
+
private boolean isBaseDNSpecified(List<DN> baseDns, DN dnToFind)
{
for (DN baseDN : baseDns)
@@ -5952,7 +5904,7 @@
for (Set<ReplicaDescriptor> replicas : replicaLists)
{
ReplicaDescriptor replica = replicas.iterator().next();
- if (!replica.isReplicated() && dn.equals(replica.getSuffix().getDN()))
+ if (!replica.isReplicated() && replica.getSuffix().getDN().equals(dn))
{
replicas.addAll(suffix.getReplicas());
found = true;
@@ -6520,42 +6472,16 @@
private Set<String> getAllReplicationServers(DN baseDN, ServerDescriptor server)
{
+ ReplicaDescriptor replica = findReplicaForSuffixDN(server.getReplicas(), baseDN);
Set<String> servers = new LinkedHashSet<>();
- for (ReplicaDescriptor replica : server.getReplicas())
+ if (replica != null)
{
- if (replica.getSuffix().getDN().equals(baseDN))
- {
- servers.addAll(replica.getReplicationServers());
- break;
- }
+ servers.addAll(replica.getReplicationServers());
}
return servers;
}
/**
- * Retrieves all the replication domain IDs for a given baseDN in the
- * ServerDescriptor.
- * @param baseDN the base DN.
- * @param server the ServerDescriptor.
- * @return a Set containing the replication domain IDs for a given baseDN in
- * the ServerDescriptor.
- */
- private Set<Integer> getReplicationDomainIds(DN baseDN, ServerDescriptor server)
- {
- Set<Integer> ids = new HashSet<>();
- for (ReplicaDescriptor replica : server.getReplicas())
- {
- if (replica.isReplicated()
- && replica.getSuffix().getDN().equals(baseDN))
- {
- ids.add(replica.getReplicationId());
- break;
- }
- }
- return ids;
- }
-
- /**
* Configures the server as a replication server by using the provided connection.
* The replication server listens to the provided port.
* @param conn the connection to the server that we want to configure.
@@ -6935,13 +6861,10 @@
filter.setSearchMonitoringInformation(false);
filter.addBaseDNToSearch(baseDN.toString());
ServerDescriptor source = ServerDescriptor.createStandalone(connSource, filter);
- for (ReplicaDescriptor replica : source.getReplicas())
+ ReplicaDescriptor replica = findReplicaForSuffixDN(source.getReplicas(), baseDN);
+ if (replica != null)
{
- if (replica.getSuffix().getDN().equals(baseDN))
- {
- replicationId = replica.getReplicationId();
- break;
- }
+ replicationId = replica.getReplicationId();
}
}
catch (IOException ne)
@@ -8022,15 +7945,7 @@
}
Collection<ReplicaDescriptor> replicas = getReplicas(conn);
- Set<DN> replicatedSuffixes = new HashSet<>();
- for (ReplicaDescriptor rep : replicas)
- {
- DN dn = rep.getSuffix().getDN();
- if (rep.isReplicated())
- {
- replicatedSuffixes.add(dn);
- }
- }
+ Set<DN> replicatedSuffixes = findAllReplicasForSuffixDN(replicas);
for (DN dn1 : replicatedSuffixes)
{
@@ -9462,7 +9377,7 @@
*/
private boolean isBaseDNReplicated(ServerDescriptor server, DN baseDN)
{
- return findReplicated(server.getReplicas(), baseDN) != null;
+ return findReplicaForSuffixDN(server.getReplicas(), baseDN) != null;
}
/**
@@ -9476,8 +9391,8 @@
*/
private boolean isBaseDNReplicated(ServerDescriptor server1, ServerDescriptor server2, DN baseDN)
{
- final ReplicaDescriptor replica1 = findReplicated(server1.getReplicas(), baseDN);
- final ReplicaDescriptor replica2 = findReplicated(server2.getReplicas(), baseDN);
+ final ReplicaDescriptor replica1 = findReplicaForSuffixDN(server1.getReplicas(), baseDN);
+ final ReplicaDescriptor replica2 = findReplicaForSuffixDN(server2.getReplicas(), baseDN);
if (replica1 != null && replica2 != null)
{
Set<String> replServers1 = replica1.getSuffix().getReplicationServers();
@@ -9494,11 +9409,36 @@
return false;
}
- private ReplicaDescriptor findReplicated(Set<ReplicaDescriptor> replicas, DN baseDN)
+ private ReplicaDescriptor findReplicaForSuffixDN(Set<ReplicaDescriptor> replicas, DN suffixDN)
{
for (ReplicaDescriptor replica : replicas)
{
- if (replica.getSuffix().getDN().equals(baseDN))
+ if (replica.getSuffix().getDN().equals(suffixDN))
+ {
+ return replica;
+ }
+ }
+ return null;
+ }
+
+ private Set<DN> findAllReplicasForSuffixDN(Collection<ReplicaDescriptor> replicas)
+ {
+ Set<DN> results = new HashSet<>();
+ for (ReplicaDescriptor replica : replicas)
+ {
+ if (replica.isReplicated())
+ {
+ results.add(replica.getSuffix().getDN());
+ }
+ }
+ return results;
+ }
+
+ private ReplicaDescriptor findReplicated(DN baseDN, ServerDescriptor server)
+ {
+ for (ReplicaDescriptor replica : server.getReplicas())
+ {
+ if (replica.isReplicated() && replica.getSuffix().getDN().equals(baseDN))
{
return replica;
}
--
Gitblit v1.10.0