Commit Graph

903 Commits

Author SHA1 Message Date
Daniil Fedotov 9b0ec73a0d Set default formatter for environment command to erlang 2017-06-02 10:17:28 +01:00
Michael Klishin 6c2cb2336f Explain 2017-05-31 23:24:58 +03:00
Daniil Fedotov ad3d016e4d Avoid formatting message of no peers discovered.
{:error, exit_ok(), message} is a trick to print a string
without formatting it first.
2017-05-31 17:17:07 +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 719b75269c Fixing erlang and string formatters.
Erlang formatter had issues when formatting erlang strings, because
they were interpreted as streams. Now all streams are being converted
to lists and printed as is.
String formatter does not try to format with io_lib, instead it tries
to format using Elixir to_string.
2017-05-22 17:14:26 +01:00
Michael Klishin a10ecbdb7a This command belongs to diagnostics, not ctl 2017-04-30 01:27:44 +02:00
Michael Klishin 48f79daa09 Don't output backend information; declare a formatter instead of delegating to it 2017-04-30 01:25:27 +02:00
Gabriele Santomaggio 5b8cdf37a1 Rename list_discover_peers with discover_peers 2017-04-28 18:47:35 +02:00
Gabriele Santomaggio 4fa68912a4 Format result
Add Backend type
Add simple unit test
2017-04-28 18:12:04 +02:00
Gabriele Santomaggio 34e791851c Add case 2017-04-27 22:59:20 +02:00
Gabriele Santomaggio a875fe52ef Add list_discovery_peers command.
Command to report: :rabbit_peer_discovery, :discover_cluster_nodes
2017-04-27 12:16:10 +02:00
Michael Klishin 1805012f77 Merge branch 'master' into rabbitmq-cli-shutdown 2017-04-07 22:31:54 +02:00
Michael Klishin 987526d70f (c) year 2017-04-05 15:44:16 +03:00
Michael Klishin ac8b32f61a Merge branch 'master' into rabbitmq-cli-180
Conflicts:
	lib/rabbitmq/cli/core/distribution.ex
