Commit Graph

1132 Commits

Author SHA1 Message Date
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