Class SolrCLI

java.lang.Object
org.apache.solr.cli.SolrCLI
All Implemented Interfaces:
CLIO

public class SolrCLI extends Object implements CLIO
Command-line utility for working with Solr.
  • Field Details

    • RED

      public static String RED
    • GREEN

      public static String GREEN
    • YELLOW

      public static String YELLOW
    • ZK_HOST

      public static final String ZK_HOST
      See Also:
    • OPTION_ZKHOST_DEPRECATED

      public static final org.apache.commons.cli.Option OPTION_ZKHOST_DEPRECATED
    • OPTION_ZKHOST

      public static final org.apache.commons.cli.Option OPTION_ZKHOST
    • OPTION_SOLRURL_DEPRECATED

      public static final org.apache.commons.cli.Option OPTION_SOLRURL_DEPRECATED
    • OPTION_SOLRURL

      public static final org.apache.commons.cli.Option OPTION_SOLRURL
    • OPTION_SOLRURL_DEPRECATED_SHORT

      public static final org.apache.commons.cli.Option OPTION_SOLRURL_DEPRECATED_SHORT
    • OPTION_VERBOSE

      public static final org.apache.commons.cli.Option OPTION_VERBOSE
    • OPTION_VERBOSE_DEPRECATED

      public static final org.apache.commons.cli.Option OPTION_VERBOSE_DEPRECATED
    • OPTION_HELP

      public static final org.apache.commons.cli.Option OPTION_HELP
    • OPTION_RECURSE_DEPRECATED

      public static final org.apache.commons.cli.Option OPTION_RECURSE_DEPRECATED
    • OPTION_RECURSIVE

      public static final org.apache.commons.cli.Option OPTION_RECURSIVE
    • OPTION_CREDENTIALS

      public static final org.apache.commons.cli.Option OPTION_CREDENTIALS
    • OPTION_CREDENTIALS_DEPRECATED

      public static final org.apache.commons.cli.Option OPTION_CREDENTIALS_DEPRECATED
    • DEFAULT_CONFIG_SET

      public static final String DEFAULT_CONFIG_SET
      See Also:
  • Constructor Details

    • SolrCLI

      public SolrCLI()
  • Method Details

    • main

      public static void main(String[] args) throws Exception
      Runs a tool.
      Throws:
      Exception
    • findTool

      public static Tool findTool(String[] args, ToolRuntime runtime) throws Exception
      Throws:
      Exception
    • parseCmdLine

      public static org.apache.commons.cli.CommandLine parseCmdLine(Tool tool, String[] args)
    • getDefaultSolrUrl

      public static String getDefaultSolrUrl()
    • checkSslStoreSysProp

      protected static void checkSslStoreSysProp(String solrInstallDir, String key)
    • raiseLogLevelUnlessVerbose

      public static void raiseLogLevelUnlessVerbose(org.apache.commons.cli.CommandLine cli)
    • getToolOptions

      public static org.apache.commons.cli.Options getToolOptions(Tool tool)
      Returns tool options for given tool, for usage display purposes. Hides deprecated options.
    • getOptionWithDeprecatedAndDefault

      public static String getOptionWithDeprecatedAndDefault(org.apache.commons.cli.CommandLine cli, String opt, String deprecated, String def)
      Returns the value of the option with the given name, or the value of the deprecated option. If both values are null, then it returns the default value.
    • getOptionWithDeprecatedAndDefault

      public static String getOptionWithDeprecatedAndDefault(org.apache.commons.cli.CommandLine cli, org.apache.commons.cli.Option opt, String deprecated, String def, String sysProp)
      Returns the value of the option with the given name, or the value from a given system property, or the value of the deprecated option. If all values are null, then it returns the default value.
    • deprecatedHandlerStdErr

      public static void deprecatedHandlerStdErr(org.apache.commons.cli.Option o)
    • processCommandLineArgs

      public static org.apache.commons.cli.CommandLine processCommandLineArgs(Tool tool, String[] args)
      Parses the command-line arguments passed by the user.
    • getFormatter

      public static org.apache.commons.cli.HelpFormatter getFormatter()
    • checkCommunicationError

      public static boolean checkCommunicationError(Exception exc)
      Determine if a request to Solr failed due to a communication error, which is generally retry-able.
    • checkCodeForAuthError

      public static void checkCodeForAuthError(int code)
    • exceptionIsAuthRelated

      public static boolean exceptionIsAuthRelated(Exception exc)
    • getSolrClient

      public static org.apache.solr.client.solrj.SolrClient getSolrClient(String solrUrl)
      Get a SolrClient for the given URL. The URL can be with or without /solr suffix, the method will normalize it and add '/solr'. To support certain unit tests, the hostContext can be overridden via the system property 'hostContext'.

      Note that from Solr 10.0 Solr will use / as base URL to support /api and other contexts, so handling of hostContext differs between Solr 9.x and 10.x.

      Note that this should not be used with individual core specific urls such as "http://127.0.0.1:51428/solr/bob_shard1_replica_n1/" as it removes the core name by converting the url to "http://127.0.0.1:51428/" before creating the client.

      Parameters:
      solrUrl - the base URL of Solr
      Returns:
      a SolrClient initialized with correct hostContext, default '/solr'
    • getSolrClient

      public static org.apache.solr.client.solrj.SolrClient getSolrClient(org.apache.commons.cli.CommandLine cli) throws Exception
      Throws:
      Exception
    • postJsonToSolr

      public static org.apache.solr.common.util.NamedList<Object> postJsonToSolr(org.apache.solr.client.solrj.SolrClient solrClient, String updatePath, String jsonBody) throws Exception
      Throws:
      Exception
    • uptime

      public static String uptime(long uptimeMs)
    • normalizeSolrUrl

      public static String normalizeSolrUrl(String solrUrl, boolean logUrlFormatWarning)
    • normalizeSolrUrl

      public static String normalizeSolrUrl(String solrUrl, boolean logUrlFormatWarning, String hostContext)
      Strips off the end of solrUrl any hostContext when a legacy solrUrl like http://localhost:8983/solr is used, and optionally logs a warning. In the future we'll have urls ending with /api as well.
      Parameters:
      solrUrl - The user supplied url to Solr.
      logUrlFormatWarning - If a warning message should be logged about the url format
      hostContext - context path for Solr, is normally '/solr' but can be overridden here. Should not end with '/'
      Returns:
      the solrUrl in the format that Solr expects to see internally.
    • normalizeSolrUrl

      public static String normalizeSolrUrl(org.apache.commons.cli.CommandLine cli) throws Exception
      Get the base URL of a live Solr instance from either the --solr-url command-line option or from ZooKeeper.
      Throws:
      Exception
    • getZkHost

      public static String getZkHost(org.apache.commons.cli.CommandLine cli) throws Exception
      Get the ZooKeeper connection string from either the zk-host command-line option or by looking it up from a running Solr instance based on the solr-url option.
      Throws:
      Exception
    • getSolrZkClient

      public static org.apache.solr.common.cloud.SolrZkClient getSolrZkClient(org.apache.commons.cli.CommandLine cli, String zkHost)
    • getCloudHttp2SolrClient

      public static org.apache.solr.client.solrj.impl.CloudHttp2SolrClient getCloudHttp2SolrClient(String zkHost)
    • getCloudHttp2SolrClient

      public static org.apache.solr.client.solrj.impl.CloudHttp2SolrClient getCloudHttp2SolrClient(String zkHost, org.apache.solr.client.solrj.impl.Http2SolrClient.Builder builder)
    • safeCheckCollectionExists

      public static boolean safeCheckCollectionExists(String solrUrl, String collection)
    • safeCheckCoreExists

      public static boolean safeCheckCoreExists(String solrUrl, String coreName)
    • isCloudMode

      public static boolean isCloudMode(org.apache.solr.client.solrj.SolrClient solrClient) throws org.apache.solr.client.solrj.SolrServerException, IOException
      Throws:
      org.apache.solr.client.solrj.SolrServerException
      IOException
    • getConfigSetsDir

      public static Path getConfigSetsDir(Path solrInstallDir)
    • print

      public static void print(Object message)
    • printGreen

      public static void printGreen(Object message)
      Console print using green color
    • printRed

      public static void printRed(Object message)
      Console print using red color
    • print

      public static void print(String color, Object message)
    • getCliOptionOrPropValue

      public static String getCliOptionOrPropValue(org.apache.commons.cli.CommandLine cli, org.apache.commons.cli.Option option, String sysprop, String defaultValue)
      Get the value of the specified CLI option with fallback to system property and default value.
      Parameters:
      cli - the command line
      option - the commons cli Option
      sysprop - the system property to fall back to
      defaultValue - the default value. Use null if no default value is desired
      Returns:
      the value of the option or system property or the default value