From 1bc6b2380cdc0476285e45cf184adc77cb1278ea Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Fri, 24 Apr 2015 07:53:48 +0000
Subject: [PATCH] OPENDJ-1929 UI: Delete pluggable backend indexes
---
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteIndexTask.java | 46 +++++++++++++++++++++++++++++++++++++++-------
1 files changed, 39 insertions(+), 7 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteIndexTask.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteIndexTask.java
index c84277d..488b965 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteIndexTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteIndexTask.java
@@ -39,6 +39,7 @@
import javax.naming.ldap.InitialLdapContext;
import javax.swing.SwingUtilities;
+import org.forgerock.i18n.LocalizableMessage;
import org.opends.guitools.controlpanel.datamodel.AbstractIndexDescriptor;
import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo;
import org.opends.guitools.controlpanel.datamodel.VLVIndexDescriptor;
@@ -46,12 +47,14 @@
import org.opends.guitools.controlpanel.ui.ProgressDialog;
import org.opends.guitools.controlpanel.util.ConfigReader;
import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
import org.opends.server.admin.client.ManagementContext;
import org.opends.server.admin.client.ldap.JNDIDirContextAdaptor;
import org.opends.server.admin.client.ldap.LDAPManagementContext;
+import org.opends.server.admin.std.client.BackendCfgClient;
import org.opends.server.admin.std.client.LocalDBBackendCfgClient;
+import org.opends.server.admin.std.client.PluggableBackendCfgClient;
import org.opends.server.admin.std.client.RootCfgClient;
+import org.opends.server.backends.jeb.RemoveOnceLocalDBBackendIsPluggable;
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.DN;
import org.opends.server.types.OpenDsException;
@@ -286,23 +289,52 @@
* @throws OpenDsException
* if an error occurs.
*/
- private void deleteIndex(InitialLdapContext ctx, AbstractIndexDescriptor index) throws OpenDsException
+ private void deleteIndex(final InitialLdapContext ctx, final AbstractIndexDescriptor index) throws OpenDsException
{
final ManagementContext mCtx = LDAPManagementContext.createFromContext(JNDIDirContextAdaptor.adapt(ctx));
final RootCfgClient root = mCtx.getRootConfiguration();
- final LocalDBBackendCfgClient backend =
- (LocalDBBackendCfgClient) root.getBackend(index.getBackend().getBackendID());
- if (isVLVIndex(index))
+ final BackendCfgClient backend = root.getBackend(index.getBackend().getBackendID());
+
+ if (backend instanceof LocalDBBackendCfgClient)
{
- backend.removeLocalDBVLVIndex(index.getName());
+ removeLocalDBIndex((LocalDBBackendCfgClient) backend, index);
}
else
{
- backend.removeLocalDBIndex(index.getName());
+ removeBackendIndex((PluggableBackendCfgClient) backend, index);
}
backend.commit();
}
+ private void removeBackendIndex(final PluggableBackendCfgClient backend, final AbstractIndexDescriptor index)
+ throws OpenDsException
+ {
+ final String indexName = index.getName();
+ if (isVLVIndex(index))
+ {
+ backend.removeBackendVLVIndex(indexName);
+ }
+ else
+ {
+ backend.removeBackendIndex(indexName);
+ }
+ }
+
+ @RemoveOnceLocalDBBackendIsPluggable
+ private void removeLocalDBIndex(final LocalDBBackendCfgClient backend, final AbstractIndexDescriptor index)
+ throws OpenDsException
+ {
+ final String indexName = index.getName();
+ if (isVLVIndex(index))
+ {
+ backend.removeLocalDBVLVIndex(indexName);
+ }
+ else
+ {
+ backend.removeLocalDBIndex(indexName);
+ }
+ }
+
@Override
protected String getCommandLinePath()
{
--
Gitblit v1.10.0