From 259609ae49cea8d8e189bfcefd9e3d87d8c5ee1b Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Fri, 06 Sep 2013 07:02:28 +0000
Subject: [PATCH] CR-2260 Implement Rebuild all indexes Upgrade task - removed start task action (unused) - removed verifyTaskType function (unused) - used LDIF.search to retrieve backends (rebuild index works only on 'enabled' backend). - added rebuild all index task.  - In case of an upgrade where a rebuild all task is present :     . All the other single rebuild indexes are bypass.     . Rebuild-all is launched only if the the user wants to.

---
 opendj-sdk/opends/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java b/opendj-sdk/opends/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
index c73e57c..9d77810 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
@@ -36,10 +36,13 @@
 import org.forgerock.opendj.ldap.requests.AddRequest;
 import org.forgerock.opendj.ldap.requests.ModifyRequest;
 import org.forgerock.opendj.ldap.requests.Requests;
+import org.forgerock.opendj.ldap.requests.SearchRequest;
 import org.forgerock.opendj.ldap.schema.Schema;
 import org.forgerock.opendj.ldap.schema.SchemaBuilder;
 import org.forgerock.opendj.ldap.schema.SchemaValidationPolicy;
 import org.forgerock.opendj.ldap.schema.UnknownSchemaElementException;
+import org.forgerock.opendj.ldif.EntryReader;
+import org.forgerock.opendj.ldif.LDIF;
 import org.forgerock.opendj.ldif.LDIFEntryReader;
 import org.forgerock.opendj.ldif.LDIFEntryWriter;
 import org.opends.server.core.DirectoryServer;
@@ -386,7 +389,9 @@
   }
 
   /**
-   * Retrieves the backends from the current configuration file.
+   * Retrieves the backends from the current configuration file. The backends
+   * must be enabled to be listed. No operations should be done within a
+   * disabled backend.
    *
    * @return A backend list.
    */
@@ -400,14 +405,16 @@
           new LDIFEntryReader(new FileInputStream(new File(configDirectory,
               CURRENT_CONFIG_FILE_NAME)));
 
-      final Filter filter =
-          Filter.equality("objectclass", "ds-cfg-local-db-backend");
-      final Matcher includeFilter = filter.matcher();
-      entryReader.setIncludeFilter(includeFilter);
+      final SearchRequest sr =
+          Requests.newSearchRequest("", SearchScope.WHOLE_SUBTREE,
+              "(&(objectclass=ds-cfg-local-db-backend)(ds-cfg-enabled=true))",
+              "ds-cfg-base-dn");
 
-      while (entryReader.hasNext())
+      final EntryReader resultReader = LDIF.search(entryReader, sr);
+
+      while (resultReader.hasNext())
       {
-        final Entry entry = entryReader.readEntry();
+        final Entry entry = resultReader.readEntry();
         listBackends.add(entry.getAttribute("ds-cfg-base-dn")
             .firstValueAsString());
       }

--
Gitblit v1.10.0