Class SolrCLI

  • All Implemented Interfaces:
    CLIO

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

      • OPTION_ZKHOST

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

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

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

        public static final org.apache.commons.cli.Option OPTION_RECURSE
      • cloudOptions

        public static final List<org.apache.commons.cli.Option> cloudOptions
      • CREATE_COLLECTION_OPTIONS

        public static final List<org.apache.commons.cli.Option> CREATE_COLLECTION_OPTIONS
    • Constructor Detail

      • SolrCLI

        public SolrCLI()
    • Method Detail

      • exit

        public static void exit​(int exitStatus)
      • parseCmdLine

        public static org.apache.commons.cli.CommandLine parseCmdLine​(String toolName,
                                                                      String[] args,
                                                                      List<org.apache.commons.cli.Option> toolOptions)
      • 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)
      • joinOptions

        public static List<org.apache.commons.cli.Option> joinOptions​(List<org.apache.commons.cli.Option> lhs,
                                                                      List<org.apache.commons.cli.Option> rhs)
      • processCommandLineArgs

        public static org.apache.commons.cli.CommandLine processCommandLineArgs​(String toolName,
                                                                                List<org.apache.commons.cli.Option> customOptions,
                                                                                String[] args)
        Parses the command-line arguments passed by the user.
      • 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)
      • 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)
        Strips off the end of solrUrl any /solr when a legacy solrUrl like http://localhost:8983/solr is used, and warns those users. In the future we'll have urls ending with /api as well.
        Parameters:
        solrUrl - The user supplied url to Solr.
        Returns:
        the solrUrl in the format that Solr expects to see internally.
      • normalizeSolrUrl

        public static String normalizeSolrUrl​(String solrUrl,
                                              boolean logUrlFormatWarning)
        Strips off the end of solrUrl any /solr 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
        Returns:
        the solrUrl in the format that Solr expects to see internally.
      • resolveSolrUrl

        public static String resolveSolrUrl​(org.apache.commons.cli.CommandLine cli)
                                     throws Exception
        Get the base URL of a live Solr instance from either the solrUrl 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 zkHost command-line option or by looking it up from a running Solr instance based on the solrUrl option.
        Throws:
        Exception
      • safeCheckCollectionExists

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

        public static boolean safeCheckCoreExists​(String solrUrl,
                                                  String coreName)