2017-04-05 15:03:52 +03: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
Michael Klishin 61c3d0e9d0 Naming; make sure ensure_cookie/1 always returns :ok
erlang:set_cookie/2 returns true, not ok.
2017-04-04 15:11:41 +03:00
Daniil Fedotov 1e1cb92a44 Make it possible to specify erlang cookie from command line
Add new flag `--erlang-cookie` and environment variable `RABBITMQ_ERLANG_COOKIE`
to configure a cookie for CLI to connect to RabbitMQ node.
2017-04-03 14:46:26 +01:00
Daniil Fedotov 00a298961a Print diagnostics on nodedown error
[finishes #142492945]
2017-03-31 11:28:41 +01:00
Daniil Fedotov 05a2a18f52 Handle `eacces` errors in addition to `eperm` in `hipe_compile` command
`hipe_compile` command validation checks that directory can be created and
have permissions to write .beam files. System can return `eperm` or `eacces`
errors in different conditions, but the meaning of those errors is same.
2017-03-14 17:18:18 +00:00
Michael Klishin 2dc56b3737 hipe_compile: reject blank, non-existent paths and those with insufficient permissions
References #178.
2017-03-14 01:49:04 +03:00
Michael Klishin 95ea549472 rabbit app is loaded during validation; handle "already compiled" cases
References #178.
2017-03-13 21:21:15 +03:00
Michael Klishin f2f0c26e44 Finish hipe_compile command
This correctly handles the case where the rabbit app is
already loaded.

References #178.
2017-03-10 21:25:00 +03:00
Michael Klishin 34262f2161 ctl hipe_compile WIP
This command needs access to RabbitMQ modules and currently
propagation doesn't work as expected.
2017-03-10 15:30:50 +03:00
Michael Klishin ef98536ab4 rabbitmqctl hipe_compile WIP 2017-03-10 01:01:03 +03:00
Jean-Sébastien Pédron 89e12a1ac7 lib/rabbitmq/cli/plugins/plugins_helpers.ex: Remove dead code
The same function call is made the line after.
2017-02-28 16:16:27 +01:00
Jean-Sébastien Pédron 12c34a78c4 lib/rabbitmq/cli/plugins/plugins_helpers.ex: Use `deps` to filter plugins
... in validate_plugins(). This variable was computed but not used. The
initial `plugins` variable was used but it lacked dependencies.
2017-02-28 16:15:08 +01:00
Jean-Sébastien Pédron 1f68c5a89d Mark unused variables with '_'
Obviously, this fixes sevearl "unused variable" warnings.
2017-02-28 16:12:34 +01:00
Jean-Sébastien Pédron 3dd4ff27c6 lib/rabbitmq/cli/core/parser.ex: Remove dead code
OptionParser is already called inside parse_global_head() and the return
values are overwritten anyway. This fixes warnings about unused
variables.
2017-02-28 16:11:32 +01:00
Diana Corbacho 74ffe46fb3 Rename function 2017-02-27 16:23:57 +00:00
Diana Corbacho 87331bb95e Exclude applications that are not RabbitMQ plugins from the list of plugins 2017-02-27 14:52:40 +00:00
Michael Klishin 1aeedbe98e RABBITMQCTL_ALIASES => RABBITMQ_CLI_ALIASES_FILE
Per discussion with @hairyhum.
2017-02-21 17:51:17 +03:00
Daniil Fedotov 95fe5c96fd Document aliases. Improve eval command to accept bound arguments 2017-02-16 12:41:26 +00:00
Daniil Fedotov 2b4012127e Support aliases
Fixes #10

Loads aliases in "name = command_name [arguments and options]" format from --aliases-file
2017-02-15 18:03:45 +00:00
Daniil Fedotov 8efb8a32ab Do not use Mix in production code.
Fixes #174

Mix is not bundled into the escript file, so sould not
be used in the code.
2017-02-15 10:46:08 +00:00
Michael Klishin c4dab95dce Copy 2017-02-06 00:39:16 +03:00
Michael Klishin 696adc923d Copy 2017-02-06 00:35:20 +03:00
Michael Klishin 39f17b53ee Naming, Elixir code style 2017-02-06 00:02:30 +03:00
Arnaud Cogoluègnes 62cdd4d7fc Merge branch 'master' into rabbitmq-server-1085 2017-01-31 17:20:52 +01:00
Michael Klishin 2a9c24af2c Merge branch 'master' into rabbitmq-server-release-12 2017-01-27 18:33:19 +03:00
Jean-Sébastien Pédron 61d8bb836e Merge pull request #171 from rabbitmq/rabbitmq-cli-170
Validate enabled plugins version requirements
2017-01-27 16:29:04 +01:00
Daniil Fedotov 0e13568ec3 Move plugin validation from `validate` to `run` 2017-01-27 14:55:09 +00:00
Daniil Fedotov 77860364bb Merge branch 'master' into rabbitmq-server-release-12 2017-01-27 10:42:58 +00:00
Daniil Fedotov 8038f583e0 Validate all plugins if `all` flag is present 2017-01-26 16:21:44 +00:00
Daniil Fedotov df95a411c7 Format user_already_exists error 2017-01-26 12:33:56 +00:00
Daniil Fedotov 52ad0d2a39 Validate enabled plugins version requirements 2017-01-26 12:21:20 +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
Arnaud Cogoluègnes 57f2eff218 Add read to topic permissions
Part of rabbitmq/rabbitmq-server#1085
2017-01-23 10:12:03 +01:00
Michael Klishin 6faff961c1 Fix a few compiler warnings 2017-01-21 23:18:58 +03:00
Michael Klishin ed68f0e957 Merge pull request #166 from rabbitmq/rabbitmq-event-exchange-10
Provide cli user as user who performs action for event notifications
2017-01-21 02:05:19 +03:00
Daniil Fedotov b7fb43fb48 Fix auto complete module to support new parser API 2017-01-18 15:38:33 +00:00
Michael Klishin ee34fac5bd Merge branch 'master' into rabbitmq-event-exchange-10 2017-01-17 20:28:03 +03:00
Daniil Fedotov bb57a213c0 List vhost limits command 2017-01-17 13:02:09 +00:00
Diana Corbacho fd6ba841cd Provide cli user as user who performs action for event notifications 2017-01-17 09:01:14 +00:00
Michael Klishin 5e15f5c2d2 Merge branch 'master' into rabbitmq-server-505 2017-01-12 12:58:27 +03:00
Jean-Sébastien Pédron 5905f1c40a Update copyright line to year 2017 2017-01-10 15:42:40 +01:00
Michael Klishin 6c5c35e4b1 Wording 2017-01-07 05:13:57 +08:00
Michael Klishin 088fa90faf Cosmetics 2017-01-07 04:54:31 +08:00
Diana Corbacho b2b804eda9 Limit number of connections to close 2017-01-06 15:15:31 +01:00
Diana Corbacho da8e333209 Test close all connections command 2017-01-06 13:54:48 +01:00
Diana Corbacho c4bf5ee0fa Close all connections command with vhost, global and delay options 2017-01-06 08:25:21 +01:00
Jean-Sébastien Pédron 530a9c7d83 {disable,enable}_command.ex: Support --all to enable/disable all plugins
[#136769947]
2016-12-29 11:47:48 +01:00
Jean-Sébastien Pédron 77a23a9a72 Move plugin_names() from list_command.ex to plugins_helpers.ex
[#136769947]
2016-12-29 11:46:17 +01:00
Arnaud Cogoluègnes 6160bdd57e Merge branch 'master' into rabbitmq-server-505 2016-12-27 16:43:57 +01:00
Michael Klishin 41a67e6c4f Actually, don't log anything
Those CT log entries would look really weird to the user
and we already log CLI failures in rabbitmq_ct_helpers.
2016-12-27 13:57:23 +03:00
Michael Klishin ce909f8d3a Explain; log something more meaningful with CT 2016-12-27 13:55:13 +03:00
Daniil Fedotov 30b41ba267 Support start from common_test tests 2016-12-23 12:12:33 +00:00
Arnaud Cogoluègnes 93e9d9301e Merge branch 'master' into rabbitmq-server-505 2016-12-22 17:50:18 +01:00
Daniil Fedotov 7d41df5d8d Fix sorting and plugin name access for plugin management commands 2016-12-22 16:19:17 +00:00
Arnaud Cogoluègnes c7a11fad38 Merge branch 'master' into rabbitmq-server-505 2016-12-22 17:09:06 +01:00
Arnaud Cogoluègnes 1dcc44d5f7 Add topic authorisation commands
References rabbitmq/rabbitmq-server#505
2016-12-22 16:50:59 +01:00
Diana Corbacho 7b689ae633 Detailed error message in memory threshold validation 2016-12-22 12:13:46 +01:00
Arnaud Cogoluègnes 93ca16c5ff Add global parameters commands
Part of rabbitmq/rabbitmq-mqtt#73
2016-12-16 16:41:29 +01:00
Gerhard Lazu 240c7c0862 Merge pull request #156 from rabbitmq/rabbitmq-cli-153
Load .ez plugins without version
2016-12-14 17:00:40 +00:00
Gerhard Lazu 4d46936749 Be more specific about what is being stopped on `stop_app`
rabbitmq/rabbitmq-server#1043
2016-12-14 12:04:54 +00:00
Michael Klishin eaaea172ae Squash a couple of compiler warnings 2016-12-14 14:55:03 +03:00
Michael Klishin c647314d79 Merge branch 'master' into rabbitmq-cli-153 2016-12-14 14:50:06 +03:00
Diana Corbacho 067f0cee14 Load .ez plugins without version 2016-12-13 13:06:16 +01:00
Michael Klishin ad094d74a9 Correct delegation here 2016-12-12 16:27:34 +03:00
Michael Klishin 1f7404ce4c Don't include double quotes in cookie hash output
It is easier to parse, in particular when -q is passed.
2016-12-12 15:51:29 +03:00
Diana Corbacho 6e29559910 Add tests for Erlang cookie hash command 2016-12-12 12:59:41 +01:00
Diana Corbacho 065c06dfab Erlang cookie hash command 2016-12-12 11:38:45 +01:00
Daniil Fedotov 8735851da4 Sort commands when printing help 2016-12-07 16:21:10 +00:00
Arnaud Cogoluègnes adef01fcbc Merge pull request #150 from rabbitmq/rabbitmq-cli-144
Introduce `rabbitmq-diagnostics maybe_stuck`
2016-12-07 16:10:22 +01:00
Michael Klishin 6f5d3c6bb0 Introduce `rabbitmq-diagnostics maybe_stuck`
Fixes #144.
[Finished ##135678977]
2016-12-07 17:10:17 +03:00
Daniil Fedotov f7a741ece8 Merge branch 'master' into rabbitmq-cli-134 2016-12-07 14:05:59 +00:00
Michael Klishin 216810d205 Drive by change: simplify 2016-12-07 15:47:28 +03:00
Michael Klishin 5a5e00a48e Use Erlang terms formatter to be compatible with eval 'ssl:cipher_suites().' output 2016-12-07 15:43:41 +03:00
Michael Klishin d6202f761c Make the Erlang term formatter concatenate stream elements with commas
Fixes #149, references #141.
2016-12-07 15:42:48 +03:00
Michael Klishin 7d730e739d Introduce `rabbitmq-diagnostics cipher_suites [--openssl-format]`
Fixes #141.
[##135616437]
2016-12-07 01:43:41 +03:00
Daniil Fedotov 967cc07c16 Do not streamify plain maps 2016-12-06 17:14:59 +00:00
Daniil Fedotov 6846cfa258 Remove useless output 2016-12-06 16:18:54 +00:00
Diana Corbacho 28d8259450 Real time output in enable/disable/set commands 2016-12-06 15:12:47 +00:00
Michael Klishin 7b809bd7a5 Wording 2016-12-06 17:00:50 +03: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
Michael Klishin 3deb0df90f Merge branch 'handle-distribution-errors' of https://github.com/binarin/rabbitmq-cli into binarin-handle-distribution-errors 2016-12-05 18:42:27 +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
Michael Klishin 511a898a8f Wording 2016-12-05 17:39:38 +03:00
Michael Klishin e17c809530 Switch to a documented inet* function
References #137.
2016-12-05 17:38:16 +03:00
Alexey Lebedeff fcd23a6ca3 Fix longname-mode on hosts without detectable FQDN
Re-implement https://github.com/rabbitmq/rabbitmq-server/issues/890

CLI tools fail in longnames-mode if erlang is not able to determine host
FQDN (with at least one dot in it). E.g. this happens on docker.

And it was not possible to alleviate this situation using any options
from http://erlang.org/doc/apps/erts/inet_cfg.html
2016-12-05 16:06:52 +03:00
Michael Klishin ba0efb56b0 Merge pull request #133 from rabbitmq/rabbitmq-cli-129
Load command specific options from a single command
2016-12-03 11:32:44 +03:00
Michael Klishin f788060718 Extract function 2016-12-03 11:20:02 +03:00
Daniil Fedotov c62d48380a Load command specific options from a single command 2016-11-30 16:51:59 +00:00
Arnaud Cogoluègnes 409f8e3b00 Use 1 RPC call to get running plugins 2016-11-30 17:19:13 +01:00
Arnaud Cogoluègnes fd07c8b70b Support several versions of plugins in directories
References #131
2016-11-29 17:33:41 +01:00
Arnaud Cogoluègnes 304ab703f4 Support multiple plugins directories
References #131
2016-11-29 15:26:57 +01:00
Michael Klishin 95d7d055f2 Merge pull request #130 from rabbitmq/rabbitmq-cli-123
Make `rabbitmqctl stop` support an optional pid file argument
2016-11-23 21:19:15 +03:00
Michael Klishin 94c21f4a40 Make `rabbitmqctl stop` support an optional pid file argument
While at it, move test/helpers_test.exs under test/core.

This slightly changes command output (mentions what file path is used
or what its contents are when we cannot parse it). We try hard
to not introduce any breaking changes compared to the 3.6.x CLI
tools but in this case it's an improvement.
Also, no one should depend on `rabbitmqctl stop` output, only UNIX
exit code, which did not change.
2016-11-23 21:11:01 +03:00
Arnaud Cogoluègnes fcd7b66299 Add banner to encode command
Fixes #118
2016-11-23 10:18:20 +01:00
Arnaud Cogoluègnes fc08e50e88 Merge branch 'master' into rabbitmq-cli-118 2016-11-23 09:21:56 +01:00
Daniil Fedotov e3289ed454 Remove empty switches and aliases 2016-11-22 18:32:12 +00:00
Arnaud Cogoluègnes 887a09644b Merge branch 'master' into rabbitmq-cli-118 2016-11-22 16:51:27 +01:00
Michael Klishin 266a4f664e Make StopCommand#validate/2 accept a pidfile path 2016-11-22 17:23:19 +03: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 5607b92e32 Remove empty switches/0 and aliases/0 callbacks 2016-11-21 11:26:40 +00: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
Arnaud Cogoluègnes 5e16943fe4 Add encode command
Catching up with rabbitmq/rabbitmq-server#979.

Fixes #118
2016-11-18 14:52:29 +01:00
Michael Klishin 0aa7bf6f9b Merge branch 'master' into rabbitmq-server-1030 2016-11-17 21:36:23 +03:00
Daniil Fedotov a664f83b9f Fix stream output for csv formatter 2016-11-17 16:09:18 +00:00
Daniil Fedotov e4ebdaabde Make rabbit node resolve from environment variable by default 2016-11-17 14:16:00 +00:00
Arnaud Cogoluègnes 061dc48e96 Use binaries for policy RPC call
Part of rabbitmq/rabbitmq-server#1030
2016-11-17 09:54:11 +01:00
Daniil Fedotov 77e17ddf13 Printer behaviour 2016-11-16 13:46:36 +00:00
Michael Klishin 0d61a2b0d0 Use Erlang term formatter by default for status
Fixes #106.
2016-11-16 00:15:44 +03:00
Michael Klishin 1cf7b70bc1 Merge pull request #116 from rabbitmq/rabbitmq-cli-115
CSV formatter
2016-11-15 22:05:48 +03:00
Daniil Fedotov 82026a0ec8 More global switches to control environment 2016-11-15 16:14:10 +00:00
Daniil Fedotov f160f0536a New exec command to execute elixir code locally in command context. 2016-11-15 16:12:41 +00:00
Daniil Fedotov 4c05e343d7 Format CSV info items with helpers 2016-11-15 11:31:59 +00:00
Daniil Fedotov cb52a66d70 CSV formatter 2016-11-15 11:14:44 +00:00
Daniil Fedotov ccb6bf116c Namespace refactoring 2016-11-14 17:52:08 +00:00
Milton Mazzarri 6795aec784 Improve code consistency
* Fix some code consistency issues, mostly spaces around parenthesis, brackets and operators.
* Write large number with underscores (example: 70_000 instead of 70000)
* Write variable names in snake_case
* Remove trailing white spaces
2016-11-13 00:29:17 -06:00
Daniil Fedotov 31848069e2 Use RABBITMQ_NODENAME as default node 2016-11-11 11:12:09 +00:00
Daniil Fedotov 1dc8e90a70 Make tests happy 2016-11-10 17:40:43 +00:00
Daniil Fedotov 6c98c51a7d Call rabbit:alarms instead of rabbit:status to get alarms 2016-11-10 16:01:41 +00:00
Daniil Fedotov 3c8e6d1ef7 Use seconds in timeout parameter. Better timeout error report 2016-11-10 14:53:59 +00:00
Daniil Fedotov 63382a3b18 Force non infinity timeout for node health check. Node health check output 2016-11-10 13:51:01 +00:00
Daniil Fedotov 8f601a4bbe Erlang terms formatter name 2016-11-10 13:01:49 +00:00
Daniil Fedotov 7dd74a3232 Erlang terms formatter 2016-11-10 12:19:47 +00:00
Daniil Fedotov ca69dff530 Handle non-list format_output in table formatter 2016-11-10 12:12:17 +00:00
Daniil Fedotov 58af1261b1 Flatten list_consumers output in table formatter 2016-11-09 18:18:32 +00:00
Daniil Fedotov 0d88314c50 It's not a map, it's a keyword list 2016-11-09 17:11:51 +00:00
Daniil Fedotov b984a423bf Support --local argument in list_queues 2016-11-09 17:02:05 +00:00
Daniil Fedotov b436f52797 Proper error handling 2016-11-09 17:02:05 +00:00
Daniil Fedotov dae427bbf9 Handle non-error outputs in wait command 2016-11-09 13:03:35 +00:00
Daniil Fedotov 9ebf876c9a Do not require ENABLED_PLUGINS_FILE to run ctl, still print an error 2016-11-08 14:45:59 +00:00
Daniil Fedotov 4d0f9b1fb5 Load commands from plugins 2016-11-08 14:25:14 +00:00
Daniil Fedotov b0f59ead31 Fix tests 2016-11-08 14:23:09 +00:00
Daniil Fedotov ad90e60121 script name is overridable via argument 2016-11-08 14:21:31 +00:00
Daniil Fedotov 60fdcecdb4 Format disabled plugins 2016-11-08 14:19:11 +00:00
Daniil Fedotov 3e3d8f3f0b Fix tests for plugins commands 2016-11-08 14:19:11 +00:00
Daniil Fedotov b8c7360b14 Plugins enable/disable command formatter 2016-11-08 14:19:11 +00:00
Daniil Fedotov b98470288d List plugins formatter 2016-11-08 14:19:11 +00:00
Daniil Fedotov 4733765759 Better generic formatting. No tests for format_error 2016-11-08 10:11:07 +00:00
Michael Klishin db194fb013 Merge branch 'master' into rabbitmq-cli-105
Conflicts:
	test/forget_cluster_node_command_test.exs
	test/rename_cluster_node_command_test.exs
2016-11-07 22:37:24 +03:00
Daniil Fedotov 837226430b Coordinate environment with config module 2016-11-07 22:03:09 +03:00
Michael Klishin e423453159 Add a missing clause 2016-11-07 09:45:43 -08:00
Daniil Fedotov 08e263ab2a Vhost limits commands 2016-11-07 14:08:26 +00:00
Daniil Fedotov 85d6868763 Make table formatter look like in the old CLI 2016-11-04 12:38:35 +00:00
Daniil Fedotov 603dfd4cf0 Add optional callbacks to the command behaviour 2016-11-04 11:29:14 +00:00
Daniil Fedotov aaabab1fe9 Enable table formatter for each list_ command 2016-11-04 11:17:02 +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 cb3e54d8d8 Table formatter 2016-10-31 18:07:24 +00:00
Michael Klishin 74cb3a2b53 diag, diagnostic => diagnostics 2016-10-12 01:07:40 +03:00
Daniil Fedotov 70b867e908 Naming 2016-10-07 14:57:10 +01:00
Daniil Fedotov 41f38e29f8 Make read-only commands part of the rabbitmq-diag tool 2016-10-07 14:36:54 +01:00
Michael Klishin e1de90218c Merge pull request #104 from rabbitmq/rabbitmq-cli-101
Operator policies commands
2016-09-08 15:35:56 +04:00
Daniil Fedotov 599cede1df Convert error_string char list to string 2016-09-08 11:03:08 +01:00
Daniil Fedotov 3ac39162be Operator policies commands 2016-09-08 11:02:21 +01:00
Daniil Fedotov fe3e83ec50 Fixing some tests 2016-09-07 12:46:47 +01:00
Michael Klishin 4a277f1fdd A bit of docs 2016-09-05 13:29:11 +03:00
Michael Klishin 64ee6dfaf2 Wording 2016-09-05 13:06:45 +03:00
Michael Klishin b65d8649cd Cosmetics 2016-09-05 12:47:59 +03:00
Michael Klishin 59a57a8d37 Merge branch 'master' into rabbitmq-cli-90 2016-09-05 12:44:18 +03:00
Daniil Fedotov a7fe88e74c Example json formatter. Remove IO.puts from commands 2016-08-23 14:28:07 +01:00
Daniil Fedotov 57550182e1 Specific output tests 2016-08-22 15:05:17 +01:00
Daniil Fedotov 6d2208063f Write to file using file printer 2016-08-22 14:19:15 +01:00
Daniil Fedotov c88eb090f3 File printer 2016-08-22 14:13:38 +01:00
Daniil Fedotov 4c13a51ac8 Reworking command outputs 2016-08-22 12:58:37 +01:00
Daniil Fedotov 616476cc66 Remove duplicate require_rabbit function 2016-08-18 17:55:29 +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 b154b998ca Make sure rabbit_event is functional
It will be required as of server#500.
2016-08-18 12:09:27 +03:00
Daniil Fedotov 4b25f8ab18 Add rabbit plugins to path when requiring rabbit to be loaded 2016-08-17 17:06:15 +01:00
Andrew Bruce 19f0ba94d3 Inline default_opts
[#127359637]
2016-08-15 15:09:12 +01:00
Andrew Bruce 541ad4249c Fix merge_defaults implementations
...and don't default inside run methods.

Defaults must go on left-hand-side of `Map.merge`, or they'll clobber
user-defined settings.

Remove some unnecessary pattern matching.

Issue #92

[#127359637]
2016-08-15 14:21:15 +01:00
Michael Klishin 4e45a52dd4 Fix an IO.puts/1 line ported from io:format/2 too literally 2016-08-14 08:37:32 +03:00
Michael Klishin 49e9cb2909 pong and pang are atoms 2016-08-14 08:16:44 +03:00
Michael Klishin b57e8e16cc Don't rely on rabbit_control_main; coerce node names to atoms
`rabbit_control_main` is going away due to the very existence of
these new CLI tools.
2016-08-12 04:46:26 +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 508a906bf9 Wording, add aliases to UpdateClusterNodesCommand 2016-08-12 02:34:43 +03:00
Michael Klishin 17773fcd1f Merge branch 'master' into rabbitmq-cli-update-cluster-nodes 2016-08-12 01:56:12 +03:00
Michael Klishin 0e8ab49937 Brush up tests, support both "disc" and "disk"
as the current `rabbitmqctl` does.
2016-08-12 01:54:23 +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 81ea222428 Fix CLI arguments parsing for policies, brush up tests
Policy commands now work on the CLI against an actual node.
2016-08-11 17:15:43 +03:00
Michael Klishin e9ef2cff34 Merge branch 'master' into rabbitmq-cli-policies-commands 2016-08-11 13:58:11 +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
Michael Klishin ef2c06f0f4 Merge branch 'master' into rabbitmq-cli-force-boot-command 2016-08-11 11:12:59 +03:00
Michael Klishin 29c3bf3f43 Wording, cosmetics 2016-08-11 10:56:32 +03:00
Michael Klishin cb03611e2a Merge branch 'master' into rabbitmq-cli-78 2016-08-11 10:49:39 +03:00
Michael Klishin 7525ee3373 Cosmetics 2016-08-11 09:52:37 +03:00
Michael Klishin 76fb17d8f2 Use MapSet.difference/2 here, too 2016-08-11 09:37:48 +03:00
Michael Klishin 30e0c66127 Use sets in more places; rabbit_plugins:ensure/1 expects an Erlang list
Both CLI and tests now generally work as expected.
2016-08-11 01:44:27 +03:00
Michael Klishin 05db449187 Handle duplicates on plugin lists, be more defensive with defaults
Makes CLI invocations of `rabbitmq-plugins {enable, disable, list}`
mostly work.
2016-08-11 01:27:13 +03: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 bec4e6f4f9 Drop rabbitmq-plugins active_plugins
`rabbitmq-plugins list` with flags can do the same thing.

Per discussion with @hairyhum.
2016-08-09 13:46:20 +03:00
Michael Klishin eef1c36024 Drop _plugins from plugin management module names 2016-08-09 00:03:58 +03:00
Daniil Fedotov ca98b02656 Implement policy management commands 2016-07-29 14:59:19 +01:00
Daniil Fedotov 4d40649d44 Command auto completion 2016-07-28 17:46:37 +01:00
Daniil Fedotov a0c5af375b Implement forget_cluster_node command 2016-07-27 14:41:02 +01:00
Daniil Fedotov e89bf53357 Do not require rabbit as dependency 2016-07-27 12:27:27 +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
Daniil Fedotov 12cbd50f10 Implement update_cluster_nodes command 2016-07-25 15:11:05 +01:00
Daniil Fedotov 0eee8e2446 Implement force_boot command 2016-07-25 14:01:41 +01:00
Daniil Fedotov 57c4a0fa69 Fix some tests 2016-07-25 14:00:55 +01:00
Daniil Fedotov a84cd93d2e Implement eval command 2016-07-22 17:17:15 +01:00
Michael Klishin 58708b6ac3 Merge branch 'master' into rabbitmq-cli-83 2016-07-15 23:54:48 +03:00
Michael Klishin 909a3b41fe Adapt to recent server rabbit_health_check changes 2016-07-15 23:47:15 +03:00
Michael Klishin 786ec7672d Rename 2016-07-10 21:36:12 +03:00
Michael Klishin 09fc873a34 Improve a couple of error atoms 2016-07-10 19:47:27 +03: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 5b828c7e64 Tests for command modules 2016-06-23 12:33:39 +01:00
Daniil Fedotov 5c5f4d4414 Plugins command tests 2016-06-23 10:50:01 +01:00
Daniil Fedotov eda1e7cac2 Tests for list plugins command 2016-06-23 10:50:01 +01: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
Daniil Fedotov 75d8632d87 Aliases in behaviour. List plugins command 2016-06-23 10:50:01 +01:00
Daniil Fedotov 33caaecb9b Select command scope by namespace 2016-06-23 10:50:01 +01:00
Daniil Fedotov 0d026a5f4a Example plugins command 2016-06-23 10:50:01 +01:00
Daniil Fedotov deb6e99b49 Removed scopes from command behaviour 2016-06-23 10:50:01 +01:00
Daniil Fedotov 9baa5c1ebe Load commands from load path. Specify scope in application config by file name 2016-06-23 10:50:01 +01:00
Daniil Fedotov 1f3bc3e6d7 Use scopes and separate Mix projects to generate escripts 2016-06-23 10:50:01 +01:00
Michael Klishin 78ae2585a3 Inline 2016-06-15 00:22:42 +03:00
Michael Klishin bc5ff3bf26 Merge pull request #79 from rabbitmq/rabbitmq-cli-69
Purge queue command
2016-06-14 23:07:55 +03:00
Michael Klishin 2d68d42241 Assert that messages were purged; don't assume 0 messages were deleted 2016-06-14 23:04:27 +03:00
Michael Klishin d77eb83c5f A few Helpers.parse_node calls are no longer necessary
[Finish ##121221959]
2016-06-14 14:21:16 +03:00
Andrew Bruce ec3a191515 Purge queue command
This initial version makes two RPC calls:

1. Gets the amqqueue resource
2. Makes the purge request using that resource

Issue #69
2016-06-14 10:31:47 +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
Andrew Bruce 0c94b3d87a Fix typo in node name 2016-06-09 15:49:57 +01: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 509179402a Missing file for the previous commit 2016-06-09 03:35:11 +03:00
Michael Klishin 0c35f5a8cd Move start_distribution into RabbitMQ.CLI.Distribution 2016-06-09 02:23:10 +03:00