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

Gaetan Boismal
16.49.2016 c465af5b01eb04b869326e58bdb3495830dcbb8f
Fix bug in dsreplication and uninstall cli

Introduced by df993e4 -- OPENDJSDK-42 cli arguments fluent builder
The admin UID argument has been detached by error from the SecureConnectionCliArgs
in ReplicationCliArgumentParser and UninstallerArgumentParser.
This commit fixes the problem.
6 files modified
82 ■■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallCliHelper.java 6 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/Uninstaller.java 2 ●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallerArgumentParser.java 9 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java 30 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliArgumentParser.java 11 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java 24 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallCliHelper.java
@@ -1256,7 +1256,7 @@
        {
          println();
          printErrorMessage(ERR_UNINSTALL_ERROR_UPDATING_REMOTE_FORCE.get(
              "--"+parser.getSecureArgsList().adminUidHiddenArg.getLongIdentifier(),
              "--"+parser.getSecureArgsList().adminUidArg.getLongIdentifier(),
              "--"+OPTION_LONG_BINDPWD,
              "--"+OPTION_LONG_BINDPWD_FILE,
              exceptionMsg));
@@ -1267,7 +1267,7 @@
          throw new UserDataException(null,
              ERR_UNINSTALL_ERROR_UPDATING_REMOTE_NO_FORCE.get(
                  "--"+
                  parser.getSecureArgsList().adminUidHiddenArg.getLongIdentifier(),
                  parser.getSecureArgsList().adminUidArg.getLongIdentifier(),
                  "--"+OPTION_LONG_BINDPWD,
                  "--"+OPTION_LONG_BINDPWD_FILE,
                  "--"+parser.forceOnErrorArg.getLongIdentifier(),
@@ -1421,7 +1421,7 @@
          LocalizableMessage msg =
            ERR_UNINSTALL_ERROR_UPDATING_REMOTE_NO_FORCE.get(
              "--"+
              parser.getSecureArgsList().adminUidHiddenArg.getLongIdentifier(),
              parser.getSecureArgsList().adminUidArg.getLongIdentifier(),
              "--"+OPTION_LONG_BINDPWD,
              "--"+OPTION_LONG_BINDPWD_FILE,
              "--"+parser.forceOnErrorArg.getLongIdentifier(),
opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/Uninstaller.java
@@ -1952,7 +1952,7 @@
          LocalizableMessage msg =
            ERR_UNINSTALL_ERROR_UPDATING_REMOTE_NO_FORCE.get(
              "--"+
              parser.getSecureArgsList().adminUidHiddenArg.getLongIdentifier(),
              parser.getSecureArgsList().adminUidArg.getLongIdentifier(),
              "--"+OPTION_LONG_BINDPWD,
              "--"+OPTION_LONG_BINDPWD_FILE,
              "--"+parser.forceOnErrorArg.getLongIdentifier(),
opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallerArgumentParser.java
@@ -55,7 +55,6 @@
  private BooleanArgument removeLDIFFilesArg;
  private StringArgument referencedHostNameArg;
  private StringArgument adminUidArg;
  /** This CLI is always using the administration connector with SSL. */
  private final boolean alwaysSSL = true;
@@ -95,7 +94,6 @@
  throws ArgumentException
  {
    LinkedHashSet<Argument> args = new LinkedHashSet<>();
    adminUidArg = adminUid(INFO_DESCRIPTION_ADMIN_UID.get());
    cliArg = cliArgument();
    args.add(cliArg);
@@ -162,15 +160,16 @@
    args.add(quietArg);
    ArrayList<Argument> defaultArgs = new ArrayList<>(createGlobalArguments(outStream, alwaysSSL));
    secureArgsList.createVisibleAdminUidArgument(INFO_DESCRIPTION_ADMIN_UID.get());
    int index = defaultArgs.indexOf(secureArgsList.bindDnArg);
    if (index != -1)
    {
      defaultArgs.add(index, adminUidArg);
      defaultArgs.add(index, secureArgsList.adminUidArg);
      defaultArgs.remove(secureArgsList.bindDnArg);
    }
    else
    {
      defaultArgs.add(adminUidArg);
      defaultArgs.add(secureArgsList.adminUidArg);
    }
    defaultArgs.remove(secureArgsList.hostNameArg);
    defaultArgs.remove(secureArgsList.portArg);
@@ -315,7 +314,7 @@
   */
  public String getDefaultAdministratorUID()
  {
    return adminUidArg.getDefaultValue();
    return secureArgsList.adminUidArg.getDefaultValue();
  }
  /**
opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
@@ -75,7 +75,7 @@
  /** The 'bindDN' global argument. */
  public StringArgument bindDnArg;
  /** The 'adminUID' global argument. */
  public StringArgument adminUidHiddenArg;
  public StringArgument adminUidArg;
  /** The 'bindPasswordFile' global argument. */
  public FileBasedArgument bindPasswordFileArg;
  /** The 'bindPassword' global argument. */
@@ -157,11 +157,11 @@
   */
  public String getAdministratorUID()
  {
    if (adminUidHiddenArg.isPresent())
    if (adminUidArg.isPresent())
    {
      return adminUidHiddenArg.getValue();
      return adminUidArg.getValue();
    }
    return adminUidHiddenArg.getDefaultValue();
    return adminUidArg.getDefaultValue();
  }
  /**
@@ -173,7 +173,7 @@
   */
  public boolean useAdminUID()
  {
    return !adminUidHiddenArg.isHidden();
    return !adminUidArg.isHidden();
  }
  /**
@@ -230,7 +230,7 @@
    argList.add(bindDnArg);
    // Classes that required admin UID to be not hidden must use CommonsArguments.adminUid().
    adminUidHiddenArg = adminUidHiddenArgument(INFO_DESCRIPTION_ADMIN_UID.get());
    adminUidArg = adminUidHiddenArgument(INFO_DESCRIPTION_ADMIN_UID.get());
    bindPasswordArg = bindPasswordArgument();
    argList.add(bindPasswordArg);
@@ -646,6 +646,24 @@
    }
  }
  /**
   * Replace the admin UID argument by a non hidden one.
   *
   * @param description
   *         The localized description for the non hidden admin UID argument.
   */
  public void createVisibleAdminUidArgument(final LocalizableMessage description)
  {
    try
    {
      this.adminUidArg = adminUid(description);
    }
    catch (ArgumentException e)
    {
      // Will never append.
    }
  }
  private IntegerArgument createPortArgument(final int defaultValue) throws ArgumentException
  {
    return portArgument(
opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliArgumentParser.java
@@ -192,9 +192,6 @@
  /** the 'change-number' argument for task reset-changenumber. */
  IntegerArgument resetChangeNumber;
  /** The "adminUid" non hidden argument */
  StringArgument adminUidArg;
  /** The text of the enable replication subcommand. */
  static final String ENABLE_REPLICATION_SUBCMD_NAME = "enable";
  /** The text of the disable replication subcommand. */
@@ -422,9 +419,9 @@
                    .buildArgument();
    defaultArgs.add(index++, baseDNsArg);
    adminUidArg = adminUid(
            INFO_DESCRIPTION_REPLICATION_ADMIN_UID.get(ENABLE_REPLICATION_SUBCMD_NAME));
    defaultArgs.add(index++, adminUidArg);
    secureArgsList.createVisibleAdminUidArgument(
        INFO_DESCRIPTION_REPLICATION_ADMIN_UID.get(ENABLE_REPLICATION_SUBCMD_NAME));
    defaultArgs.add(index++, secureArgsList.adminUidArg);
    secureArgsList.bindPasswordArg =
            StringArgument.builder(OPTION_LONG_ADMIN_PWD)
@@ -965,7 +962,7 @@
   */
  StringArgument getAdminUidArg()
  {
    return adminUidArg;
    return secureArgsList.adminUidArg;
  }
  /**
opendj-server-legacy/src/main/java/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java
@@ -619,9 +619,9 @@
    // Get the LDAP bind credentials.
    state.bindDN = secureArgsList.bindDnArg.getValue();
    state.adminUID= secureArgsList.adminUidHiddenArg.getValue();
    state.adminUID= secureArgsList.adminUidArg.getValue();
    final boolean useAdmin = secureArgsList.useAdminUID();
    if (useAdmin && secureArgsList.adminUidHiddenArg.isPresent())
    if (useAdmin && secureArgsList.adminUidArg.isPresent())
    {
      state.providedAdminUID = state.adminUID;
    }
@@ -726,9 +726,9 @@
        }
        if (addAdmin)
        {
          copySecureArgsList.adminUidHiddenArg.clearValues();
          copySecureArgsList.adminUidHiddenArg.addValue(getAdministratorUID());
          commandBuilder.addArgument(copySecureArgsList.adminUidHiddenArg);
          copySecureArgsList.adminUidArg.clearValues();
          copySecureArgsList.adminUidArg.addValue(getAdministratorUID());
          commandBuilder.addArgument(copySecureArgsList.adminUidArg);
        }
        else if (addBindDN)
        {
@@ -739,9 +739,9 @@
      }
      else if (useAdmin)
      {
        copySecureArgsList.adminUidHiddenArg.clearValues();
        copySecureArgsList.adminUidHiddenArg.addValue(getAdministratorUID());
        commandBuilder.addArgument(copySecureArgsList.adminUidHiddenArg);
        copySecureArgsList.adminUidArg.clearValues();
        copySecureArgsList.adminUidArg.addValue(getAdministratorUID());
        commandBuilder.addArgument(copySecureArgsList.adminUidArg);
      }
      else
      {
@@ -1967,8 +1967,8 @@
    secureArgsList.useStartTLSArg.setPresent(state.useStartTLS);
    if (adminUid != null)
    {
      secureArgsList.adminUidHiddenArg.addValue(adminUid);
      secureArgsList.adminUidHiddenArg.setPresent(true);
      secureArgsList.adminUidArg.addValue(adminUid);
      secureArgsList.adminUidArg.setPresent(true);
    }
    if (bindDn != null)
    {
@@ -2014,8 +2014,8 @@
    secureArgsList.bindPasswordFileArg.getNameToValueMap().clear();
    secureArgsList.bindPasswordFileArg.setPresent(false);
    state.bindPassword = null;
    secureArgsList.adminUidHiddenArg.clearValues();
    secureArgsList.adminUidHiddenArg.setPresent(false);
    secureArgsList.adminUidArg.clearValues();
    secureArgsList.adminUidArg.setPresent(false);
  }
  private void initializeTrustManager() throws ArgumentException