mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

jvergara
29.50.2007 3dc9f3c278a91c87306ed750ad64f013b5d9c52c
Improve the status command-line interaction by asking the user for the BIndDN to use when this was not provided.  Before asking to use SSL or startTLS check that they can actually be used.

Rename StatusCliParser to StatusCliArgumentParser for coherency.

Define the no prompting options in ToolConstants.
1 files renamed
2 files modified
69 ■■■■ changed files
opendj-sdk/opends/src/guitools/org/opends/guitools/statuspanel/StatusCli.java 46 ●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/guitools/org/opends/guitools/statuspanel/StatusCliArgumentParser.java 11 ●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/tools/ToolConstants.java 12 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/guitools/org/opends/guitools/statuspanel/StatusCli.java
@@ -137,7 +137,7 @@
  static private final Logger LOG = Logger.getLogger(StatusCli.class.getName());
  // The argument parser
  private StatusCliParser argParser;
  private StatusCliArgumentParser argParser;
  /**
   * Constructor for the StatusCli object.
@@ -169,7 +169,7 @@
  /**
   * Parses the provided command-line arguments and uses that information to
   * run the replication tool.
   * run the status tool.
   *
   * @param args the command-line arguments provided to this program.
   *
@@ -183,7 +183,7 @@
  /**
   * Parses the provided command-line arguments and uses that information to
   * run the replication tool.
   * run the status tool.
   *
   * @param  args              The command-line arguments provided to this
   *                           program.
@@ -252,7 +252,7 @@
      DirectoryServer.bootstrapClient();
    }
    argParser = new StatusCliParser(StatusCli.class.getName());
    argParser = new StatusCliArgumentParser(StatusCli.class.getName());
    try
    {
      argParser.initializeGlobalArguments(err);
@@ -300,12 +300,11 @@
       */
      ConfigFromFile offLineConf = new ConfigFromFile();
      offLineConf.readConfiguration();
      try
      {
        if (isServerRunning)
        {
          String bindDn = argParser.getBindDN();
          String bindDn;
          String bindPwd;
          boolean useSSL = argParser.useSSL();
          boolean useStartTLS = argParser.useStartTLS();
@@ -313,17 +312,48 @@
          {
            boolean connected = false;
            boolean cancelled = false;
            boolean prompted = false;
            boolean canUseSSL = offLineConf.getLDAPSURL() != null;
            boolean canUseStartTLS = offLineConf.getStartTLSURL() != null;
            bindDn = argParser.getExplicitBindDn();
            bindPwd = argParser.getBindPassword();
            if (bindDn == null)
            {
              bindDn = promptForString(
                  INFO_CLI_BINDDN_PROMPT.get(), argParser.getDefaultBindDn());
              prompted = true;
            }
            if (bindPwd == null)
            {
              bindPwd = promptForPassword(
                  INFO_LDAPAUTH_PASSWORD_PROMPT.get(bindDn));
              prompted = true;
            }
            if (!useSSL && !useStartTLS)
            {
              if (canUseSSL)
              {
               useSSL = confirm(INFO_CLI_USESSL_PROMPT.get(), useSSL);
              }
              if (!useSSL && canUseStartTLS)
              {
                useStartTLS =
                  confirm(INFO_CLI_USESTARTTLS_PROMPT.get(), useStartTLS);
              }
              prompted = true;
            }
            InitialLdapContext ctx = null;
            while (!connected && !cancelled)
            {
              if (prompted)
              {
                printLineBreak();
              }
              String host = "localhost";
              int port = 389;
              try
@@ -355,6 +385,7 @@
                  useStartTLS =
                    confirm(INFO_CLI_USESTARTTLS_PROMPT.get(), useStartTLS);
                }
                prompted = true;
              }
              catch (NamingException ne)
              {
@@ -369,6 +400,7 @@
                  {
                    cancelled = true;
                  }
                  prompted = true;
                }
                else
                {
@@ -392,6 +424,7 @@
                    useStartTLS =
                      confirm(INFO_CLI_USESTARTTLS_PROMPT.get(), useStartTLS);
                  }
                  prompted = true;
                }
              }
            }
@@ -412,6 +445,7 @@
          }
          else
          {
            bindDn = argParser.getBindDN();
            bindPwd = argParser.getBindPassword();
            if (bindDn == null)
opendj-sdk/opends/src/guitools/org/opends/guitools/statuspanel/StatusCliArgumentParser.java
File was renamed from opendj-sdk/opends/src/guitools/org/opends/guitools/statuspanel/StatusCliParser.java
@@ -34,6 +34,7 @@
import java.util.ArrayList;
import org.opends.server.admin.client.cli.SecureConnectionCliParser;
import org.opends.server.tools.ToolConstants;
import org.opends.server.util.args.Argument;
import org.opends.server.util.args.ArgumentException;
import org.opends.server.util.args.BooleanArgument;
@@ -43,7 +44,7 @@
 * line.
 *
 */
public class StatusCliParser extends SecureConnectionCliParser
public class StatusCliArgumentParser extends SecureConnectionCliParser
{
  private BooleanArgument noPromptArg;
@@ -55,7 +56,7 @@
   *          be invoked to launch the program with which this
   *          argument parser is associated.
   */
  public StatusCliParser(String mainClassName)
  public StatusCliArgumentParser(String mainClassName)
  {
    super(mainClassName, INFO_STATUS_CLI_USAGE_DESCRIPTION.get(), false);
  }
@@ -78,9 +79,9 @@
    defaultArgs.remove(hostNameArg);
    defaultArgs.remove(verboseArg);
    noPromptArg = new BooleanArgument(
        NO_PROMPT_OPTION_LONG,
        NO_PROMPT_OPTION_SHORT,
        NO_PROMPT_OPTION_LONG,
        ToolConstants.OPTION_LONG_NO_PROMPT,
        ToolConstants.OPTION_SHORT_NO_PROMPT,
        ToolConstants.OPTION_LONG_NO_PROMPT,
        INFO_DESCRIPTION_NO_PROMPT.get());
    defaultArgs.add(0, noPromptArg);
    initializeGlobalArguments(defaultArgs);
opendj-sdk/opends/src/server/org/opends/server/tools/ToolConstants.java
@@ -655,5 +655,17 @@
   * Value for the quiet option long form.
   */
  public static final String OPTION_LONG_QUIET = "quiet";
  /**
   * Value for noninteractive session short form.
   */
  public static final Character OPTION_SHORT_NO_PROMPT = 'n';
  /**
   * Value for noninteractive session long form.
   */
  public static final String OPTION_LONG_NO_PROMPT = "no-prompt";
}