You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Jakob Furrer (JIRA)" <ji...@apache.org> on 2018/01/10 13:27:00 UTC

[jira] [Created] (SOLR-11840) Inconsistencies in the Usage Messages of bin/solr.cmd

Jakob Furrer created SOLR-11840:
-----------------------------------

             Summary: Inconsistencies in the Usage Messages of bin/solr.cmd
                 Key: SOLR-11840
                 URL: https://issues.apache.org/jira/browse/SOLR-11840
             Project: Solr
          Issue Type: Improvement
      Security Level: Public (Default Security Level. Issues are Public)
    Affects Versions: 7.2
            Reporter: Jakob Furrer
             Fix For: 7.2
         Attachments: solr.cmd.txt, solr.txt, solr_start_help_Syntaxfehler.png

I noticed a number of errors/problems/peculiarities in the Usage Messages that are displayed when using *bin/solr.cmd* with the parameter *_-help_*.

The items are listed in no particular order and may be addressed independantly.

To spot the differences between the Usage Messages of _bin/solr_ and _bin/solr.cmd_ I compiled an extract of the Usage Messages of the two files so that they can be compared using WinMerge or a similar diff tool.
See the attached files *solr.cmd.txt* and *solr.txt*.

Note that I work on a German Windows 10, therefore some error messages I quote here are in German.


