Daniil Fedotov
61eeab17c1
Callback for exec_command function to process output
2017-06-06 12:07:34 +01:00
Daniil Fedotov
769fe8e712
Better error management with stream outputs from list_ commands.
...
Fixed incorrect tuple matching.
Added support for error codes and messages for timeout with value.
2017-05-24 13:28:51 +01:00
Daniil Fedotov
60deb8514d
Improve error reporting.
...
badrpc errors are handled in Rabbitmqctl module.
Report errors from node discovery
Add helpers to skip errors in formatters.
2017-05-24 12:08:03 +01:00
Daniil Fedotov
8ef4c404ab
Do not import modules. Import only protocols and records.
...
Aliases is a convinient enough to reference elixir modules.
Imported functions can be confusing, especially mixed with aliases.
2017-04-05 11:59:54 +01:00
Daniil Fedotov
819d512038
Implement shutdown command
2017-04-04 19:23:50 +01:00
Daniil Fedotov
62a44ac641
Optimize rabbitmqctl startup.
...
Plugins dirs are added to ERL_LIBS by shell scripts, we try to load
enabled plugins first and scan plugins dir only if some of them
are not found.
When discovering plugins, we can load applications only for enabled ones.
EPMD can be started only after initial `net_kernel:start` call failed.
We don't need to discover all commands every time, only if a command is not
in the `rabbitmqctl` application modules.
[finishes #143025009 ]
2017-04-04 14:06:53 +01:00
Daniil Fedotov
04c1c2e2f9
Do not print "Command '' not found" for empty command
2017-01-25 15:24:47 +00:00
Daniil Fedotov
a5857e13d8
Handle auto-completion line as argv, not a single argument
...
It's easier to detect a script name if passed as argv list.
Arguments can be parsed with quoted spaces (e.g. in directory path)
2017-01-24 14:40:31 +00:00
Daniil Fedotov
3871c4ccde
Support autocompletion with different script names
2017-01-24 12:30:12 +00:00
Daniil Fedotov
6288d75472
Cleanup compiler warnings
2017-01-24 09:59:00 +00:00
Daniil Fedotov
2174446ff9
Auto complete command called with full path
2017-01-24 09:47:30 +00:00
Michael Klishin
cbab77e34c
Fix --auto-complete clauses
...
According to the completion script in rabbitmq/rabbitmq-server-release#14 , the correct
way to invoke auto-completion is
/path/to/rabbitmqctl --auto-complete [command prefix]
However, the above arguments were not matched by the existing
main heads.
2017-01-21 23:33:35 +03:00
Jean-Sébastien Pédron
5905f1c40a
Update copyright line to year 2017
2017-01-10 15:42:40 +01:00
Daniil Fedotov
30b41ba267
Support start from common_test tests
2016-12-23 12:12:33 +00:00
Daniil Fedotov
fc0ca12a91
Test commands suggestions
2016-12-06 12:19:25 +00:00
Daniil Fedotov
80dc953ee5
Suggest commands by Levenshtein distance
2016-12-05 18:59:58 +00:00
Michael Klishin
cb41fe932d
Unbreak with_distribution/1
2016-12-05 19:23:20 +03:00
Alexey Lebedeff
2d11e45625
Handle errors from distribution start attempts
...
Otherwise broken or misconfigured distribution is reported as an
unavailable broker node.
2016-12-05 17:51:22 +03:00
Daniil Fedotov
c62d48380a
Load command specific options from a single command
2016-11-30 16:51:59 +00:00
Michael Klishin
c59b6c029f
Make switches/0 and aliases/0 optional command callbacks
...
Fixes #120 . Same as #124 but doesn't include any unrelated changes
and thus suffer from #126 .
2016-11-22 16:11:25 +03:00
Michael Klishin
e92022da11
Revert "Merge pull request #124 from rabbitmq/rabbitmq-cli-120"
...
This reverts commit c087a635c0 , reversing
changes made to 59225a551d .
See https://github.com/rabbitmq/rabbitmq-cli/issues/126 , which exposed
a serious flaw in the option parser split which was introduced
as part of #124 .
Reopens #120 .
2016-11-22 14:07:58 +03:00
Daniil Fedotov
cc87a49f93
Make switches as aliases callbacks optional
2016-11-18 17:21:27 +00:00
Daniil Fedotov
59225a551d
Remove `flags/0` callback. Remove command modules helpers from helpers to command_modules
2016-11-18 14:12:53 +00:00
Daniil Fedotov
36ac65d56a
Remove dependencies
2016-11-15 16:14:22 +00:00
Daniil Fedotov
ccb6bf116c
Namespace refactoring
2016-11-14 17:52:08 +00:00
Daniil Fedotov
1dc8e90a70
Make tests happy
2016-11-10 17:40:43 +00:00
Daniil Fedotov
3c8e6d1ef7
Use seconds in timeout parameter. Better timeout error report
2016-11-10 14:53:59 +00:00
Daniil Fedotov
ad90e60121
script name is overridable via argument
2016-11-08 14:21:31 +00:00
Daniil Fedotov
b98470288d
List plugins formatter
2016-11-08 14:19:11 +00:00
Daniil Fedotov
85d6868763
Make table formatter look like in the old CLI
2016-11-04 12:38:35 +00:00
Daniil Fedotov
dcd831ec99
Correct IO device name
2016-11-04 11:12:14 +00:00
Daniil Fedotov
14d82eabdc
Refactor error reporting to allow commands specify formatter
2016-11-04 11:11:03 +00:00
Daniil Fedotov
3f4abba717
Command specific formatters
2016-11-03 18:10:18 +00:00
Daniil Fedotov
4c13a51ac8
Reworking command outputs
2016-08-22 12:58:37 +01:00
Daniil Fedotov
0da30bd1d1
Help command return list of strings instead of printing them\
2016-08-18 17:38:49 +01:00
Daniil Fedotov
35fc3d12cd
Default output formatting and exit code selection. Inspect printer
2016-08-18 15:35:49 +01:00
Michael Klishin
1d911b4350
Delete a duplicate fn head
2016-08-14 08:07:19 +03:00
Michael Klishin
cb209d834d
Merge branch 'master' into rabbitmq-cli-rename-cluster-node-command
...
Conflicts:
lib/rabbitmqctl.ex
2016-08-12 04:36:51 +03:00
Michael Klishin
0449004a6b
Merge branch 'master' into rabbitmq-cli-change-cluster-node-type
2016-08-12 01:04:01 +03:00
Michael Klishin
ad2b4627c7
Merge branch 'master' into rabbitmq-cli-9
...
Conflicts:
lib/rabbitmq/cli/ctl/parser.ex
lib/rabbitmqctl.ex
2016-08-11 11:52:54 +03:00
Daniil Fedotov
6f3f0854bd
Rename auto complete option for consistency
2016-08-10 18:19:06 +01:00
Michael Klishin
31c3356c56
Use effective program name in help command output
...
Note that this solution is imperfect because
for tests the name of the tool is `mix`. But most
tests don't care.
2016-08-09 15:05:48 +03:00
Michael Klishin
a06a4321d6
merge_defaults_defaults => merge_all_defaults
2016-08-08 21:46:47 +03:00
Daniil Fedotov
4d40649d44
Command auto completion
2016-07-28 17:46:37 +01:00
Daniil Fedotov
7b35c7c2cc
More validation, error handling and tests
2016-07-27 11:48:24 +01:00
Daniil Fedotov
f2c4986fcf
Implementing rename_cluster_nodes command
2016-07-26 18:08:37 +01:00
Daniil Fedotov
cd68b3ce9c
Implement change_cluster_node_type command
2016-07-25 16:48:45 +01:00
Michael Klishin
70f486c27d
Squash a few compilation warnings
2016-07-10 12:08:33 +03:00
Michael Klishin
941263e83c
Eliminate several warnings
2016-06-26 22:47:37 +03:00
Daniil Fedotov
963f6a2ff9
tests for list plugins command
2016-06-23 10:50:01 +01:00
Daniil Fedotov
2415ee58aa
Plugin management commands
2016-06-23 10:50:01 +01:00
Michael Klishin
39b3de4d1e
Namespace commands, fixes #74
...
Note that the top level module is not namespaced. It's
not clear to me if it should be or will be end up using
and (Elixir/Mix) umbrella project anyway.
2016-06-10 02:54:22 +03:00
Michael Klishin
506c9cc43f
Normalize node names before passing them to Command.run/2
...
Fixes #76 .
2016-06-10 00:56:44 +03:00
Michael Klishin
d27469c665
RabbitMQ.CLI.RabbitMQCtl => RabbitMQ.CLI.Ctl, references #74
2016-06-09 04:08:21 +03:00
Michael Klishin
4e31f4c627
More renaming, references #74
2016-06-09 04:00:43 +03:00
Michael Klishin
8fcad8338e
Namespace more modules under RabbitMQ.CLI, part of #74
2016-06-09 03:34:56 +03:00
Michael Klishin
0c35f5a8cd
Move start_distribution into RabbitMQ.CLI.Distribution
2016-06-09 02:23:10 +03:00
Michael Klishin
3a2b277d4f
Squash a warning
2016-06-09 00:42:51 +03:00
Daniil Fedotov
091105e5b0
0 arity start_distribution
2016-06-08 17:04:08 +01:00
Daniil Fedotov
9b703b2896
Dynamically select distribution node
2016-06-08 15:19:37 +01:00
Jean-Sébastien Pédron
1b1534f86b
Implement the `join_cluster` command
...
Compared to the Erlang-based rabbitmqctl's command, this one accepts
`--disc` to specify the node type. In the implementation, it does
nothing because that's the default value already. It is only to improve
consistency, because there is a `--ram` flag.
The testsuite for this command is incomplete in this commit. When a
testcase will be able to start and stop multiple nodes, the testsuite
will need to be completed.
[#116551629 ]
2016-06-06 16:06:52 +02:00
Jean-Sébastien Pédron
9349c9bf07
Improve "Please stop the node with rabbitmqctl stop_app" message
...
... with "Please stop RabbitMQ with rabbitmqctl stop_app".
The previous message didn't make sense: `stop_app` only stop the
RabbitMQ application, not the entire node (which we don't want to do in
the context of this message).
2016-06-06 16:00:50 +02:00
kjnilsson
43ae69a06d
Implement wait command
2016-06-02 16:03:54 +01:00
kjnilsson
dec08906fa
Implement reset and force_reset commands
2016-06-02 11:55:10 +01:00
Michael Klishin
be84eb1e96
Handle node healthcheck failures
2016-06-02 01:38:09 +03:00
kjnilsson
715f691b8e
avoid connecting to rabbitmq before executing help command
...
avoid printing a nil banner
2016-05-31 09:40:48 +01:00
Michael Klishin
c8f36766b2
Don't fail with undef when printing command usage info with invalid CLI arguments
2016-05-30 02:16:10 +03:00
Michael Klishin
17f6c10f6b
Cosmetics
2016-05-30 02:06:52 +03:00
Daniil Fedotov
70c17aa4f0
Print full usage on errors
2016-05-27 08:59:14 -06:00
Daniil Fedotov
e01e0da063
Print help for selected command
2016-05-27 08:59:14 -06:00
kjnilsson
d8ed6bef3c
merge
2016-05-27 12:10:11 +01:00
kjnilsson
0704c14376
update status command with new behaviour
2016-05-27 11:25:21 +01:00
Michael Klishin
aab8281fef
Cosmetics
2016-05-27 11:46:52 +03:00
Daniil Fedotov
d83a59637d
Ability to specify switches in commands
2016-05-26 15:02:10 -06:00
Daniil Fedotov
cfe41481a3
Return Stream from listing commands
2016-05-25 20:03:17 +01:00
Daniil Fedotov
b7b2bbdcd2
Merge pull request #26 from rabbitmq/rabbitmq-cli-25
...
Re-parse the command on bad option in standard messages
2016-05-10 09:29:50 +01:00
Brandon Shroyer
fe6f9763fd
Parse commands internally in some print_standard_message commands
2016-05-09 11:38:37 -04:00
Brandon Shroyer
675b53040a
Re-parse the command on bad option in standard messages
2016-05-09 11:07:49 -04:00
Daniil Fedotov
a4033ef769
Print usage on incorrect command behaviour
2016-05-09 11:07:46 +01:00
Daniil Fedotov
3f869e18fb
Fixing tests
2016-05-05 18:17:50 +01:00
Daniil Fedotov
ed28bef62e
Some refactorings
2016-05-05 11:39:27 +01:00
Daniil Fedotov
357904e0fe
Experimental
2016-05-05 11:22:42 +01:00
Brandon Shroyer
a158a1b2a8
Refactor module command execution in main module
2016-05-04 19:21:21 -04:00
Brandon Shroyer
a2bedded17
WIP: Change module-specific command name to to run/2
2016-05-04 19:21:21 -04:00
Brandon Shroyer
ca07bee46f
Add check for valid flags to main module
2016-05-04 15:40:09 -04:00
Brandon Shroyer
31b377f4ce
Status command prints info string unless suppressed
2016-05-02 10:38:54 -04:00
Brandon Shroyer
555aad1c40
Alter usage formatting to handle commands with multiple usage strings
2016-04-29 14:08:42 -04:00
Brandon Shroyer
693236ee70
Add argument count error reporting to main module.
2016-04-26 14:38:23 -04:00
Brandon Shroyer
a1eac46e90
Separate argument count error codes from bad argument error codes in rabbitmqctl main
2016-04-26 12:20:11 -04:00
Brandon Shroyer
a4a035d062
Convert unrecognized return codes to a standardized system
2016-04-05 13:58:31 -04:00
Brandon Shroyer
8daf2c182a
Improve handling of refused authentication
2016-04-01 13:58:47 -04:00
Brandon Shroyer
b2be1e8307
Handle extra edge case of authenticate_user return tuple
2016-04-01 13:42:25 -04:00
Brandon Shroyer
51922e4215
Fix exit code implementation so that it actually returns exit codes
2016-04-01 12:13:01 -04:00
Brandon Shroyer
e254c3fd07
Reenabling printout in rabbitmqctl for debugging purposes.
2016-03-29 15:23:09 -04:00
Brandon Shroyer
ed1e7784bf
Refactor default autofills in main module
2016-03-28 11:18:08 -04:00
Brandon Shroyer
bebc03b4a5
Converting some tabs that snuck in into spaces
2016-03-22 16:21:12 +00:00
Brandon Shroyer
f387fd97d0
Remove extra print statement from result handler
2016-03-22 14:57:35 +00:00
Brandon Shroyer
6bde6372f9
Remove unnecessary (and noisy) exit calls
2016-03-22 13:38:55 +00:00
Brandon Shroyer
a17b03283f
Implement Unix-style exit codes from server-396
...
* Implements a set of Unix-like exit codes described in https://github.com/rabbitmq/rabbitmq-server/issues/396
2016-03-21 17:59:22 +00:00
Brandon Shroyer
a065934ff7
Remove unnecessary variable bindings.
2016-03-09 11:41:34 -05:00
Brandon Shroyer
95286b2ee2
Remove unhelpful autofills from RabbitMQCtl errors.
2016-03-08 12:16:38 -05:00
Brandon Shroyer
86b09639ec
Add timeouts to list_user_permissions, refactor a bunch of tests.
2016-03-08 12:05:25 -05:00
Brandon Shroyer
f697e93d02
Converted options to maps.
2016-03-07 17:48:03 -05:00
Brandon Shroyer
6a4381c12c
Auto-populate empty option[:node] in rabbitmqctl.main
2016-03-07 14:14:35 -05:00
Brandon Shroyer
28463f4d7f
Add list_user_permissions, support for commands with args.
2016-03-07 11:16:19 -05:00
Brandon Shroyer
d681309dce
Add rudimentary usage support, refactoring main command.
2016-03-04 16:48:25 -05:00
Brandon Shroyer
a5a54f1f85
Generate map of command modules.
2016-03-04 13:15:53 -05:00
Brandon Shroyer
9eb6345d10
Replace Mix.Utils.camelize with user-defined function.
2016-03-03 11:06:30 -05:00
Brandon Shroyer
5a6e7ae8bc
Use code module to avoid naming commands explicitly in RabbitMQCtl.main.
2016-02-25 16:16:25 -05:00
Brandon Shroyer
c46a5156cb
Split status printing methods into separate module.
2016-02-25 15:03:28 -05:00
Brandon Shroyer
8764f59093
A couple of comments and some nicer spacing between public and private methods.
2016-02-03 10:15:43 -05:00
Brandon Shroyer
d5278f0ec3
Added legal boilerplate.
2016-02-03 10:01:32 -05:00
Brandon Shroyer
caef6f5f40
Renamed app to RabbitMQCtl.
2016-02-03 09:43:21 -05:00