From b671de6dbf50ca89cb0b9e4d7da6c81ae3017c82 Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Tue, 18 Feb 2014 14:19:36 +0000
Subject: [PATCH] Checkpoint OPENDJ-1343 Migrate dsconfig / OPENDJ-1303 "opendj-cli" - org.opends.server.util.cli.[*] calls replaced by equivalent CLI sdk's classes. - fixed upgrade cli -> <string<.equals(LocalizedMessaged) - moved methods from console application to ReplicationMainCli.
---
opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java | 67 +++++++++++++++++++++------------
1 files changed, 43 insertions(+), 24 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java b/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java
index 6758322..482da72 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java
@@ -32,11 +32,13 @@
import static org.opends.messages.QuickSetupMessages.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.messages.UtilityMessages.*;
+import static com.forgerock.opendj.cli.Utils.CONFIRMATION_MAX_TRIES;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.security.KeyStoreException;
@@ -70,14 +72,15 @@
import org.opends.server.util.CertificateManager;
import org.opends.server.util.SetupUtils;
import org.opends.server.util.StaticUtils;
+
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.IntegerArgument;
import com.forgerock.opendj.cli.StringArgument;
import com.forgerock.opendj.cli.ClientException;
-import org.opends.server.util.cli.ConsoleApplication;
-import org.opends.server.util.cli.Menu;
-import org.opends.server.util.cli.MenuBuilder;
-import org.opends.server.util.cli.MenuResult;
+import com.forgerock.opendj.cli.ConsoleApplication;
+import com.forgerock.opendj.cli.Menu;
+import com.forgerock.opendj.cli.MenuBuilder;
+import com.forgerock.opendj.cli.MenuResult;
/**
* This class provides a very simple mechanism for installing the OpenDS
@@ -247,7 +250,7 @@
*/
public InstallDS(PrintStream out, PrintStream err, InputStream in)
{
- super(in, out, err);
+ super(out, err);
}
/**
@@ -411,7 +414,8 @@
println(QuickSetupMessages.
INFO_LICENSE_DETAILS_CLI_LABEL.get());
- BufferedReader in = getInputStream();
+ BufferedReader in = new BufferedReader(new InputStreamReader(getInputStream()));
+
// No-prompt arg automatically rejects the license.
if (!argParser.noPromptArg.isPresent())
{
@@ -478,6 +482,18 @@
initializeUserDataWithParser(uData);
}
}
+ catch (ClientException ce)
+ {
+ println(ce.getMessageObject());
+ if (isPasswordTriesError(ce.getMessageObject()))
+ {
+ return ErrorReturnCode.ERROR_PASSWORD_LIMIT.getReturnCode();
+ }
+ else
+ {
+ return ErrorReturnCode.ERROR_USER_DATA.getReturnCode();
+ }
+ }
catch (UserDataException ude)
{
println(ude.getMessageObject());
@@ -544,11 +560,11 @@
public void progressUpdate(ProgressUpdateEvent ev) {
if (ev.getNewLogs() != null)
{
- printProgress(ev.getNewLogs());
+ print(ev.getNewLogs());
}
}
});
- printlnProgress();
+ println();
installer.run();
@@ -570,9 +586,9 @@
Installation.UNIX_BINARIES_PATH_RELATIVE);
cmd = Utils.getPath(binDir, Installation.UNIX_STATUSCLI_FILE_NAME);
}
- printlnProgress();
- printProgress(INFO_INSTALLDS_STATUS_COMMAND_LINE.get(cmd));
- printlnProgress();
+ println();
+ println(INFO_INSTALLDS_STATUS_COMMAND_LINE.get(cmd));
+ println();
if (ue != null)
{
@@ -706,7 +722,7 @@
errorMessages.add(message);
}
uData.setDirectoryManagerDn(dmDN);
- uData.setDirectoryManagerPwd(argParser.getDirectoryManagerPassword());
+ uData.setDirectoryManagerPwd(String.valueOf(argParser.getDirectoryManagerPassword()));
// Check the validity of the base DNs
List<String> baseDNs = argParser.baseDNArg.getValues();
@@ -929,8 +945,9 @@
* @param uData the UserData object to be updated.
* @throws UserDataException if the user did not manage to provide the
* keystore password after a certain number of tries.
+ * @throws ClientException if something went wrong when reading inputs.
*/
- private void promptIfRequired(UserData uData) throws UserDataException
+ private void promptIfRequired(UserData uData) throws UserDataException, ClientException
{
uData.setQuiet(isQuiet());
uData.setVerbose(isVerbose());
@@ -951,16 +968,17 @@
* not valid, it prompts the user to provide it.
* @param uData the UserData object to be updated.
* @throws UserDataException if something went wrong checking the data.
+ * @throws ClientException if something went wrong checking passwords.
*/
private void promptIfRequiredForDirectoryManager(UserData uData)
- throws UserDataException
+ throws UserDataException, ClientException
{
LinkedList<String> dns = promptIfRequiredForDNs(
argParser.directoryManagerDNArg, INFO_INSTALLDS_PROMPT_ROOT_DN.get(),
true);
uData.setDirectoryManagerDn(dns.getFirst());
- String pwd = argParser.getDirectoryManagerPassword();
+ char[] pwd = argParser.getDirectoryManagerPassword();
int nTries = 0;
while (pwd == null)
{
@@ -969,12 +987,12 @@
throw new UserDataException(null,
ERR_TRIES_LIMIT_REACHED.get(CONFIRMATION_MAX_TRIES));
}
- String pwd1 = null;
+ char[] pwd1 = null;
// Prompt for password and confirm.
while (pwd1 == null)
{
- pwd1 = readPassword(INFO_INSTALLDS_PROMPT_ROOT_PASSWORD.get(), logger);
+ pwd1 = readPassword(INFO_INSTALLDS_PROMPT_ROOT_PASSWORD.get());
if ((pwd1 == null) || "".equals(pwd1))
{
pwd1 = null;
@@ -983,8 +1001,8 @@
println();
}
}
- String pwd2 =
- readPassword(INFO_INSTALLDS_PROMPT_CONFIRM_ROOT_PASSWORD.get(), logger);
+ char[] pwd2 =
+ readPassword(INFO_INSTALLDS_PROMPT_CONFIRM_ROOT_PASSWORD.get());
if (pwd1.equals(pwd2))
{
@@ -998,7 +1016,7 @@
nTries++;
}
- uData.setDirectoryManagerPwd(pwd);
+ uData.setDirectoryManagerPwd(String.valueOf(pwd));
}
/**
@@ -1558,9 +1576,10 @@
* @throws UserDataException
* if the user did not manage to provide the keystore password after
* a certain number of tries.
+ * @throws ClientException If an error occurs when reading inputs.
*/
private SecurityOptions promptIfRequiredForSecurityData(UserData uData)
- throws UserDataException
+ throws UserDataException, ClientException
{
// Check that the security data provided is valid.
boolean enableSSL = false;
@@ -2008,10 +2027,11 @@
* parameters (or to what the user provided after being prompted).
* @throws UserDataException if the user did not manage to provide the
* keystore password after a certain number of tries.
+ * @throws ClientException
*/
private SecurityOptions createSecurityOptionsPrompting(
SecurityOptions.CertificateType type, boolean enableSSL,
- boolean enableStartTLS, int ldapsPort) throws UserDataException
+ boolean enableStartTLS, int ldapsPort) throws UserDataException, ClientException
{
SecurityOptions securityOptions;
String path;
@@ -2125,8 +2145,7 @@
throw new UserDataException(null,
ERR_INSTALLDS_TOO_MANY_KEYSTORE_PASSWORD_TRIES.get(LIMIT_KEYSTORE_PASSWORD_PROMPT));
}
- pwd = readPassword(
- INFO_INSTALLDS_PROMPT_KEYSTORE_PASSWORD.get(), logger);
+ pwd = String.valueOf(readPassword(INFO_INSTALLDS_PROMPT_KEYSTORE_PASSWORD.get()));
nPasswordPrompts ++;
}
}
--
Gitblit v1.10.0