From 4640fec656d96f3891a5534948f0b4c81df2f89d Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 26 Jan 2012 23:53:08 +0000
Subject: [PATCH] Fix OPENDJ-406: Add support for rebuilding all degraded indexes to rebuild-index tool
---
opends/src/server/org/opends/server/tasks/RebuildTask.java | 25 ++++++++++++++++---------
1 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/opends/src/server/org/opends/server/tasks/RebuildTask.java b/opends/src/server/org/opends/server/tasks/RebuildTask.java
index e7a800b..f5fcba9 100644
--- a/opends/src/server/org/opends/server/tasks/RebuildTask.java
+++ b/opends/src/server/org/opends/server/tasks/RebuildTask.java
@@ -23,6 +23,7 @@
*
*
* Copyright 2006-2009 Sun Microsystems, Inc.
+ * Portions copyright 2012 ForgeRock AS.
*/
package org.opends.server.tasks;
import org.opends.messages.Message;
@@ -32,6 +33,7 @@
import org.opends.server.backends.task.TaskState;
import org.opends.server.backends.jeb.RebuildConfig;
import org.opends.server.backends.jeb.BackendImpl;
+import org.opends.server.backends.jeb.RebuildConfig.RebuildMode;
import org.opends.server.types.Attribute;
import org.opends.server.types.AttributeType;
import org.opends.server.types.DN;
@@ -74,7 +76,7 @@
String baseDN = null;
ArrayList<String> indexes = null;
private String tmpDirectory = null;
- private boolean rebuildAll = false;
+ private RebuildMode rebuildMode = RebuildMode.USER_DEFINED;
/**
* {@inheritDoc}
@@ -125,14 +127,14 @@
attrList = taskEntry.getAttribute(typeIndex);
indexes = TaskUtils.getMultiValueString(attrList);
- if(isRebuildAll(indexes))
+ rebuildMode = getRebuildMode(indexes);
+ if(rebuildMode != RebuildMode.USER_DEFINED)
{
if(indexes.size() != 1)
{
Message msg = ERR_TASK_INDEXREBUILD_ALL_ERROR.get();
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, msg);
}
- rebuildAll = true;
indexes.clear();
}
@@ -141,16 +143,21 @@
}
- private boolean isRebuildAll(List<String> indexList)
+ private RebuildMode getRebuildMode(List<String> indexList)
{
- for(String s : indexList)
+ for (String s : indexList)
{
- if(s.equalsIgnoreCase(REBUILD_ALL))
+ if (s.equalsIgnoreCase(REBUILD_ALL))
{
- return true;
+ return RebuildMode.ALL;
+ }
+
+ if (s.equalsIgnoreCase(REBUILD_DEGRADED))
+ {
+ return RebuildMode.DEGRADED;
}
}
- return false;
+ return RebuildMode.USER_DEFINED;
}
/**
@@ -240,7 +247,7 @@
tmpDirectory = "import-tmp";
}
rebuildConfig.setTmpDirectory(tmpDirectory);
- rebuildConfig.setRebuildAll(rebuildAll);
+ rebuildConfig.setRebuildMode(rebuildMode);
TaskState returnCode = TaskState.COMPLETED_SUCCESSFULLY;
// Launch the rebuild process.
try
--
Gitblit v1.10.0