From 99cb2c34044bbaefffd4b75fffa92b91fb1f7226 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 16 Apr 2008 08:53:37 +0000
Subject: [PATCH] Fix for issue  3139 (dsreplication tool inefficient in relation to number of backends)

---
 opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java |   90 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 79 insertions(+), 11 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java b/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
index d264828..a81d4aa 100644
--- a/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
+++ b/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
@@ -72,6 +72,7 @@
 import org.opends.admin.ads.SuffixDescriptor;
 import org.opends.admin.ads.TopologyCache;
 import org.opends.admin.ads.TopologyCacheException;
+import org.opends.admin.ads.TopologyCacheFilter;
 import org.opends.admin.ads.ADSContext.ADSPropertySyntax;
 import org.opends.admin.ads.ADSContext.AdministratorProperty;
 import org.opends.admin.ads.util.ApplicationTrustManager;
@@ -2531,8 +2532,11 @@
         {
           // We must recreate the cache because the trust manager in the
           // LDAPConnectionConsoleInteraction object might have changed.
+
           TopologyCache cache = new TopologyCache(adsContext,
               getTrustManager());
+          cache.getFilter().setSearchMonitoringInformation(false);
+          cache.getFilter().setSearchBaseDNInformation(false);
           cache.setPreferredConnections(getPreferredConnections(ctx[0]));
           cache.reloadTopology();
 
@@ -2611,6 +2615,8 @@
                         adminPwd, getTrustManager());
                     adsContext = new ADSContext(ctx[0]);
                     cache = new TopologyCache(adsContext, getTrustManager());
+                    cache.getFilter().setSearchMonitoringInformation(false);
+                    cache.getFilter().setSearchBaseDNInformation(false);
                     cache.setPreferredConnections(
                         getPreferredConnections(ctx[0]));
                     connected = true;
