opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java
@@ -32,7 +32,6 @@ import java.util.Enumeration; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; import java.util.SortedSet; @@ -62,11 +61,9 @@ import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.LdapException; import org.forgerock.opendj.server.config.client.BackendCfgClient; import org.forgerock.opendj.server.config.client.BackendIndexCfgClient; import org.forgerock.opendj.server.config.client.PluggableBackendCfgClient; import org.forgerock.opendj.server.config.client.RootCfgClient; import org.forgerock.opendj.server.config.meta.BackendIndexCfgDefn; import org.forgerock.opendj.server.config.meta.BackendIndexCfgDefn.IndexType; import org.opends.admin.ads.util.ConnectionWrapper; import org.opends.guitools.controlpanel.datamodel.BackendDescriptor; import org.opends.guitools.controlpanel.datamodel.BaseDNDescriptor; import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo; @@ -82,7 +79,7 @@ import org.opends.quicksetup.installer.InstallerHelper; import org.opends.quicksetup.util.Utils; import org.opends.server.tools.BackendCreationHelper; import org.opends.server.tools.BackendCreationHelper.DefaultIndex; import org.opends.server.tools.BackendCreationHelper.CreateIndex; import org.opends.server.tools.BackendTypeHelper; import org.opends.server.tools.BackendTypeHelper.BackendTypeUIAdapter; import org.opends.server.tools.ImportLDIF; @@ -863,12 +860,6 @@ }); performTask(); printTaskDone(); if (isNewBackend()) { createAdditionalIndexes(); } refreshProgressBar(); } private void updateConfigurationOffline() throws Exception @@ -877,8 +868,6 @@ try { performTask(); printTaskDone(); refreshProgressBar(); } finally { @@ -907,12 +896,17 @@ { printCreateNewBackendProgress(backendName); createBackend(backendName); printTaskDone(); displayCreateAdditionalIndexesDsConfigCmdLine(); printTaskDone(); } else { printCreateNewBaseDNProgress(backendName); addNewBaseDN(backendName); printTaskDone(); } refreshProgressBar(); } private void createBackend(String backendName) throws Exception @@ -923,7 +917,7 @@ } else { createBackendOnline(backendName); createBackendOnline(backendName, getInfo().getConnection()); } } @@ -940,10 +934,10 @@ } } private void createBackendOnline(String backendName) throws Exception private void createBackendOnline(String backendName, ConnectionWrapper conn) throws Exception { Set<DN> baseDNs = Collections.singleton(DN.valueOf(newBaseDN)); BackendCreationHelper.createBackendOffline(backendName, baseDNs, getSelectedBackendType().getBackend()); BackendCreationHelper.createBackendOnline(backendName, baseDNs, getSelectedBackendType().getBackend(), conn); } private RootCfgClient getRootConfigurationClient() throws LdapException @@ -987,33 +981,6 @@ } } private void createAdditionalIndexes() throws Exception { final String backendName = getBackendName(); displayCreateAdditionalIndexesDsConfigCmdLine(); final RootCfgClient root = getRootConfigurationClient(); addBackendDefaultIndexes((PluggableBackendCfgClient) root.getBackend(backendName)); displayCreateAdditionalIndexesDone(); } private void addBackendDefaultIndexes(PluggableBackendCfgClient backendCfgClient) throws Exception { for (DefaultIndex defaultIndex : BackendCreationHelper.DEFAULT_INDEXES) { final BackendIndexCfgClient index = backendCfgClient.createBackendIndex( BackendIndexCfgDefn.getInstance(), defaultIndex.getName(), null); final List<IndexType> indexTypes = new LinkedList<>(); indexTypes.add(IndexType.EQUALITY); if (defaultIndex.shouldCreateSubstringIndex()) { indexTypes.add(IndexType.SUBSTRING); } index.setIndexType(indexTypes); index.commit(); } } private void printCreateNewBaseDNProgress(final String backendName) throws OpenDsException { SwingUtilities.invokeLater(new Runnable() @@ -1060,9 +1027,9 @@ private void displayCreateAdditionalIndexesDsConfigCmdLine() { final List<List<String>> argsArray = new ArrayList<>(); for (DefaultIndex defaultIndex : BackendCreationHelper.DEFAULT_INDEXES) for (CreateIndex index : BackendCreationHelper.DEFAULT_INDEXES) { argsArray.add(getCreateIndexCommandLineArguments(defaultIndex)); argsArray.add(getCreateIndexCommandLineArguments(index)); } final StringBuilder sb = new StringBuilder(); @@ -1086,7 +1053,7 @@ }); } private List<String> getCreateIndexCommandLineArguments(final DefaultIndex defaultIndex) private List<String> getCreateIndexCommandLineArguments(final CreateIndex index) { final List<String> args = new ArrayList<>(); args.add("create-backend-index"); @@ -1095,10 +1062,10 @@ args.add("--type"); args.add("generic"); args.add("--index-name"); args.add(defaultIndex.getName()); args.add(index.getName()); args.add("--set"); args.add("index-type:" + IndexType.EQUALITY); if (defaultIndex.shouldCreateSubstringIndex()) if (index.shouldCreateSubstringIndex()) { args.add("--set"); args.add("index-type:" + IndexType.SUBSTRING); @@ -1110,19 +1077,6 @@ return args; } private void displayCreateAdditionalIndexesDone() { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { getProgressDialog().appendProgressHtml( Utilities.getProgressDone(ColorAndFontConstants.progressFont) + "<br><br>"); } }); } /** * Creates the data in the new base DN. * opendj-server-legacy/src/main/java/org/opends/server/tools/BackendCreationHelper.java
@@ -32,6 +32,7 @@ import org.forgerock.opendj.server.config.meta.BackendIndexCfgDefn; import org.forgerock.opendj.server.config.meta.BackendIndexCfgDefn.IndexType; import org.forgerock.opendj.server.config.server.BackendCfg; import org.opends.admin.ads.util.ConnectionWrapper; import org.opends.guitools.controlpanel.util.Utilities; import org.opends.quicksetup.Installation; @@ -39,22 +40,22 @@ public class BackendCreationHelper { /** Describes an attribute index which should be created during installation. */ public static final class DefaultIndex public static final class CreateIndex { private static DefaultIndex withEqualityAndSubstring(final String name) private static CreateIndex withEqualityAndSubstring(final String name) { return new DefaultIndex(name, true); return new CreateIndex(name, true); } private static DefaultIndex withEquality(final String name) private static CreateIndex withEquality(final String name) { return new DefaultIndex(name, false); return new CreateIndex(name, false); } private final String name; private final boolean shouldCreateSubstringIndex; private DefaultIndex(final String name, final boolean substringIndex) private CreateIndex(final String name, final boolean substringIndex) { this.name = name; this.shouldCreateSubstringIndex = substringIndex; @@ -81,18 +82,29 @@ { return shouldCreateSubstringIndex; } @Override public String toString() { String className = getClass().getSimpleName(); if (shouldCreateSubstringIndex) { return className + "(" + name + ".equality" + ", " + name + ".substring" + ")"; } return className + "(" + name + ".equality" + ")"; } } /** Default indexes to add in a new backend. */ public static final DefaultIndex[] DEFAULT_INDEXES = { DefaultIndex.withEqualityAndSubstring("cn"), DefaultIndex.withEqualityAndSubstring("givenName"), DefaultIndex.withEqualityAndSubstring("mail"), DefaultIndex.withEqualityAndSubstring("sn"), DefaultIndex.withEqualityAndSubstring("telephoneNumber"), DefaultIndex.withEquality("member"), DefaultIndex.withEquality("uid"), DefaultIndex.withEquality("uniqueMember") public static final CreateIndex[] DEFAULT_INDEXES = { CreateIndex.withEqualityAndSubstring("cn"), CreateIndex.withEqualityAndSubstring("givenName"), CreateIndex.withEqualityAndSubstring("mail"), CreateIndex.withEqualityAndSubstring("sn"), CreateIndex.withEqualityAndSubstring("telephoneNumber"), CreateIndex.withEquality("member"), CreateIndex.withEquality("uid"), CreateIndex.withEquality("uniqueMember") }; /** @@ -119,6 +131,27 @@ } /** * Add a new backend with the provided name in the config.ldif file. * * @param backendName * The new backend name * @param baseDNs * The base dns to add in the new backend. * @param backendType * The backend type * @param conn * The connection to the server * @throws Exception * If any problems occurred */ public static void createBackendOnline(String backendName, Collection<DN> baseDNs, ManagedObjectDefinition<? extends BackendCfgClient, ? extends BackendCfg> backendType, ConnectionWrapper conn) throws Exception { createBackend(conn.getRootConfiguration(), backendName, baseDNs, backendType); } /** * Create a backend with the provided name using the provided * {@code RootCfgClient}. * @@ -136,31 +169,31 @@ private static void createBackend(RootCfgClient rootConfiguration, String backendName, Collection<DN> baseDNs, ManagedObjectDefinition<? extends BackendCfgClient, ? extends BackendCfg> backendType) throws Exception { final BackendCfgClient backendCfgClient = rootConfiguration.createBackend(backendType, backendName, null); backendCfgClient.setEnabled(true); backendCfgClient.setBaseDN(baseDNs); backendCfgClient.setWritabilityMode(WritabilityMode.ENABLED); backendCfgClient.commit(); final BackendCfgClient backendCfgClient = rootConfiguration.createBackend(backendType, backendName, null); backendCfgClient.setEnabled(true); backendCfgClient.setBaseDN(baseDNs); backendCfgClient.setWritabilityMode(WritabilityMode.ENABLED); backendCfgClient.commit(); addBackendDefaultIndexes((PluggableBackendCfgClient) backendCfgClient); addBackendDefaultIndexes((PluggableBackendCfgClient) backendCfgClient); } private static void addBackendDefaultIndexes(PluggableBackendCfgClient backendCfgClient) throws Exception { for (DefaultIndex defaultIndex : DEFAULT_INDEXES) for (CreateIndex index : DEFAULT_INDEXES) { final BackendIndexCfgClient index = backendCfgClient.createBackendIndex(BackendIndexCfgDefn.getInstance(), defaultIndex.name, null); final BackendIndexCfgClient indexCfg = backendCfgClient.createBackendIndex(BackendIndexCfgDefn.getInstance(), index.name, null); final List<IndexType> indexTypes = new LinkedList<>(); indexTypes.add(IndexType.EQUALITY); if (defaultIndex.shouldCreateSubstringIndex) if (index.shouldCreateSubstringIndex) { indexTypes.add(IndexType.SUBSTRING); } index.setIndexType(indexTypes); indexCfg.setIndexType(indexTypes); index.commit(); indexCfg.commit(); } } }