From c465af5b01eb04b869326e58bdb3495830dcbb8f Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Tue, 01 Mar 2016 09:43:19 +0000
Subject: [PATCH] Fix bug in dsreplication and uninstall cli

---
 opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallerArgumentParser.java          |    9 ++--
 opendj-server-legacy/src/main/java/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java        |   24 ++++++------
 opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliArgumentParser.java |   11 ++---
 opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/Uninstaller.java                        |    2 
 opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java         |   30 ++++++++++++---
 opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallCliHelper.java                 |    6 +-
 6 files changed, 48 insertions(+), 34 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallCliHelper.java b/opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallCliHelper.java
index 8a0a416..852478d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallCliHelper.java
+++ b/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(),
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/Uninstaller.java b/opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/Uninstaller.java
index 24a3149..a30a9a6 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/Uninstaller.java
+++ b/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(),
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallerArgumentParser.java b/opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallerArgumentParser.java
index 658b153..c4b6aaa 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/UninstallerArgumentParser.java
+++ b/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();
   }
 
   /**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java b/opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
index 0788e76..0180111 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
+++ b/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(
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliArgumentParser.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliArgumentParser.java
index 031a41b..0128161 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliArgumentParser.java
+++ b/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;
   }
 
   /**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java b/opendj-server-legacy/src/main/java/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java
index 2f737af..d567cf1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java
+++ b/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

--
Gitblit v1.10.0