# _solr_ _start_ _-help_ results in a syntax error
The special characters '<' and '>' are not escaped.
The line 314 must be changed as follows:
{noformat}
CURRENT : ... the default server/<dir>
SHALL_BE: ... the default server/^<dir^>
{noformat}
\\
# _solr auth -help_ ends is empty
A goto label ':auth_usage' with the appropriate Usage Messages already exists.
At line 266 an additional if-statement is required.
Also, a respective if-statement will be required on line 1858.
{noformat}
NEW_CODE: IF "%SCRIPT_CMD%"=="auth" goto auth_usage
{noformat}
Some additional bugs in the section ':auth_usage' must then also be addressed.
The special character '|' is not escaped at a number of locations.
The lines 568, 569, 570, 577, 580 and 585 must be changed, e.g.
{noformat}
CURRENT : echo Usage: solr auth enable [-type basicAuth] -credentials user:pass [-blockUnknown ^<true|false^>] [-updateIncludeFileOnly ^<true|false^>] [-V]
SHALL_BE: echo Usage: solr auth enable [-type basicAuth] -credentials user:pass [-blockUnknown ^<true^|false^>] [-updateIncludeFileOnly ^<true^|false^>] [-V]
{noformat}
The empty 'echo' statement (i.e. 'newline') needs the be written with a dot ('echo.') to avoid "ECHO ist ausgeschaltet (OFF)." statements.
The lines 571, 573, 576, 577, 579, 584, 587, 589, 591, 594 and 596 must be changed:
{noformat}
CURRENT : echo
SHALL_BE: echo.
{noformat}
\\
# _solr_ _-help_ does not mention the command _status_
The line 271 must be changed as follows:
{noformat}
CURRENT : @echo        where COMMAND is one of: start, stop, restart, healthcheck, create, create_core, create_collection, delete, version, zk, auth, assert
SHALL_BE: @echo        where COMMAND is one of: start, stop, restart, status, healthcheck, create, create_core, create_collection, delete, version, zk, auth, assert
{noformat}
\\
# In _bin/solr.cmd_ the description of _solr_ _start_ _-p_ _port_ does not mention the STOP_PORT and the RMI_PORT, see line 324 to 326 of _bin/solr_.
{noformat}
echo "  -p <port>     Specify the port to start the Solr HTTP listener on; default is 8983"
echo "                  The specified port (SOLR_PORT) will also be used to determine the stop port"
echo "                  STOP_PORT=(\$SOLR_PORT-1000) and JMX RMI listen port RMI_PORT=(\$SOLR_PORT+10000). "
echo "                  For instance, if you set -p 8985, then the STOP_PORT=7985 and RMI_PORT=18985"
{noformat}
\\
# The description of _solr_ _start_ _-s_ _dir_ seems to have been revised in _bin/solr.cmd_ but not in _bin/solr_.
{noformat}
                  on which example is run. The default value is server/solr. If passed a relative dir
                  validation with the current dir will be done before trying the default server/<dir>
{noformat}
vs.
{noformat}		  
                  on which example is run. The default value is server/solr. If passed relative dir,
                  validation with current dir will be done, before trying default server/<dir>
{noformat}
\\
# The description of _solr_ _start_ _-t_ _dir_ is different
{noformat}
  -t dir        Sets the solr.data.home system property, used as root for ^<instance_dir^>/data directories.
                  If not set, Solr uses solr.solr.home for both config and data.
{noformat}
vs.
{noformat}
  -t <dir>      Sets the solr.data.home system property, where Solr will store data (index).
                  If not set, Solr uses solr.solr.home for config and data.
{noformat}
\\
# The description of _solr_ _start_ _-V_ does not mention _-verbose_
{noformat}
  -V            Verbose messages from this script
{noformat}
vs.
{noformat}
  -V or -verbose Verbose messages from this script
{noformat}
\\
# The syntax of _solr_ _stop_ does not mention the parameter _-V_
{noformat}
Usage: solr stop [-k key] [-p port]
{noformat}
vs.
{noformat}
Usage: solr stop [-k key] [-p port] [-V]
{noformat}
Note that there is also no description of _-V_ in _bin/solr_, even though the parameter is mentioned in the syntax.
\\
\\
# The description of _solr_ _stop_ does not mention the command _status_
This additional information is present in _bin/solr_.
{noformat}
  NOTE: To see if any Solr servers are running, do: solr status
{noformat}
This can be added in the section ':stop_usage' at line 352.
\\
\\
# The syntax of _solr_ _healthcheck_ does not mention the parameter _-V_
{noformat}
Usage: solr healthcheck [-c collection] [-z zkHost]
{noformat}
vs.
{noformat}
Usage: solr healthcheck [-c collection] [-z zkHost] [-V]
{noformat}
\\
# There is no Usage Message for _solr_ _status_.
The command _solr_ _status_ _-help_ does not output any help message, it actually runs the _solr_ _status_ instead.
{noformat}
Usage: solr status

  NOTE: This command will show the status of all running Solr servers
{noformat}
A new goto label ':status_usage' is required, probably right after the label ':start_usage'.
At line 266 an additional if-statement is required.
Also, a respective if-statement will be required on line 1858.
\\
\\
# The syntax of _solr_ _stop_ _-deleteConfig_ mentions _boolean_, while everywhere else this is indicated as _true|false_
{noformat}
Usage: solr delete [-c name] [-deleteConfig boolean] [-p port] [-V]
{noformat}
vs.
{noformat}
Usage: solr delete [-c name] [-deleteConfig true|false] [-p port] [-V]
{noformat}
\\
# The description of _solr_ _delete_ _-c_ _name_ is different
Note: The documentation should say *delete*, not *create* a core.
{noformat}
  -c name     Name of core to create
{noformat}
vs.
{noformat}
  -c <name>               Name of the core / collection to delete
{noformat}
\\
# The description of _solr_ _delete_ _-p_ _port_ is different
Note: The documentation should say *delete*, not *create* a core.
{noformat}
  -p port     Port of a local Solr instance where you want to create the new core
{noformat}
vs.
{noformat}
  -p <port>               Port of a local Solr instance where you want to delete the core/collection
{noformat}
\\
# The description of _solr_ _delete_ _-V_ is spelt differently
{noformat}
  -V            Enable more verbose output.
{noformat}
vs.
{noformat}
  -V                      Enables more verbose output.
{noformat}
\\
# The description of _solr_ _create_core_ _-c_ uses a different parameter name
{noformat}
Usage: solr create_core [-c name] [-d confdir] [-p port] [-V]
  -c name     Name of core to create
{noformat}
vs.
{noformat}
Usage: solr create_core [-c core] [-d confdir] [-p port] [-V]
  -c <core>     Name of core to create
{noformat}
\\
# The description of _solr_ _create_collection_ _-c_ and _-n_ uses a different parameter name
{noformat}
Usage: solr create_collection [-c name] [-d confdir] [-n confname] [-shards #] [-replicationFactor #] [-p port] [-V]
  -c name               Name of collection to create
  -d confdir            Configuration directory to copy when creating the new collection, built-in options are:
{noformat}
vs.
{noformat}
Usage: solr create_collection [-c collection] [-d confdir] [-n configName] [-shards #] [-replicationFactor #] [-p port] [-V]
  -c <collection>         Name of collection to create
  -d <confdir>            Configuration directory to copy when creating the new collection, built-in options are:
{noformat}
\\
# The description of _solr_ _create_collection_ _-shards_ does not mention the default value
{noformat}
  -shards #             Number of shards to split the collection into
{noformat}
vs.
{noformat}
  -shards <#>             Number of shards to split the collection into; default is 1
{noformat}
\\
# The description of _solr_ _create_collection_ _-replicationFactor_ does not mention the default value
{noformat}
  -replicationFactor #  Number of copies of each document in the collection
{noformat}
vs.
{noformat}
  -replicationFactor <#>  Number of copies of each document in the collection, default is 1 (no replication)
{noformat}
\\
# The description of _solr_ _zk_ _cp_ <src>, <dest> is missing a sentence
{noformat}
             ^<src^>, ^<dest^> : [file:][/]path/to/local/file or zk:/path/to/zk/node
                             NOTE: ^<src^> and ^<dest^> may both be Zookeeper resources prefixed by 'zk:'
            When ^<src^> is a zk resource, ^<dest^> may be '.'
            element of the ^<src^> path will be appended unless ^<src^> also ends in a slash. 
            ^<dest^> may be zk:, which may be useful when using the cp -r form to backup/restore 
{noformat}
vs.
{noformat}
             <src>, <dest> : [file:][/]path/to/local/file or zk:/path/to/zk/node
                             NOTE: <src> and <dest> may both be Zookeeper resources prefixed by 'zk:'
             When <src> is a zk resource, <dest> may be '.'
             If <dest> ends with '/', then <dest> will be a local folder or parent znode and the last
             element of the <src> path will be appended unless <src> also ends in a slash. 
             <dest> may be zk:, which may be useful when using the cp -r form to backup/restore 
{noformat}
Also, the fullstop here should be at the end of the sentence, not on the next line.
{noformat}
             but 'bin/solr zk cp -r /some/dir/* zk:/ -z localhost:2181' will throw an error
.
{noformat}
The sentence "here's an example of backup/restore ..." should start with a captial letter.
The paragraph from "... the entire zk state." to "... /some/dir/ zk:/ -z localhost:2181'" has one space too much indentation.
\\
\\
# The description of _solr_ _zk_ _mkroot_ is different
{noformat}
        mkroot makes a znode in Zookeeper with no data. Can be used to make a path of arbitrary
{noformat}
vs.
{noformat}
         mkroot makes a znode on Zookeeper with no data. Can be used to make a path of arbitrary
{noformat}
\\
# The description of _solr_ _auth_ is different
Basic usage does not mention _-type_ _kerberos_:
{noformat}
Usage: solr auth enable [-type basicAuth] -credentials user:pass [-blockUnknown ^<true|false^>] [-updateIncludeFileOnly ^<true|false^>] [-V]
       solr auth enable [-type basicAuth] -prompt ^<true|false^> [-blockUnknown ^<true|false^>] [-updateIncludeFileOnly ^<true|false^>] [-V]
       solr auth disable [-updateIncludeFileOnly ^<true|false^>] [-V]
{noformat}
vs.
{noformat}
Usage: solr auth enable [-type basicAuth] -credentials user:pass [-blockUnknown <true|false>] [-updateIncludeFileOnly <true|false>] [-V]
       solr auth enable [-type basicAuth] -prompt <true|false> [-blockUnknown <true|false>] [-updateIncludeFileOnly <true|false>] [-V]
       solr auth enable -type kerberos -config \"<kerberos configs>\" [-updateIncludeFileOnly <true|false>] [-V]
       solr auth disable [-updateIncludeFileOnly <true|false>] [-V]
{noformat}
\\
The description of the paramter _-type_ is different
{noformat}
  -type ^<type^>                 The authentication mechanism to enable. Defaults to 'basicAuth'.
{noformat}
vs.
{noformat}
  -type <type>                           The authentication mechanism (basicAuth or kerberos) to enable. Defaults to 'basicAuth'.
{noformat}
\\
The description of the paramter _-credentials_ is different
{noformat}
  -credentials ^<user:pass^>     The username and password of the initial user
{noformat}
vs.
{noformat}
  -credentials <user:pass>               The username and password of the initial user. Applicable for basicAuth only.
{noformat}
\\
The description of the paramter _-config_ is missing
{noformat}
  -config \"<configs>\"                    Configuration parameters (Solr startup parameters). Required and applicable only for Kerberos
{noformat}
\\
The description of the paramter _-blockUnknown_ is different
{noformat}
                               guide for Basic Authentication for more details.
{noformat}
vs.
{noformat}
                                         guide for Basic Authentication for more details. Applicable for basicAuth only.
{noformat}
\\
The descriptions of the paramters _-updateIncludeFileOnly_, _-d_ and _-s_ contain an annoying double quote at the end of the line
\\
The descriptions of the paramters _-d_ and _-s_ do not escape '<' and '>', resulting in error messages in the command line (note that before fixing the call to ':auth_usage' there is no output at all, see point 2 above).
{panel:bgColor=#000000}
{color:white}
C:\solr-7.2.0_test\bin>solr.cmd auth -help

Usage: ... <blablabla> ...

  -updateIncludeFileOnly <true|false>    Only update the solr.in.sh or solr.in.cmd file, and skip actual enabling/disabling"
                                         authentication (i.e. don't update security.json)"

  -z zkHost                    Zookeeper connection string

Das System kann die angegebene Datei nicht finden.

Das System kann die angegebene Datei nicht finden.
                               configuration files (e.g. basicAuth.conf) would be placed."

  -V                           Enable more verbose output
{color}
{panel}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org