From e1f1199702abbd0e8c953b872872090a7daad0a0 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Thu, 10 Apr 2008 23:07:07 +0000
Subject: [PATCH] Fix for issue 3144 (Uninstall's exit status 0 (success) despite user error and Input tries limit reached (5)) and 3127 ( "uninstall --help" unclear message).
---
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/Launcher.java | 4 +
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java | 10 +++
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ReturnCode.java | 5 +
opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java | 2
opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliArgumentParser.java | 8 +-
opendj-sdk/opends/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java | 56 ++++++------------
opendj-sdk/opends/src/guitools/org/opends/guitools/uninstaller/UninstallerArgumentParser.java | 5 +
opendj-sdk/opends/src/messages/messages/admin_tool.properties | 40 ++++++------
8 files changed, 66 insertions(+), 64 deletions(-)
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliArgumentParser.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliArgumentParser.java
index 0df5ca9..216fc6b 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliArgumentParser.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliArgumentParser.java
@@ -354,8 +354,8 @@
if (getBindPasswordAdmin() == null)
{
errors.add(ERR_REPLICATION_NO_ADMINISTRATOR_PASSWORD_PROVIDED.get(
- secureArgsList.bindPasswordArg.getLongIdentifier(),
- secureArgsList.bindPasswordFileArg.getLongIdentifier()));
+ "--"+secureArgsList.bindPasswordArg.getLongIdentifier(),
+ "--"+secureArgsList.bindPasswordFileArg.getLongIdentifier()));
}
}
@@ -591,7 +591,7 @@
useSecondServerAsSchemaSourceArg = new BooleanArgument(
"usesecondserverasschemasource", null, "useSecondServerAsSchemaSource",
INFO_DESCRIPTION_ENABLE_REPLICATION_USE_SECOND_AS_SCHEMA_SOURCE.get(
- noSchemaReplicationArg.getLongIdentifier()));
+ "--"+noSchemaReplicationArg.getLongIdentifier()));
enableReplicationSubCmd = new SubCommand(this,
ENABLE_REPLICATION_SUBCMD_NAME,
@@ -2152,7 +2152,7 @@
if (quietArg.isPresent())
{
Message message = ERR_REPLICATION_STATUS_QUIET.get(
- STATUS_REPLICATION_SUBCMD_NAME, quietArg.getLongIdentifier());
+ STATUS_REPLICATION_SUBCMD_NAME, "--"+quietArg.getLongIdentifier());
addMessage(buf, message);
}
}
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
index 12e2787..d264828 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
@@ -481,7 +481,7 @@
else
{
println(ERR_REPLICATION_VALID_SUBCOMMAND_NOT_FOUND.get(
- ToolConstants.OPTION_LONG_NO_PROMPT));
+ "--"+ToolConstants.OPTION_LONG_NO_PROMPT));
println(Message.raw(argParser.getUsage()));
returnValue = ERROR_USER_DATA;
subcommandLaunched = false;
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java
index 99df8b3..64a0b56 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java
@@ -274,7 +274,7 @@
* otherwise.
*/
private boolean askWhatToDelete(UninstallUserData userData,
- Set<String> outsideDbs, Set<String> outsideLogs)
+ Set<String> outsideDbs, Set<String> outsideLogs) throws UserDataException
{
boolean cancelled = false;
final int REMOVE_ALL = 1;
@@ -322,13 +322,8 @@
}
catch (CLIException ce)
{
- choice = REMOVE_ALL;
- cancelled = true;
LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
- if (ce.getMessageObject().getDescriptor().equals(ERR_TRIES_LIMIT_REACHED))
- {
- println(ce.getMessageObject());
- }
+ throw new UserDataException(null, ce.getMessageObject(), ce);
}
if (cancelled)
@@ -389,9 +384,7 @@
}
catch (CLIException ce)
{
- println(ce.getMessageObject());
- println();
- cancelled = true;
+ throw new UserDataException(null, ce.getMessageObject(), ce);
}
if (!cancelled)
@@ -529,9 +522,7 @@
}
catch (CLIException ce)
{
- println(ce.getMessageObject());
- println();
- cancelled = true;
+ throw new UserDataException(null, ce.getMessageObject(), ce);
}
}
else
@@ -589,9 +580,7 @@
}
catch (CLIException ce)
{
- println(ce.getMessageObject());
- println();
- cancelled = true;
+ throw new UserDataException(null, ce.getMessageObject(), ce);
}
}
else
@@ -640,9 +629,7 @@
}
catch (CLIException ce)
{
- println(ce.getMessageObject());
- println();
- cancelled = true;
+ throw new UserDataException(null, ce.getMessageObject(), ce);
}
}
else
@@ -658,9 +645,7 @@
}
catch (CLIException ce)
{
- println(ce.getMessageObject());
- println();
- cancelled = true;
+ throw new UserDataException(null, ce.getMessageObject(), ce);
}
}
}
@@ -733,8 +718,11 @@
* to update the remote servers.
* @return <CODE>true</CODE> if the user wants to continue and update the
* remote servers. <CODE>false</CODE> otherwise.
+ * @throws UserDataException if there is a problem with the information
+ * provided by the user.
*/
private boolean askForAuthenticationIfNeeded(UninstallUserData userData)
+ throws UserDataException
{
boolean accepted = true;
String uid = userData.getAdminUID();
@@ -903,9 +891,7 @@
}
catch (CLIException ce)
{
- println(ce.getMessageObject());
- println();
- accepted = false;
+ throw new UserDataException(null, ce.getMessageObject(), ce);
}
}
}
@@ -1170,18 +1156,19 @@
if (forceOnError)
{
println(ERR_UNINSTALL_ERROR_UPDATING_REMOTE_FORCE.get(
- parser.getSecureArgsList().adminUidArg.getLongIdentifier(),
- ToolConstants.OPTION_LONG_BINDPWD,
- ToolConstants.OPTION_LONG_BINDPWD_FILE));
+ "--"+parser.getSecureArgsList().adminUidArg.getLongIdentifier(),
+ "--"+ToolConstants.OPTION_LONG_BINDPWD,
+ "--"+ToolConstants.OPTION_LONG_BINDPWD_FILE));
}
else
{
throw new UserDataException(null,
ERR_UNINSTALL_ERROR_UPDATING_REMOTE_NO_FORCE.get(
+ "--"+
parser.getSecureArgsList().adminUidArg.getLongIdentifier(),
- ToolConstants.OPTION_LONG_BINDPWD,
- ToolConstants.OPTION_LONG_BINDPWD_FILE,
- parser.forceOnErrorArg.getLongIdentifier()));
+ "--"+ToolConstants.OPTION_LONG_BINDPWD,
+ "--"+ToolConstants.OPTION_LONG_BINDPWD_FILE,
+ "--"+parser.forceOnErrorArg.getLongIdentifier()));
}
}
else
@@ -1194,8 +1181,7 @@
}
catch (CLIException ce)
{
- println(ce.getMessageObject());
- accepted = false;
+ throw new UserDataException(null, ce.getMessageObject(), ce);
}
}
}
@@ -1303,9 +1289,7 @@
}
catch (CLIException ce)
{
- println(ce.getMessageObject());
- println();
- returnValue = false;
+ throw new UserDataException(null, ce.getMessageObject(), ce);
}
}
else if (reloadTopologyCache)
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/uninstaller/UninstallerArgumentParser.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/uninstaller/UninstallerArgumentParser.java
index f3831da..9a3637d 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/uninstaller/UninstallerArgumentParser.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/uninstaller/UninstallerArgumentParser.java
@@ -166,7 +166,7 @@
'f',
"forceOnError",
INFO_UNINSTALLDS_DESCRIPTION_FORCE.get(
- noPromptArg.getLongIdentifier()));
+ "--"+noPromptArg.getLongIdentifier()));
args.add(forceOnErrorArg);
quietArg = new BooleanArgument(
OPTION_LONG_QUIET,
@@ -377,7 +377,8 @@
if (!noPromptArg.isPresent() && forceOnErrorArg.isPresent())
{
Message message = ERR_UNINSTALL_FORCE_REQUIRES_NO_PROMPT.get(
- forceOnErrorArg.getLongIdentifier(), noPromptArg.getLongIdentifier());
+ "--"+forceOnErrorArg.getLongIdentifier(),
+ "--"+noPromptArg.getLongIdentifier());
if (buf.length() > 0)
{
buf.append(EOL);
diff --git a/opendj-sdk/opends/src/messages/messages/admin_tool.properties b/opendj-sdk/opends/src/messages/messages/admin_tool.properties
index 4727124..5387ec1 100644
--- a/opendj-sdk/opends/src/messages/messages/admin_tool.properties
+++ b/opendj-sdk/opends/src/messages/messages/admin_tool.properties
@@ -166,15 +166,15 @@
to replicate some of its Base DNs. There was an error retrieving the \
references to it in the replicated servers. Note that to be able to remove \
remote references you must provide Global Administrator credentials using the \
- {%s} and {%s} (or {%s}) options.%nContinuing uninstall as we are \
+ %s and %s (or %s) options.%nContinuing uninstall as we are \
on force on error mode.
SEVERE_ERR_UNINSTALL_ERROR_UPDATING_REMOTE_NO_FORCE=This server is configured \
to replicate some of its Base DNs. There was an error retrieving the \
references to it in the replicated servers. Note that to be able to remove \
remote references you must provide Global Administrator credentials using the \
- {%s} and {%s} (or {%s}) options.%nCheck that the connection parameters you \
+ %s and %s (or %s) options.%nCheck that the connection parameters you \
provided are correct.%nIf you want to uninstall the server even when remote \
- references cannot be removed, you can use the {%s} option.
+ references cannot be removed, you can use the %s option.
MILD_ERR_UNINSTALL_NOT_UPDATE_REMOTE_PROMPT=This server is configured \
to replicate some of its Base DNs. There was an error retrieving the \
references to it in the replicated servers.%nDo you want to continue?
@@ -366,7 +366,7 @@
INFO_UNKNOWN_LABEL=--
INFO_UNINSTALLDS_DESCRIPTION_FORCE=Specifies whether the uninstall should \
continue if there is an error updating references to this server in remote \
- OpenDS instances or not. This argument can only be used with the {%s} no \
+ OpenDS instances or not. This argument can only be used with the %s no \
prompt argument.
INFO_DESCRIPTION_REFERENCED_HOST=The name of this host (or IP address) as \
it is referenced in remote servers for replication
@@ -428,7 +428,7 @@
schema between the servers
INFO_DESCRIPTION_ENABLE_REPLICATION_USE_SECOND_AS_SCHEMA_SOURCE=Use the second \
server to initialize the schema of the first server. If this option nor \
- option {%s} are specified the schema of the first server will be used to \
+ option %s are specified the schema of the first server will be used to \
initialize the schema of the second server
INFO_DESCRIPTION_ENABLE_REPLICATION_BINDPASSWORD2=Password \
to use to bind to the second server whose contents will be replicated. If no \
@@ -455,7 +455,7 @@
replication. Multiple base DNs can be provided by using this option multiple \
times
INFO_DESCRIPTION_REPLICATION_ADMIN_UID=User ID of the \
- Global Administrator to use to bind to the server. For the {%s} subcommand \
+ Global Administrator to use to bind to the server. For the '%s' subcommand \
if no Global Administrator was defined previously for none of the server one \
will be created using the provided data.
INFO_DESCRIPTION_REPLICATION_ADMIN_BINDPASSWORD=The global \
@@ -487,8 +487,8 @@
INFO_REPLICATION_TOOL_DESCRIPTION=This utility can be used to configure \
replication between servers so that the data of the servers is synchronized.\
For replication to work you must first to enable replication using the \
- {%s} subcommand and then initialize the contents of one of \
- the servers with the contents of the other using the {%s} subcommand.
+ '%s' subcommand and then initialize the contents of one of \
+ the servers with the contents of the other using the '%s' subcommand.
INFO_REPLICATION_DESCRIPTION_QUIET=Perform a quiet operation (no \
progress information is written to the standard output)
INFO_DESCRIPTION_DISABLE_REPLICATION_BINDDN=DN to use to \
@@ -500,11 +500,11 @@
INFO_DESCRIPTION_SUBCMD_INITIALIZE_REPLICATION=Initialize the contents of the \
data under the specified Base DN on the destination server with the contents \
on the source server. This operation is required after enabling replication \
- in order replication to work ({%s} can also be used for this purpose).
+ in order replication to work ('%s' can also be used for this purpose).
INFO_DESCRIPTION_SUBCMD_INITIALIZE_ALL_REPLICATION=Initialize the contents of \
the data under the specified Base DN on all the servers whose contents are \
being replicated with the contents on the specified server. This operation \
- is required after enabling replication in order replication to work ({%s} \
+ is required after enabling replication in order replication to work ('%s' \
applied to each server can also be used for this purpose).
INFO_DESCRIPTION_SUBCMD_PRE_EXTERNAL_INITIALIZATION=This subcommand must be \
called before initializing the contents of all the replicated servers using \
@@ -512,13 +512,13 @@
Base DNs that will be initialized and you must \
provide the credentials of any of the servers that are being replicated. \
After calling this subcommand, initialize the contents of all the servers in \
- the topology, then call the subcommand {%s}.
+ the topology, then call the subcommand '%s'.
INFO_DESCRIPTION_SUBCMD_POST_EXTERNAL_INITIALIZATION=This subcommand must be \
called after initializing the contents of all the replicated servers using \
the tool import-ldif or the binary copy method. You \
must specify the list of Base DNs that have been initialized and you must \
provide the credentials of any of the servers that are being replicated. See \
- the usage of the subcommand {%s} for more information.
+ the usage of the subcommand '%s' for more information.
INFO_DESCRIPTION_SUBCMD_ENABLE_REPLICATION=Updates the configuration of the \
servers to replicate the data under the specified Base DN. If one of the \
specified servers is already replicating the data under the Base DN with \
@@ -536,7 +536,7 @@
DN in no interactive mode.
SEVERE_ERR_REPLICATION_NO_ADMINISTRATOR_PASSWORD_PROVIDED=You must provide the \
password of the global administrator in non interactive mode. You can \
- provide it using the {%s} or the {%s} options.
+ provide it using the %s or the %s options.
SEVERE_ERR_REPLICATION_NOT_A_VALID_BASEDN=The provided value %s is not a valid \
base DN.
SEVERE_ERR_REPLICATION_ENABLE_SAME_SERVER_PORT=You have to provide two \
@@ -551,16 +551,16 @@
SEVERE_ERR_REPLICATION_SAME_REPLICATION_PORT=You have provided the same \
replication port (%s) for two servers located on the same machine (%s).
SEVERE_ERR_REPLICATION_VALID_SUBCOMMAND_NOT_FOUND=Could not find a valid \
- subcommand. You must specify a subcommand when using the option {%s}.
-SEVERE_ERR_REPLICATION_STATUS_QUIET=The {%s} subcommand is not compatible with \
- the {%s} argument.
+ subcommand. You must specify a subcommand when using the option %s.
+SEVERE_ERR_REPLICATION_STATUS_QUIET=The '%s' subcommand is not compatible with \
+ the %s argument.
INFO_REPLICATION_SUCCESSFUL=The operation has been successfully completed
INFO_REPLICATION_SUCCESSFUL_NOP=The operation has been successfully completed, \
but no action was required
MILD_ERR_REPLICATION_USER_CANCELLED=User cancelled the operation
SEVERE_ERR_REPLICATION_NO_MESSAGE=
-SEVERE_ERR_UNINSTALL_FORCE_REQUIRES_NO_PROMPT=The {%s} argument only can be \
- used when {%s} has been specified
+SEVERE_ERR_UNINSTALL_FORCE_REQUIRES_NO_PROMPT=The %s argument only can be \
+ used when %s has been specified
INFO_REPLICATION_ENABLE_ADMINISTRATOR_MUST_BE_CREATED=You must provide the \
credentials of the Global Administrator that will be used to manage the OpenDS \
instances that are being replicated.
@@ -771,13 +771,13 @@
INFO_PROGRESS_PRE_INITIALIZATION_LOCAL_FINISHED_PROCEDURE=Now you can proceed \
to the initialization of the contents of the base DNs on server %s. You can \
use the command import-ldif or the binary copy to do so.%n%nWhen the \
- initialization is completed you must use the subcommand {%s} for replication \
+ initialization is completed you must use the subcommand '%s' for replication \
to work with the new base DNs.
INFO_PROGRESS_PRE_INITIALIZATION_FINISHED_PROCEDURE=Now you can proceed \
to the initialization of the contents of the base DNs on all the replicated \
servers. You can use the command import-ldif or the binary copy to do \
so.%n%nWhen the initialization is completed you must use the subcommand \
- {%s} for replication to work with the new base DNs contents.
+ '%s' for replication to work with the new base DNs contents.
INFO_PROGRESS_POST_INITIALIZATION_FINISHED_PROCEDURE=Post initialization \
procedure completed successfully.
SEVERE_ERR_POOLING_PRE_EXTERNAL_INITIALIZATION=Error reading the progress of \
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/Launcher.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/Launcher.java
index 0f84e48..cfdb5bf 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/Launcher.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/Launcher.java
@@ -300,6 +300,10 @@
{
System.exit(ReturnCode.CANCELLED.getReturnCode());
}
+ else if (returnValue.equals(ReturnCode.USER_INPUT_ERROR))
+ {
+ System.exit(ReturnCode.USER_INPUT_ERROR.getReturnCode());
+ }
return returnValue.getReturnCode();
}
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java
index dc60f7c..9fc4fdb 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java
@@ -33,6 +33,7 @@
import org.opends.quicksetup.event.ProgressUpdateListener;
import org.opends.quicksetup.event.ProgressUpdateEvent;
import org.opends.server.util.StaticUtils;
+import org.opends.server.util.cli.CLIException;
import org.opends.messages.Message;
/**
@@ -134,7 +135,14 @@
System.err.println(StaticUtils.wrapText(uude.getLocalizedMessage(),
Utils.getCommandLineMaxLineWidth()));
System.err.println();
- returnValue = ReturnCode.USER_DATA_ERROR;
+ if (uude.getCause() instanceof CLIException)
+ {
+ returnValue = ReturnCode.USER_INPUT_ERROR;
+ }
+ else
+ {
+ returnValue = ReturnCode.USER_DATA_ERROR;
+ }
}
return returnValue;
}
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ReturnCode.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ReturnCode.java
index b4ed83a..44f7b25 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ReturnCode.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ReturnCode.java
@@ -106,6 +106,11 @@
public static final ReturnCode JAVA_VERSION_INCOMPATIBLE = new ReturnCode(13);
/**
+ * Return code: user provided invalid input.
+ */
+ public static final ReturnCode USER_INPUT_ERROR = new ReturnCode(14);
+
+ /**
* Return code: Print Version.
*/
public static final ReturnCode PRINT_VERSION = new ReturnCode(50);
--
Gitblit v1.10.0