@@ -2806,8 +2812,12 @@
     LinkedList<String> suffixes = new LinkedList<String>();
     try
     {
-      ServerDescriptor server1 = ServerDescriptor.createStandalone(ctx1);
-      ServerDescriptor server2 = ServerDescriptor.createStandalone(ctx2);
+      TopologyCacheFilter filter = new TopologyCacheFilter();
+      filter.setSearchMonitoringInformation(false);
+      ServerDescriptor server1 =
+        ServerDescriptor.createStandalone(ctx1, filter);
+      ServerDescriptor server2 =
+        ServerDescriptor.createStandalone(ctx2, filter);
       Set<ReplicaDescriptor> replicas1 = server1.getReplicas();
       Set<ReplicaDescriptor> replicas2 = server2.getReplicas();
 
@@ -2929,9 +2939,11 @@
   {
     LinkedList<ReplicaDescriptor> suffixes =
       new LinkedList<ReplicaDescriptor>();
+    TopologyCacheFilter filter = new TopologyCacheFilter();
+    filter.setSearchMonitoringInformation(false);
     try
     {
-      ServerDescriptor server = ServerDescriptor.createStandalone(ctx);
+      ServerDescriptor server = ServerDescriptor.createStandalone(ctx, filter);
       suffixes.addAll(server.getReplicas());
     }
     catch (Throwable t)
@@ -4347,9 +4359,16 @@
       new HashMap<String, Set<Integer>>();
 
     ServerDescriptor server1;
+    TopologyCacheFilter filter = new TopologyCacheFilter();
+    filter.setSearchMonitoringInformation(false);
+    filter.addBaseDNToSearch(ADSContext.getAdministrationSuffixDN());
+    for (String dn : uData.getBaseDNs())
+    {
+      filter.addBaseDNToSearch(dn);
+    }
     try
     {
-      server1 = ServerDescriptor.createStandalone(ctx1);
+      server1 = ServerDescriptor.createStandalone(ctx1, filter);
     }
     catch (NamingException ne)
     {
@@ -4360,7 +4379,7 @@
     ServerDescriptor server2;
     try
     {
-      server2 = ServerDescriptor.createStandalone(ctx2);
+      server2 = ServerDescriptor.createStandalone(ctx2, filter);
     }
     catch (NamingException ne)
     {
@@ -4387,6 +4406,11 @@
         {
           TopologyCache cache = new TopologyCache(adsCtx1, getTrustManager());
           cache.setPreferredConnections(cnx);
+          cache.getFilter().setSearchMonitoringInformation(false);
+          for (String dn : uData.getBaseDNs())
+          {
+            cache.getFilter().addBaseDNToSearch(dn);
+          }
           cache.reloadTopology();
           messages.addAll(getErrorMessages(cache));
         }
@@ -4395,6 +4419,11 @@
         {
           TopologyCache cache = new TopologyCache(adsCtx2, getTrustManager());
           cache.setPreferredConnections(cnx);
+          cache.getFilter().setSearchMonitoringInformation(false);
+          for (String dn : uData.getBaseDNs())
+          {
+            cache.getFilter().addBaseDNToSearch(dn);
+          }
           cache.reloadTopology();
           messages.addAll(getErrorMessages(cache));
         }
@@ -4605,6 +4634,11 @@
       {
         cache1 = new TopologyCache(adsCtx1, getTrustManager());
         cache1.setPreferredConnections(cnx);
+        cache1.getFilter().setSearchMonitoringInformation(false);
+        for (String dn : uData.getBaseDNs())
+        {
+          cache1.getFilter().addBaseDNToSearch(dn);
+        }
         cache1.reloadTopology();
         usedReplicationServerIds.addAll(getReplicationServerIds(cache1));
       }
@@ -4613,6 +4647,11 @@
       {
         cache2 = new TopologyCache(adsCtx2, getTrustManager());
         cache2.setPreferredConnections(cnx);
+        cache2.getFilter().setSearchMonitoringInformation(false);
+        for (String dn : uData.getBaseDNs())
+        {
+          cache2.getFilter().addBaseDNToSearch(dn);
+        }
         cache2.reloadTopology();
         usedReplicationServerIds.addAll(getReplicationServerIds(cache2));
       }
@@ -4847,9 +4886,16 @@
       DisableReplicationUserData uData) throws ReplicationCliException
   {
     ServerDescriptor server;
+    TopologyCacheFilter filter = new TopologyCacheFilter();
+    filter.setSearchMonitoringInformation(false);
+    filter.addBaseDNToSearch(ADSContext.getAdministrationSuffixDN());
+    for (String dn : uData.getBaseDNs())
+    {
+      filter.addBaseDNToSearch(dn);
+    }
     try
     {
-      server = ServerDescriptor.createStandalone(ctx);
+      server = ServerDescriptor.createStandalone(ctx, filter);
     }
     catch (NamingException ne)
     {
@@ -4870,6 +4916,11 @@
       {
         cache = new TopologyCache(adsCtx, getTrustManager());
         cache.setPreferredConnections(getPreferredConnections(ctx));
+        cache.getFilter().setSearchMonitoringInformation(false);
+        for (String dn : uData.getBaseDNs())
+        {
+          cache.getFilter().addBaseDNToSearch(dn);
+        }
         cache.reloadTopology();
       }
     }
@@ -5074,6 +5125,10 @@
     {
       cache = new TopologyCache(adsCtx, getTrustManager());
       cache.setPreferredConnections(getPreferredConnections(ctx));
+      for (String dn : uData.getBaseDNs())
+      {
+        cache.getFilter().addBaseDNToSearch(dn);
+      }
       cache.reloadTopology();
     }
     catch (TopologyCacheException tce)
@@ -5885,9 +5940,12 @@
               cache.getAdsContext().getDirContext());
           String pwd = ConnectionUtils.getBindPassword(
               cache.getAdsContext().getDirContext());
-
+          TopologyCacheFilter filter = new TopologyCacheFilter();
+          filter.setSearchMonitoringInformation(false);
+          filter.setSearchBaseDNInformation(false);
           ServerLoader loader = new ServerLoader(s.getAdsProperties(),
-              dn, pwd, getTrustManager(), cache.getPreferredConnections());
+              dn, pwd, getTrustManager(), cache.getPreferredConnections(),
+              filter);
           InitialLdapContext ctx = null;
           try
           {
@@ -5960,7 +6018,11 @@
     int replicationId = -1;
     try
     {
-      ServerDescriptor source = ServerDescriptor.createStandalone(ctxSource);
+      TopologyCacheFilter filter = new TopologyCacheFilter();
+      filter.setSearchMonitoringInformation(false);
+      filter.addBaseDNToSearch(baseDN);
+      ServerDescriptor source = ServerDescriptor.createStandalone(ctxSource,
+          filter);
       for (ReplicaDescriptor replica : source.getReplicas())
       {
         if (Utils.areDnsEqual(replica.getSuffix().getDN(), baseDN))
@@ -6621,8 +6683,11 @@
       LinkedHashSet<PreferredConnection> cnx)
   throws ReplicationCliException
   {
+    TopologyCacheFilter filter = new TopologyCacheFilter();
+    filter.setSearchMonitoringInformation(false);
+    filter.setSearchBaseDNInformation(false);
     ServerLoader loader = new ServerLoader(server.getAdsProperties(), bindDn,
-        pwd, getTrustManager(), cnx);
+        pwd, getTrustManager(), cnx, filter);
     InitialLdapContext ctx = null;
     String lastBaseDN = null;
     String hostPort = null;
@@ -7383,7 +7448,10 @@
   throws NamingException
   {
     int domainId = -1;
-    ServerDescriptor server = ServerDescriptor.createStandalone(ctx);
+    TopologyCacheFilter filter = new TopologyCacheFilter();
+    filter.setSearchMonitoringInformation(false);
+    filter.addBaseDNToSearch(baseDN);
+    ServerDescriptor server = ServerDescriptor.createStandalone(ctx, filter);
     for (ReplicaDescriptor replica : server.getReplicas())
     {
       if (Utils.areDnsEqual(replica.getSuffix().getDN(), baseDN))

--
Gitblit v1.10.0