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

Gaetan Boismal
09.44.2015 12034b057af590521acaf1d5dfa40725f0be842d
OPENDJ-1166-checkpoint Improve tools behavior

CR-7196
This commit fixes tools error messages when
* instance is not configured or user have insufficient access rights

* src/main/java/org/opends/server/tools/tasks/TaskTool.java
** Creates a checkVersion() method to allow better encapsulation
* src/main/java/org/opends/server/util/BuildVersion.java
** Filter IOException raised to check if the instance has been configured (i.e buildinfo file exists) and if user has sufficient priviledges to read it.
* src/messages/org/opends/messages/tool.properties
* src/main/java/org/opends/server/tools/BackUpDB.java
* src/main/java/org/opends/server/tools/ExportLDIF.java
* src/main/java/org/opends/server/tools/ImportLDIF.java
* src/main/java/org/opends/server/tools/RebuildIndex.java
* src/main/java/org/opends/server/tools/RestoreDB.java
** Consequences of changes described above
8 files modified
77 ■■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/server/tools/BackUpDB.java 9 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java 9 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java 9 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/tools/RebuildIndex.java 7 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java 18 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/tools/tasks/TaskTool.java 18 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java 5 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/messages/org/opends/messages/tool.properties 2 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/tools/BackUpDB.java
@@ -26,14 +26,14 @@
 */
