Hi everyone! Issue 3 fixed in master. In master control.sh now is: *> control.sh --help*
Control utility [ver. 2.8.0-SNAPSHOT#20190827-sha1:DEV] 2019 Copyright(C) Apache Software Foundation User: santonov Time: 2019-08-27T18:22:45.023 Control utility script is used to execute admin commands on cluster or get common cluster info. The command has the following syntax: control.(sh|bat) [--host HOST_OR_IP] [--port PORT] [--user USER] [--password PASSWORD] [--ping-interval PING_INTERVAL] [--ping-timeout PING_TIMEOUT] [--ssl-protocol SSL_PROTOCOL[, SSL_PROTOCOL_2, ..., SSL_PROTOCOL_N]] [--ssl-cipher-suites SSL_CIPHER_1[, SSL_CIPHER_2, ..., SSL_CIPHER_N]] [--ssl-key-algorithm SSL_KEY_ALGORITHM] [--keystore-type KEYSTORE_TYPE] [--keystore KEYSTORE_PATH] [--keystore-password KEYSTORE_PASSWORD] [--truststore-type TRUSTSTORE_TYPE] [--truststore TRUSTSTORE_PATH] [--truststore-password TRUSTSTORE_PASSWORD] [command] <command_parameters> This utility can do the following commands: Activate cluster: control.(sh|bat) --activate Deactivate cluster: control.(sh|bat) --deactivate [--yes] Print current cluster state: control.(sh|bat) --state Print cluster baseline topology: control.(sh|bat) --baseline Add nodes into baseline topology: control.(sh|bat) --baseline add consistentId1[,consistentId2,....,consistentIdN] [--yes] Remove nodes from baseline topology: control.(sh|bat) --baseline remove consistentId1[,consistentId2,....,consistentIdN] [--yes] Set baseline topology: control.(sh|bat) --baseline set consistentId1[,consistentId2,....,consistentIdN] [--yes] Set baseline topology based on version: control.(sh|bat) --baseline version topologyVersion [--yes] Set baseline autoadjustment settings: control.(sh|bat) --baseline auto_adjust [disable|enable] [timeout <timeoutMillis>] [--yes] List or kill transactions: control.(sh|bat) --tx [--xid XID] [--min-duration SECONDS] [--min-size SIZE] [--label PATTERN_REGEX] [--servers|--clients] [--nodes consistentId1[,consistentId2,....,consistentIdN]] [--limit NUMBER] [--order DURATION|SIZE|START_TIME] [--kill] [--info] [--yes] Print detailed information (topology and key lock ownership) about specific transaction: control.(sh|bat) --tx --info <TX identifier as GridCacheVersion [topVer=..., order=..., nodeOrder=...] (can be found in logs)>|<TX identifier as UUID (can be retrieved via --tx command)> View caches information in a cluster. For more details type: control.(sh|bat) --cache help Print absolute paths of unused archived wal segments on each node: control.(sh|bat) --wal print [consistentId1,consistentId2,....,consistentIdN] Delete unused archived wal segments on each node: control.(sh|bat) --wal delete [consistentId1,consistentId2,....,consistentIdN] [--yes] View diagnostic information in a cluster. For more details type: control.(sh|bat) --diagnostic Enable read-only mode on active cluster: control.(sh|bat) --read-only-on [--yes] Disable read-only mode on active cluster: control.(sh|bat) --read-only-off [--yes] By default commands affecting the cluster require interactive confirmation. Use --yes option to disable it. Default values: HOST_OR_IP=127.0.0.1 PORT=11211 PING_INTERVAL=5000 PING_TIMEOUT=30000 SSL_PROTOCOL=TLS SSL_KEY_ALGORITHM=SunX509 KEYSTORE_TYPE=JKS TRUSTSTORE_TYPE=JKS Exit codes: 0 - successful execution. 1 - invalid arguments. 2 - connection failed. 3 - authentication failed. 4 - unexpected error. Control utility has completed execution at: 2019-08-27T18:22:45.193 Execution time: 170 ms *> control.sh --cache help* Control utility [ver. 2.8.0-SNAPSHOT#20190827-sha1:DEV] 2019 Copyright(C) Apache Software Foundation User: santonov Time: 2019-08-27T18:25:01.577 Command [CACHE] started Arguments: --cache help --yes -------------------------------------------------------------------------------- The '--cache subcommand' is used to get information about and perform actions with caches. The command has the following syntax: control.(sh|bat) [--host HOST_OR_IP] [--port PORT] [--user USER] [--password PASSWORD] [--ping-interval PING_INTERVAL] [--ping-timeout PING_TIMEOUT] [--ssl-protocol SSL_PROTOCOL[, SSL_PROTOCOL_2, ..., SSL_PROTOCOL_N]] [--ssl-cipher-suites SSL_CIPHER_1[, SSL_CIPHER_2, ..., SSL_CIPHER_N]] [--ssl-key-algorithm SSL_KEY_ALGORITHM] [--keystore-type KEYSTORE_TYPE] [--keystore KEYSTORE_PATH] [--keystore-password KEYSTORE_PASSWORD] [--truststore-type TRUSTSTORE_TYPE] [--truststore TRUSTSTORE_PATH] [--truststore-password TRUSTSTORE_PASSWORD] --cache [subcommand] <subcommand_parameters> The subcommands that take [nodeId] as an argument ('list', 'find_garbage', 'contention' and 'validate_indexes') will be executed on the given node or on all server nodes if the option is not specified. Other commands will run on a random server node. Subcommands: --cache idle_verify [--dump] [--skip-zeros] [--check-crc] [--exclude-caches cacheName1,...,cacheNameN] [--cache-filter DEFAULT|SYSTEM|PERSISTENT|NOT_PERSISTENT|USER|ALL] [cacheName1,...,cacheNameN] Verify counters and hash sums of primary and backup partitions for the specified caches/cache groups on an idle cluster and print out the differences, if any. Cache filtering options configure the set of caches that will be processed by idle_verify command. Default value for the set of cache names (or cache group names) is all cache groups. Default value for --exclude-caches is empty set. Default value for --cache-filter is no filtering. Therefore, the set of all caches is sequently filtered by cache name regexps, by cache type and after all by exclude regexps. Parameters: --check-crc - check the CRC-sum of pages stored on disk before verifying data consistency in partitions between primary and backup nodes. --cache list regexPattern [--groups|--seq] [nodeId] [--config] [--output-format multi-line] Show information about caches, groups or sequences that match a regular expression. When executed without parameters, this subcommand prints the list of caches. Parameters: --config - print all configuration parameters for each cache. --output-format multi-line - print configuration parameters per line. This option has effect only when used with --config and without [--groups|--seq]. --groups - print information about groups. --seq - print information about sequences. --cache validate_indexes [cacheName1,...,cacheNameN] [nodeId] [--check-first N|--check-through K] Verify counters and hash sums of primary and backup partitions for the specified caches/cache groups on an idle cluster and print out the differences, if any. Cache filtering options configure the set of caches that will be processed by idle_verify command. Default value for the set of cache names (or cache group names) is all cache groups. Default value for --exclude-caches is empty set. Default value for --cache-filter is no filtering. Therefore, the set of all caches is sequently filtered by cache name regexps, by cache type and after all by exclude regexps. Parameters: --check-first N - validate only the first N keys --check-through K - validate every Kth key --cache contention minQueueSize [nodeId] [maxPrint] Show the keys that are point of contention for multiple transactions. --cache distribution nodeId|null [cacheName1,...,cacheNameN] [--user-attributes attrName1,...,attrNameN] Prints the information about partition distribution. --cache reset_lost_partitions cacheName1,...,cacheNameN Reset the state of lost partitions for the specified caches. --cache find_garbage [groupName1,...,groupNameN] [nodeId] [--delete] Find and optionally delete garbage from shared cache groups which could be left after cache destroy. Command [CACHE] finished with code: 0 Control utility has completed execution at: 2019-08-27T18:25:01.857 Execution time: 280 ms вт, 27 авг. 2019 г. в 17:30, Artem Budnikov <a.budnikov.ign...@gmail.com>: > Hi everyone, > > Re Issue 3: > > That's a good idea, but as far as I remember this was done in > https://jira.apache.org/jira/browse/IGNITE-10279 and is waiting to be > released in Ignite 2.8. > > -Artem > > On 26.08.2019 15:18, Anton Kalashnikov wrote: > > Hello, Igniters. > > > > +1 for Script help usability - issue 3 > > > > Looks like it will be great if we avoid the repeated output of the > commands, ex.: > > > > control.sh [--host HOST_OR_IP] [--port PORT] [--user USER] [--password > PASSWORD] [--ping-interval PING_INTERVAL] [--ping-timeout PING_TIMEOUT] > [<command>] [--yes] > > > > Allowable <command>: > > --activate - ... > > --deactivate - ... > > ... > > > > -- > > Best regards, > > Anton Kalashnikov > > > > > > 26.08.2019, 15:00, "Dmitriy Pavlov" <dpav...@apache.org>: > >> Hi Igniters, > >> > >> During voting on 2.7.6-rc1, I saw how experienced Ignite contributor > >> committer and PMC member were trying to activate cluster using > control.sh > >> command. > >> > >> We usually just call cluster().active(true), but end users have to use > the > >> script provided in the distribution. > >> > >> Related to control.sh there are 3 concerns: > >> > >> Issue 1: On Mac OS if there is an empty (unset) JAVA_HOME variable, > script > >> outputs noting and probably does not execute its comment. > >> > >> Petr Ivanov, Alexey Goncharuck, could you please double-check if it > could > >> be fixed? > >> > >> Issue 2: Control.sh was not able to connect to cluster (local). AFAIK > >> multicast is still our defaults. so it should be possible to connect to > >> cluster without any options. > >> > >> Ivan Rakov, could you please chime in? Is it a local issue or bug? > >> > >> Issue 3: Script help usability > >> > >> Example of output: > >> > >> Activate cluster: > >> > >> control.sh [--host HOST_OR_IP] [--port PORT] [--user USER] > [--password > >> PASSWORD] [--ping-interval PING_INTERVAL] [--ping-timeout PING_TIMEOUT] > >> --activate > >> > >> Deactivate cluster: > >> > >> control.sh [--host HOST_OR_IP] [--port PORT] [--user USER] > [--password > >> PASSWORD] [--ping-interval PING_INTERVAL] [--ping-timeout PING_TIMEOUT] > >> --deactivate [--yes] > >> > >> ... > >> > >> Why do we repeat tons of parameters each time? Is it better for users to > >> enlist options and commands separately? > >> > >> control.sh [options] command > >> > >> and then enlist options > >> > >> [--host HOST_OR_IP] > >> > >> [--port PORT] > >> > >> [--user USER] > >> > >> [--password PASSWORD] > >> > >> [--ping-interval PING_INTERVAL] > >> > >> [--ping-timeout PING_TIMEOUT] > >> > >> and describe several commands we have? > >> > >> In coding WET is not the best solution. So maybe we could DRY in our > help, > >> should we? > >> > >> Artem Boudnikov, could you evaluate this idea? > >> > >> Sincerely, > >> Dmitriy Pavlov > -- BR, Sergey Antonov