package org.opends.server.tools;
import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.Utils.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.Utils.*;
import java.io.File;
import java.io.OutputStream;
import java.io.PrintStream;
@@ -72,7 +72,6 @@
import org.opends.server.types.InitializationException;
import org.opends.server.types.NullOutputStream;
import org.opends.server.types.RawAttribute;
import org.opends.server.util.BuildVersion;
import org.opends.server.util.args.LDAPConnectionArgumentParser;
import com.forgerock.opendj.cli.ArgumentException;
@@ -418,7 +417,7 @@
    // Checks the version - if upgrade required, the tool is unusable
    try
    {
      BuildVersion.checkVersionMismatch();
      checkVersion();
    }
    catch (InitializationException e)
    {
opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java
@@ -26,13 +26,13 @@
 */
package org.opends.server.tools;
import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.Utils.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.util.StaticUtils.*;
import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.Utils.*;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
@@ -69,7 +69,6 @@
import org.opends.server.types.NullOutputStream;
import org.opends.server.types.RawAttribute;
import org.opends.server.types.SearchFilter;
import org.opends.server.util.BuildVersion;
import org.opends.server.util.args.LDAPConnectionArgumentParser;
import com.forgerock.opendj.cli.Argument;
@@ -355,7 +354,7 @@
    // Checks the version - if upgrade required, the tool is unusable
    try
    {
      BuildVersion.checkVersionMismatch();
      checkVersion();
    }
    catch (InitializationException e)
    {
opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java
@@ -26,13 +26,13 @@
 */
package org.opends.server.tools;
import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.Utils.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.util.StaticUtils.*;
import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.Utils.*;
import java.io.File;
import java.io.OutputStream;
import java.io.PrintStream;
@@ -75,7 +75,6 @@
import org.opends.server.types.NullOutputStream;
import org.opends.server.types.RawAttribute;
import org.opends.server.types.SearchFilter;
import org.opends.server.util.BuildVersion;
import org.opends.server.util.args.LDAPConnectionArgumentParser;
import com.forgerock.opendj.cli.Argument;
@@ -301,7 +300,7 @@
    // Checks the version - if upgrade required, the tool is unusable
    try
    {
      BuildVersion.checkVersionMismatch();
      checkVersion();
    }
    catch (InitializationException e)
    {
opendj-server-legacy/src/main/java/org/opends/server/tools/RebuildIndex.java
@@ -26,12 +26,12 @@
 */
package org.opends.server.tools;
import static com.forgerock.opendj.cli.Utils.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.util.StaticUtils.*;
import static com.forgerock.opendj.cli.Utils.*;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
@@ -65,7 +65,6 @@
import org.opends.server.types.InitializationException;
import org.opends.server.types.NullOutputStream;
import org.opends.server.types.RawAttribute;
import org.opends.server.util.BuildVersion;
import org.opends.server.util.StaticUtils;
import org.opends.server.util.args.LDAPConnectionArgumentParser;
@@ -247,7 +246,7 @@
    // Checks the version - if upgrade required, the tool is unusable
    try
    {
      BuildVersion.checkVersionMismatch();
      checkVersion();
    }
    catch (InitializationException e)
    {
opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java
@@ -26,13 +26,13 @@
 */
package org.opends.server.tools;
import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.Utils.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.util.StaticUtils.*;
import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.Utils.*;
import java.io.OutputStream;
import java.io.PrintStream;
import java.text.DateFormat;
@@ -62,8 +62,14 @@
import org.opends.server.protocols.ldap.LDAPAttribute;
import org.opends.server.tasks.RestoreTask;
import org.opends.server.tools.tasks.TaskTool;
import org.opends.server.types.*;
import org.opends.server.util.BuildVersion;
import org.opends.server.types.BackupDirectory;
import org.opends.server.types.BackupInfo;
import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.InitializationException;
import org.opends.server.types.NullOutputStream;
import org.opends.server.types.RawAttribute;
import org.opends.server.types.RestoreConfig;
import org.opends.server.util.args.LDAPConnectionArgumentParser;
import com.forgerock.opendj.cli.Argument;
@@ -271,7 +277,7 @@
    // Checks the version - if upgrade required, the tool is unusable
    try
    {
      BuildVersion.checkVersionMismatch();
      checkVersion();
    }
    catch (InitializationException e)
    {
opendj-server-legacy/src/main/java/org/opends/server/tools/tasks/TaskTool.java
@@ -26,12 +26,12 @@
 */
package org.opends.server.tools.tasks;
import static com.forgerock.opendj.cli.Utils.*;
import static org.opends.messages.TaskMessages.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.util.StaticUtils.*;
import static com.forgerock.opendj.cli.Utils.*;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Date;
@@ -49,8 +49,10 @@
import org.opends.server.loggers.JDKLogging;
import org.opends.server.tools.LDAPConnection;
import org.opends.server.tools.LDAPConnectionException;
import org.opends.server.types.InitializationException;
import org.opends.server.types.LDAPException;
import org.opends.server.types.OpenDsException;
import org.opends.server.util.BuildVersion;
import org.opends.server.util.args.LDAPConnectionArgumentParser;
import com.forgerock.opendj.cli.Argument;
@@ -435,4 +437,16 @@
    }
    return returnValue;
  }
  /**
   * Checks that binary version and instance version are the same.
   *
   * @throws InitializationException
   *           If versions mismatch
   */
  protected void checkVersion() throws InitializationException
  {
    // FIXME Do not perform this check if the tool is use in remote mode (see OPENDJ-1166)
    BuildVersion.checkVersionMismatch();
  }
}
opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java
@@ -30,6 +30,7 @@
import static org.opends.server.config.ConfigConstants.*;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Paths;
@@ -86,6 +87,10 @@
      }
      return valueOf(s);
    }
    catch (FileNotFoundException e)
    {
      throw new InitializationException(ERR_INSTANCE_NOT_CONFIGURED.get(), e);
    }
    catch (IOException e)
    {
      throw new InitializationException(ERR_BUILDVERSION_NOT_FOUND.get(buildInfo));
opendj-server-legacy/src/messages/org/opends/messages/tool.properties
@@ -2669,3 +2669,5 @@
 backend type %s. Error message: %s
ERR_DBTEST_NOT_JE_BACKEND_20012=%s is not a JE backend. Only JE backends are supported \
 by this version of the tool
ERR_INSTANCE_NOT_CONFIGURED_20013=The local instance is not configured or you do not \
 have permissions to access it.