Commit Graph

1132 Commits

Author SHA1 Message Date
Michael Klishin c9d984eb4c Report node maintenance status in 'rabbitmq-diagnostics cluster_status'
Part of rabbitmq/rabbitmq-server#2321
2020-07-14 03:52:02 +03:00
Michael Klishin c9ed8be1bc Report node maintenance status in 'rabbitmq-diagnostics status'
Part of rabbitmq/rabbitmq-server#2321
2020-07-14 03:52:02 +03:00
Michael Klishin 998701eb05 Introduce 'rabbitmq-upgrade drain' and 'rabbitmq-upgrade revive'
A part of rabbitmq/rabbitmq-server#2321
2020-07-14 03:52:02 +03:00
Michael Klishin 30ee526b2a Add doc guide links to {suspend,resume}_listeners 2020-07-14 03:52:02 +03:00
Michael Klishin a8b5408992 Follow our standard file naming convention for commands 2020-07-14 03:52:02 +03:00
Michael Klishin 35103fe7da Introduce 'rabbitmqctl {suspend,resume}_listeners'
Not directly related to rabbitmq/rabbitmq-server#2321
but useful on its own. We've had requests for and discussions
about such commands in the past and now that Ranch supports
listener suspension, there aren't many reasons not to do it.
2020-07-14 03:52:01 +03:00
dcorbacho 679ca254f3 Switch to Mozilla Public License 2.0 (MPL 2.0) 2020-07-11 19:23:07 +01:00
Michael Klishin db662cfa59 Re-categorize some rabbitmq-diagnostics commands
For a couple of reasons:

 * The Observability, Monitoring and Health Checks group has grown too large
 * Some commands in it clearly have to do with exploring effective node
   or CLI tool configuration, not its dynamically changing operational state
2020-07-05 15:35:32 +07:00
Michael Klishin 9ac54057f2 Wording 2020-07-05 03:50:48 +07:00
Michael Klishin 7bf2f6b4ef erlang_cookie_sources: support Windows-specific HOMEDRIVE and HOMEPATH 2020-07-05 03:49:48 +07:00
Michael Klishin db299967e0 Introduce 'rabbitmq-diagnostics erlang_cookie_sources'
to help troubleshoot authentication issues.

Inspired by an idea from @gerhard.
2020-07-05 03:19:50 +07:00
Michael Klishin 4f80dd1369 Make RABBITMQ_ERLANG_COOKIE deprecation message pop [as in colors] 2020-07-03 09:05:35 +07:00
Michael Klishin d7ca0e9446 Deprecate RABBITMQ_ERLANG_COOKIE env variable support
It's not worth the confusion it causes in practice since
the server does not support it.

Per discussion with @gerhard @dumbbell.

Closes #443.
2020-07-02 08:25:49 +03:00
Michael Klishin 2101043257 Introduce a first class autocomplete command
Currently we have a --auto-complete magic argument which
does not show up in `help` and requires its argument to be
explcitly -- separated from the actual flag, which is
counter-intuitive.

This introduces a new autocomplete command which is delegated
to by --auto-complete, much like --help is simply a special
way of invoking the `help` command.

Closes #439
2020-07-02 07:29:40 +03:00
Michael Klishin 9f031d3f0b Special case single node clusters for 'rabbitmq-queues check_if_node_is_quorum_critical'
References rabbitmq/rabbitmq-cli#432
2020-07-01 18:25:06 +03:00
Michael Klishin 18a3daf9be rabbitmqctl eval: consume multiple lines from standard input
Part of #438
2020-07-01 16:55:33 +03:00
Michael Klishin a98e38dd80 Introduce 'rabbitmqctl eval_file [file path]'
for evaluation of scripts in environments where standard input
redirection is not an option or problematic, e.g.
certain Windows environments.

Closes #438
2020-07-01 03:11:13 +03:00
Michael Klishin 0f1f6d2be7 'rabbitmqctl eval': accept expression to evaluate from stdin
References #438
2020-07-01 02:29:22 +03:00
Michael Klishin 24947666b9 if a node is the only cluster member, pass on the mirror sync critical check
Per discussion with @harshac, @ansd

Closes rabbitmq/rabbitmq-cli#432
2020-07-01 01:46:31 +03:00
Michael Klishin 921d349e37 Make --help, help usage help messages consistent
* `help` printed an "Error:" at the top for no reason
 * `help [command]` with a non-existent command did not offer a suggestion
   like an attempt to invoke a non-existent command would
 * Exit codes were not consistent
 * `help --list-commands` had line break issues

With this change,

  * `help` is consistent with --help
  * `help [command]` is consistent with `[command] --help`
  * If a command is not found, either during the execution flow
    or `help [commnad]`, we consistently attempt a Jaro distance suggestion
  * Successful or effectively successful exits from the `help`
    command do not produce any error messages at the top
2020-06-29 03:57:52 +03:00
Michael Klishin ef329b88b1 rabbitmqctl export_definitions: ensure that parameter value is a map
otherwise it would be serialised as a list of pairs, which is
not the format the import path (or an operator) expects

Closes #435
2020-06-26 05:55:57 +03:00
Michael Klishin 209acc6396 Rename Rabbitmq.Atom.Coerce to RabbitMQ.CLI.Core.DataCoercion
to follow the existing core (library, utility) module
naming convention.
2020-06-26 01:34:03 +03:00
Michael Klishin d11bd12a97 Make 'rabbitmqctl hipe_compile' a no-op
HiPE has been deprecated/only partially supported in Erlang 22
and will be removed completely in Erlang 24 next year.

Part of rabbitmq/rabbitmq-server#2392
2020-06-25 18:39:12 +03:00
Michael Klishin e1e92408db Move these helpers to Core.Networking 2020-06-21 15:41:45 +03:00
Michael Klishin f11384fe86 Introduce 'rabbitmq-diagnostics resolver_info'
To inspect effective inetrc [1] settings used
by a node or CLI tools.

1. https://erlang.org/doc/apps/erts/inet_cfg.html
2020-06-21 15:09:21 +03:00
Michael Klishin b17fda724b Introduce 'rabbitmq-diagnostics resolve_hostname'
Helps with troubleshooting hostname resolution behavior
on nodes and locally for CLI tools. This is obviously not meant
to be a replacement for existing tools such as dig, only
a way to quickly spot obvious irregularities, e.g. those
in environments that use custom Erlang inetrc files.

Per discussion @harshac.
2020-06-20 16:55:21 +03:00
Michael Klishin c72f0aea41 ctl add_user: use a more suitable exit code when no password is provided
EX_DATAERR from [1] makes more sense than EX_SOFTWARE.

1. https://www.freebsd.org/cgi/man.cgi?query=sysexits&apropos=0&sektion=0&manpath=FreeBSD+12.0-RELEASE&arch=default&format=html
2020-06-13 13:04:47 +03:00
Michael Klishin 6986086b88 User and permission management command: adopt a more suitable exit code
Apparently [1], which is the most standardized set of exit codes
we could find, includes a dedicated exit code for cases where
a user does not exist.

References #425, rabbitmq/rabbitmq-server#2363, bda0cbfdc3.

1. https://www.freebsd.org/cgi/man.cgi?query=sysexits&apropos=0&sektion=0&manpath=FreeBSD+12.0-RELEASE&arch=default&format=html
2020-06-08 05:35:33 +03:00
Michael Klishin 01e974c5dc Merge pull request #428 from rabbitmq/rabbitmq-cli-424
Introduce 'rabbitmq-diagnostics list_network_interfaces'
2020-06-05 18:57:46 +03:00
Luke Bakken 9f9cb644c9 Remove unused variable 2020-06-05 08:12:20 -07:00
Michael Klishin 9fbec752b3 rabbitmq-diagnostics list_network_interfaces: support --offline mode
Operators likely would want to inspect available interfaces when
the node is not yet running.

Part of rabbitmq/rabbitmq-cli#424
2020-06-05 17:47:38 +03:00
Michael Klishin 3003b9e615 Introduce 'rabbitmq-diagnostics list_network_interfaces'
To make it easier to discover them without using eval and
obscure functions.

Part of rabbitmq/rabbitmq-cli#424
2020-06-05 17:16:10 +03:00
Michael Klishin e01753ed7a Deprecate 'ctl node_health_check'
* It requires a fully booted node, so not generally suitable for a Kubernetes readiness probe.
 * It can produce false positives
 * It is too intrusive and CPU-intensive to use at scale
 * Most operators do not understand what it really does and when they learn about it,
   consider it to be too opinionated and intrusive

Time for the One True Health Check™ to retire from duty.

Part of rabbitmq/rabbitmq-cli#426
2020-06-05 00:51:40 +03:00
Michael Klishin 11b98ee091 Improve reporting of 'ctl change_password' failures
Part of rabbitmq/rabbitmq-server#2363
2020-06-04 05:56:48 +03:00
Michael Klishin b279fffc1f Improve reporting of 'ctl set_user_tags' failures
Part of rabbitmq/rabbitmq-server#2363
2020-06-04 05:51:09 +03:00
Michael Klishin 42f5a9031f Improve reporting of 'ctl delete_user' failures
Part of rabbitmq/rabbitmq-server#2363
2020-06-04 05:44:33 +03:00
Michael Klishin e4ed83ef04 Improve reporting of 'ctl add_user' failures
Part of rabbitmq/rabbitmq-server#2363
2020-06-04 05:36:51 +03:00
Michael Klishin 37b439e894 Improve reporting of 'ctl clear_topic_permissions' failures
Part of rabbitmq/rabbitmq-server#2363
2020-06-04 04:56:08 +03:00
Michael Klishin 0629da37ad Improve reporting of 'ctl clear_permissions' failures
Part of rabbitmq/rabbitmq-server#2363
2020-06-04 04:36:50 +03:00
Michael Klishin e12df13d66 Improve reporting of 'ctl set_topic_permissions' failures
Part of rabbitmq/rabbitmq-server#2363
2020-06-04 04:11:05 +03:00
Michael Klishin d51de26561 Improve reporting of 'ctl set_permissions' failures
Part of rabbitmq/rabbitmq-server#2363
2020-06-04 03:51:36 +03:00
Michael Klishin 2569017b26 List Raft data directory in status
Part of rabbitmq/rabbitmq-server#2354
2020-05-30 19:37:46 +03:00
Michael Klishin 2bd6c95375 Rely on rabbit_env to infer node name
During the 3.8.4 cycle we have backported `rabbit_env` to v3.8.x.
Instead of messing with env variable prefixing, it tries both
RABBITMQ_{VAR} and {VAR} environment variables. However,
in CLI tools node name currently only picks up RABBITMQ_NODENAME,
so environments where node name has to be explicitly configured
via rabbitmq-env.conf:

NODENAME=rabbit@our.custom.hostname

would not pick this node name up. RABBITMQ_NODENAME had to be added
as a workaround.

With this change the behavior of CLI tools and the server is closer.

Note that this updates a few places which used `Config.get_option/2`
to get a "default node name" which more often than not ended up
being a node prefix ("rabbit"). Those tests had to be updated
to use `Config.default/1`.

Closes #421.
References c8e766dec7, 8a5ab87038.
2020-05-28 02:54:33 +03:00
Michael Klishin 61a927ffb6 Brush up encode and decode commands 2020-05-21 09:37:08 +03:00
Luke Bakken a4669adf94 Update for version 2 of credentials-obfuscation
Part of rabbitmq/credentials-obfuscation#5
2020-05-20 18:54:40 -07:00
Michael Klishin 3ba529f9e6 Default timeouts must be in milliseconds 2020-05-19 06:57:29 +03:00
Michael Klishin 4784cc0a34 Correct a typo in function name 2020-05-19 06:57:14 +03:00
Michael Klishin 907c4a9fd7 Include 'rabbitmq-diagnostics os_env' output into 'rabbitmq-diagnostics report' 2020-05-07 16:42:23 +03:00
Michael Klishin 57727fcc49 Wording 2020-05-07 16:41:45 +03:00
Michael Klishin 947940ccd5 Introduce 'rabbitmq-diagnostics os_env'
It prints RabbitMQ-specific environment variables that
are set on the target node. Can be used to inspect env variable-based
configuration without access to the target host.
2020-05-06 23:19:04 +03:00
Jean-Sébastien Pédron 8075029537 cluster_status_command: Show product name & version if any
If the product name or version were overridden in a RabbitMQ node, we
will use this information in that node's line.
2020-04-24 15:37:59 +02:00
Jean-Sébastien Pédron 6ef926e0d5 status_command: Don't display product info if they are unset
Before this commit, if the product name & version were not overridden,
they would default to the base product name & version ("RabbitMQ" + its
version).

Now, if they are not set/overridden, their corresponding lines are not
added to the output of `status`. Therefore, `rabbitmqctl status` on a
regular RabbitMQ will output the same thing as before.
2020-04-24 14:47:14 +02:00
Michael Klishin 4b986d971c Reintroduce DefaultOutput.output/1
CLI commands in some plugins depend on it.
2020-04-22 17:00:22 +03:00
Michael Klishin e0d1406a81 Merge pull request #409 from rabbitmq/rabbitmq-cli-408
Introduce a few new rabbitmq-upgrade commands
2020-04-22 04:26:45 +03:00
Michael Klishin ab1c80062d Introduce 'rabbitmq-upgrade await_online_synchronized_mirror'
Similar in purpose to await_online_quorum_plus_one but
for classic mirrored queues.

Part of rabbitmq/rabbitmq-cli#408
2020-04-22 03:12:32 +03:00
Michael Klishin da5fb5c07b Rename a command file to follow the standard convention 2020-04-22 01:36:43 +03:00
Michael Klishin d99cdd04f5 Introduce rabbitmq-upgrade await_online_quorum_plus_one
The readiness is similar to that of 'rabbitmq-diagnostics check_if_node_is_quorum_critical'
but this command awaits for it up to --timeout seconds.

While at it, refactor DefautOutput to detect and support JSON formatting
of most basic return values suc has :ok or {:error, map}.

Part of #408.
2020-04-22 01:25:55 +03:00
Michael Klishin e1b6a1b07d Drive by change: help command should be available in all scopes
Currently 'rabbitmq-upgrade --help' works as expected
but 'rabbitmq-upgrade help' exists with the same message
but an error exit code.
2020-04-22 01:23:32 +03:00
Michael Klishin 09a9864786 Feature Flags and QQ guides are now available on rabbitmq.com 2020-04-21 23:40:10 +03:00
Philip Kuryloski 075df6bbda Handle RpcStream.receive_list_items_with_fun/6 with a timeout of 0 precisely
Corrects the race condition caused by a 0 timeout by never dispatching the work associated with the stream.
2020-04-17 11:33:00 +02:00
Jean-Sébastien Pédron 0e15591bf5 Update copyright (year 2020) 2020-03-10 15:39:56 +01:00
Jean-Sébastien Pédron 72cbed4876 wait_command.ex: Change `wait` internal sleep to one second
... down from 10% of the configured timeout.

This has a significant impact on the time it takes to start RabbitMQ in
all our testsuites. rabbitmq-ct-helpers sets a wait timeout of 180
seconds. Thus before this patch, the wait loop would sleep for 18
seconds between each check. Given it takes about 1.5 seconds to start
RabbitMQ, a lot of time is wasted here.

Here are some numbers after running testsuites with and without this
patch:

* `make ct-fast` in rabbitmq-server: 8m15s down to 4m58s
* `make ct` in rabbitmq-mqtt: 9m23s down to 6m43s
* `make ct` in rabbitmq-stomp: 4m31s down to 2m04s

[#171535484]
2020-02-28 09:36:11 +01:00
Jean-Sébastien Pédron 349435e2e2 status_command: Show product info
They are printed in addition to the underlying RabbitMQ version.

If it is unavailable, for instance because the node is old enough to
not export the product info, we use "RabbitMQ" as the name and the
underlying RabbitMQ version as the version.

[#171467799]
2020-02-25 16:45:36 +01:00
Hanjun Kim 2574d4d610 fix typo 2020-02-05 20:11:49 +09:00
Michael Klishin 2c66121f34 Expose two rabbitmq-queues health checks to rabbitmq-diagnostics 2020-01-22 20:52:24 +03:00
Michael Klishin 58b1d8c6a0 rabbitmq-queues quorum_status: move to Observability section in help
While at it, do not expose this command via rabbitmqctl as
it wasn't intentional.
2020-01-22 20:25:17 +03:00
Michael Klishin 8bdced9972 Accept integer watermark values as well
They value would be an integer when the watermark is set
as absolute.

Closes #395
2020-01-18 03:51:59 +03:00
Michael Klishin 5b7063d07d More sensible JSON formatting for some commands
Fall back to a JSON document if command returns a bitstring
(does not do any preformatting for JSON).

Per discussion with @lukebakken

Closes #394.
2020-01-18 02:06:04 +03:00
Michael Klishin 73776fbf04 (c) bump 2019-12-29 05:50:26 +03:00
Luke Bakken be003a979d Rename to this commands name 2019-12-19 09:45:10 -08:00
Michael Klishin 7158eec954 Introduce rabbitmq-queues check_if_node_is_mirror_sync_critical
Part two of #389.
2019-12-19 03:59:30 +03:00
Jean-Sébastien Pédron e64aea80a7 stop_command.ex: Read PID file before stopping the node
Now that the node removes its PID file on exit, we need to read it
before stopping the node.

Otherwise, if the PID file was already removed when
`OsPid.read_pid_from_file()` is called, it will wait for the PID file to
appear again in an infinite loop.

This was found when testing the RHEL 6 package on CentOS 6 in CI.
2019-12-13 11:59:49 +01:00
Michael Klishin 71212de9ee Introduce `rabbitmq-queues check_if_node_is_quorum_critical'
Mob: @kjnilsson and several other Pivots.

Part of #389.
2019-12-12 15:58:06 +03:00
Jean-Sébastien Pédron 8a5ab87038 Load `rabbit_env` context to know about node configuration
The context is either initialized from the CLI's process environment or
from the remote node's own context.

This is required to e.g. find plugins or Mnesia directory.

In `code_path`, we don't append `ebin` anymore to the code path because
the `rabbit` application is now packaged as an .ez archive like plugins.
This simplifies the overall layout of the project.
2019-12-11 15:08:00 +01:00
Jean-Sébastien Pédron ebbaf5b71c `wait` command: Wait for the system process to appear
Before this patch, the command would wait for the PID file to appear,
then it would read the PID, check if that process exists and terminates
with `no_process_running` if it wasn't.

This was a problem if the PID file was still there with stale data. The
`wait` command would fail even though another node is starting but
hasn't had a chance to write its PID yet.

Now, the command will read the PID, verify the system process and try to
ping the Erlang node in a loop with the specified timeout. This helps
if a node is restarted but the new PID is not yet written to the file.

Note that it's a slight change in behavior w.r.t crashed nodes though:
if a node crashes (or already crashed), the command will wait until
timeout. Before the command would have exited almost immediately.
2019-12-05 15:20:00 +01:00
Michael Klishin 650ff2775a Drive-by change: return a check failure error 2019-12-04 09:37:28 +03:00
Michael Klishin 9101490cfe Drive-by chane in check_local_arlarms: return an error here 2019-12-04 09:27:26 +03:00
Michael Klishin 98d7e3c566 Rename two command files to follow our convention 2019-12-04 08:38:04 +03:00
Michael Klishin dd38015d38 Squash a compiler warning 2019-11-29 02:33:40 +03:00
Luke Bakken 1c3de98493 Ensure stack trace is always printed for certain errors
Errors like :badarg, :function_clause, etc indicate a serious error. It would be handy for users to immediately get the stack trace to tell us.
2019-11-18 17:39:29 -08:00
Luke Bakken 4fb9bab458 Handle case where import file does not exist or is zero-sized.
Fixup printing the real stacktrace when --print-stacktrace is used
2019-11-18 14:39:50 -08:00
Luke Bakken 75fa655c02 Add newline 2019-11-18 13:49:59 -08:00
Michael Klishin b49b639add ctl export_definitions: fail validation w/o positional args 2019-11-19 00:41:30 +03:00
Michael Klishin 7c5933052e Finish ctl import_definitions 2019-11-16 06:46:26 +03:00
Michael Klishin 19a7305306 DefaultOutput: propagate {:error, exit_code, message} tuples 2019-11-16 05:19:18 +03:00
Michael Klishin fa0db7ad22 Initial version of rabbitmqctl import_definitions 2019-11-16 05:18:52 +03:00
Michael Klishin 27212997c2 A typo 2019-11-15 03:54:01 +03:00
Michael Klishin 0927cdf24d Cosmetics 2019-11-15 03:53:13 +03:00
Michael Klishin c73d04c216 This invariant is impossible here 2019-11-15 03:05:46 +03:00
Michael Klishin 7c0718800f Introduce rabbitmqctl export_definitions [path] 2019-11-15 02:20:02 +03:00
Michael Klishin 53d85f4945 New command group section: definitions 2019-11-14 21:36:24 +03:00
Michael Klishin c85530dbf2 Cosmetics 2019-11-14 21:35:22 +03:00
Michael Klishin ceb3aff309 hipe_compile: deprecate
References rabbitmq/rabbitmq-website#884.
2019-11-01 02:50:38 +03:00
Michael Klishin 68c1211cba Whitespace 2019-10-23 15:59:31 +03:00
Gabriele Santomaggio 56ef537eb0 Add support for IPv6
Add the inet6 family test. When RabbitMQ is listening in ipv6 the test
fail. This commit tests both ipv4 and ipv6.
2019-10-23 11:50:28 +02:00
Luke Bakken cdbaee05ac Add erlang formatter function heads
Fixes #383
2019-10-21 17:49:08 -07:00
Arnaud Cogoluègnes c004ff4607 Improve unit label in check_certificate_expiration
This avoids output like "within 1 years".

And fix a typo.

References #304, #305
2019-10-09 10:16:43 +02:00
Michael Klishin b4de0cd321 Wording 2019-10-08 09:56:37 -05:00
Michael Klishin 593082e18d diagnostics check_certificate_expiration: wording, new default
Four weeks is when many CAs and operators send
out warnings. One day is too short a notice.
2019-10-08 09:42:30 -05:00
Arnaud Cogoluègnes f0bba26e8c Add test for certificate expiration verification
References #304, #305
2019-10-08 16:10:04 +02:00
Arnaud Cogoluègnes 260e797ee6 Remove unused variable
References #304, #305
2019-10-08 14:26:20 +02:00
Arnaud Cogoluègnes bede583bc6 Add flag usage in check_certificate_expiration 2019-10-08 13:41:03 +02:00
dcorbacho fe2bd8d95e Check certificates command
[#163597674]
2019-10-07 16:48:49 +01:00
dcorbacho 4f5706c174 Certificates command
[#163597674]
2019-10-01 10:59:26 +01:00
Michael Klishin c7e60774d0 Minor Prometheus listener description edits 2019-09-26 13:05:32 +03:00
Michael Klishin 254fe20453 Move quorum_status to rabbitmq-queues, add basic tests 2019-09-26 08:16:33 +03:00
Michael Klishin 801b52ac28 rabbitmq-queues [add, remove]: doc wording 2019-09-26 07:42:20 +03:00
Michael Klishin a14cf63a0e Expand rabbitmq-queues shrink argument docs 2019-09-26 07:17:10 +03:00
Michael Klishin 2fff042f8d Expand rabbitmq-queues grow argument docs 2019-09-26 06:39:04 +03:00
Michael Klishin a9881c5037 Add missing usage arguments for rabbitmq-queues rebalance 2019-09-25 19:52:19 +03:00
Arnaud Cogoluègnes 67a38fc2e9 Handle empty output in JSON stream
Some streaming commands with a duration argument can send the empty
string as the output (along with a finishing marker). This case was not
handled properly and would result in a stack trace when the command
returned once the duration has elapsed.
2019-09-25 16:56:47 +02:00
Michael Klishin d5ba3e32de Correct command_line_arguments delegation in report 2019-09-24 02:10:28 +03:00
Michael Klishin 5a137480b3 Merge pull request #378 from rabbitmq/consume-events-command
Consume event command
2019-09-24 01:55:57 +03:00
Michael Klishin 2763ed823d diagnostics consume_event_stream: --quiet by default
We produce a stream of JSON objects which is meant
to be piped to jq or similar.
2019-09-24 01:49:27 +03:00
Michael Klishin 2360057712 Wording 2019-09-24 00:56:58 +03:00
Michael Klishin 4c33ce0961 Move command_line_arguments to rabbitmq-diagnostics 2019-09-24 00:54:11 +03:00
dcorbacho b5e5d0a274 Command line arguments command
* Reports the command line flags returned by `init:get_arguments()`

[#159699409]
2019-09-23 20:07:33 +01:00
dcorbacho 15d7eb2858 Diagnostics: test consume_event_stream_command
[#168224266]
2019-09-23 17:19:07 +01:00
Michael Klishin 6193023a18 Merge pull request #375 from rabbitmq/post-upgrade-command
Post upgrade command
2019-09-22 08:32:30 +03:00
Michael Klishin ccc7ebbafc rabbitmq-upgrade: basic tests for post_upgrade, polishing 2019-09-22 08:31:20 +03:00
Michael Klishin 06aa0afb06 diagnostics: consume_events_stream => consume_event_stream
Pair: @dcorbacho.
2019-09-20 20:01:27 +03:00
Michael Klishin eb6825ebbf Introduce a formatter for infinite streams of JSON objects
The input can be fed to 'jq'. There can be no JSON array
boundaries as the stream potentially never finishes.

Pairs: @dcorbacho @gerhard.
2019-09-20 19:59:32 +03:00
dcorbacho 9d7a873c97 Consume events stream command
[#168224266]
2019-09-20 13:52:51 +01:00
Whitespirit0 f26b755a8d Fix set_parameter command output
Invert parameter name and component name in output.
2019-09-20 11:38:59 +02:00
dcorbacho dc29e5546c Post upgrade command
[#166480167]
2019-09-18 11:37:18 +01:00
dcorbacho 8c77ba5078 Use pretty table formatter
[#166480197]
2019-09-16 11:18:42 +01:00
Diana Corbacho 5ebbd46989 Rebalance command
[#166551605]
2019-09-12 11:21:33 +01:00
Michael Klishin 8bd68a34f1 Typos 2019-08-29 02:03:12 +03:00
Michael Klishin 4e536ff45b rabbitmqctl add_vhost: parse tags
Per review feedback in rabbitmq/rabbitmq-server#2080.
2019-08-28 09:58:29 +03:00
Michael Klishin 4505b9a85f ctl add_vhost: suggest a comma-separated list of tags
For consistency with user tags.
2019-08-15 15:52:09 +10:00
Michael Klishin 2c6f5a1146 ctl add_vhost: make it possible to provide a description 2019-08-15 15:42:06 +10:00
Diana Corbacho 5e04dd41ab Use new 'description' and 'tag' items on list vhosts
[#166298298]
2019-08-13 16:06:53 +01:00
Diana Corbacho 8f5dba4963 List Prometheus port
[#166929073]
2019-08-01 11:45:56 +01:00
Gerhard Lazu 499f0db121 Merge pull request #369 from rabbitmq/rabbitmq-cli-367
diagnostics status: require rabbit app to be running on target node
2019-07-18 17:22:42 +01:00
Michael Klishin 83b92cac0b diagnostics status: require rabbit app to be running on target node
Closes #367.
2019-07-18 18:51:25 +03:00
Gerhard Lazu 57fce6108c Do not require rabbit app for rabbitmq-diagnostics observer
It works perfectly fine without it. We are more likely to want to look
into the Erlang VM if the rabbit app is not running.
2019-07-18 16:50:36 +01:00
Michael Klishin 37450cc0dc Drop --[no-]interactive support
Per discussion with @lukebakken.

It serves no purpose and to make scripting with stream
redirection work we had to make validation changes that make
that flag irrelevant and even confusing.

The only downside of this behavior is that something like

rabbitmqctl add_user --silent "a-username"

(without a password or redirected stream, with suppressed output)
would "hang" waiting for stdin input. If --silent is omitted
there would be an input prompt, making it clearer what's going on.

Closes #365 with a different behavior from the originally suggested.
2019-07-10 19:08:19 -07:00
Michael Klishin b890fe787b Ditto for ctl change_password
Part of #365.
2019-07-11 00:21:11 +03:00
Michael Klishin 865af70a98 ctl add_user: make password optional, accept it via stdin
Part of #365.
2019-07-10 23:27:29 +03:00
Michael Klishin 358aec5840 ctl authenticate_user: make password optional, accept it via stdin
Part of #365.
2019-07-10 02:17:12 +03:00
Michael Klishin 43209567c2 Address an Elixir 1.9 warning 2019-07-10 00:54:05 +03:00
Eugene Pirogov aa35ebb34d Fix typo in description for "stop" command 2019-07-08 17:53:37 +03:00
Michael Klishin 816bfbc50b Cosmetics
(cherry picked from commit 5e1c0841d78c8644eaea3b22837df40fd2ea1a24)

Conflicts:
	lib/rabbitmq/cli/formatters/pretty_table.ex
2019-07-08 16:18:52 +03:00
Michael Klishin 5589496678 Squash a few more compiler warnings 2019-07-08 15:55:37 +03:00
Michael Klishin 955f77e902 diagnostics log_location: support JSON formatter 2019-07-06 18:07:01 +03:00
Michael Klishin 7de3958482 Await log update in this test 2019-07-06 17:57:54 +03:00
Michael Klishin e50489eba7 Display 50 lines by default; cosmetics 2019-07-06 13:47:39 +03:00
Michael Klishin 7375e8b576 Wording 2019-07-04 11:48:56 +02:00
Michael Klishin 715cfd6efe Merge branch 'master' into rabbitmq_cli_log_commands 2019-07-04 11:06:14 +02:00
Michael Klishin 641fae4a96 Revert "rabbitmq-queues add-member: increase default timeout to 15s"
This reverts commit 0a68e5944a.

More QQ operations have default timeout of 5s. This has to be addressed
in a more fundamental way (or not at all unless we have evidence of
false positives).
2019-07-03 23:28:28 +02:00
Michael Klishin 0a68e5944a rabbitmq-queues add-member: increase default timeout to 15s
We've tried 5s values before and always bumped
them later because of false positives.
2019-07-03 23:26:56 +02:00
Diana Corbacho bb4e40df86 Provide timeout to add_member command
[#166670827]
2019-07-03 13:07:57 +01:00
Daniil Fedotov 27cd558ac9 Log streaming duration limit. 2019-06-27 13:45:28 -04:00
Daniil Fedotov 0496b7643f Fix switches and help section for log commands 2019-06-27 13:45:10 -04:00
Daniil Fedotov 915ee1f1c3 Command to stream new log entries from a remote node.
This command asks the remote server to create a file reader process
and receives the file data, which is transformed to Elixir stream.
The command uses std_io_raw formatter to write received data as is.
2019-06-26 17:34:48 -04:00
Daniil Fedotov 25b441ae53 Make it possible to specify a custom printer for commands. Add std_io_raw printer.
Log streaming should print data as received without adding new lines.
To do that std_io_printer just writes all output to the std_io.
2019-06-26 17:34:35 -04:00
Daniil Fedotov ff0372200a Command to print last N log messages from the default log. 2019-06-26 15:56:22 -04:00
Daniil Fedotov 536621ed1f Command to get log file locations. 2019-06-26 13:26:29 -04:00
Michael Klishin 2549a9ffcf Wording 2019-06-13 15:43:19 +03:00
Diana Corbacho f9bf3154a9 Command to log schema information
Logs by default name, cookie, active_replicas and user_properties
Any other mnesia property can be requested as info key

[#164550205]
2019-06-13 13:08:29 +01:00
Michael Klishin ea8ec535f2 Merge pull request #356 from rabbitmq/rabbitmq-cli-302
Health check command for virtual hosts
2019-05-29 14:29:53 +01:00
Michael Klishin 37800cd83b Allow check_failed errors provide additional context
Primarily for for --formatter=json use cases.
2019-05-29 13:59:59 +01:00
Michael Klishin 79e535ce4f Diagnostics.CheckVirtualHosts should be Diagnostics.CheckVirtualHostsCommand
While at it, add JSON formatter handling to the
failed check case.
2019-05-29 13:58:16 +01:00
Michael Klishin cdd92f9da4 check_alarms: correct result value in case of an error 2019-05-29 13:19:08 +01:00
Diana Corbacho 6fd83eff93 Health check command for virtual hosts
[#163451547]
2019-05-28 23:44:59 +01:00
Michael Klishin 6bd6b8d2de Merge pull request #355 from rabbitmq/quorum-status
Switch to pretty table formatter
2019-05-23 16:38:19 +01:00
Daniil Fedotov 40194b7b8d Replace Keyword.keyword? with proplist? checks.
Keyword requires keys to be atoms, while data returned from rabbitmq
may have binary or string keys.
2019-05-23 15:48:02 +01:00
kjnilsson 4877111edc Switch to pretty table formatter 2019-05-23 14:55:55 +01:00
Jean-Sébastien Pédron eb994c07de Merge pull request #352 from rabbitmq/endian_insensitive
WIP Make rabbitmqctl work with any endianness.
2019-05-14 17:49:46 +02:00
Michael Klishin 9be30e3e51 Handle observer_cli return value when user quits (again) 2019-05-11 11:10:36 +03:00
Michael Klishin d15b59be43 Adapt to latest zhongwencool/observer_cli#54 API changes 2019-05-11 00:54:27 +03:00
Michael Klishin e840b5a6a4 Basic tests for Diagnostics.ObserverCommand 2019-05-11 00:22:29 +03:00
Michael Klishin 5e66ae5d5b Handle Observer CLI return value when user quits 2019-05-10 20:15:08 +03:00
Michael Klishin be1d187041 rabbitmq-diagnostics: introduce a CLI observer command
Per recommendation from @gerhard.
2019-05-10 18:35:22 +03:00
Daniil Fedotov 992e6810d2 Recompile all regexes.
Compiled regexes are endianness-specific. To run on any endianness
systems we need to recompile them in runtime.
2019-05-07 11:29:40 -04:00
Jean-Sébastien Pédron a84853ae61 formatters/pretty_table: Adjust comment, we don't use `rabbit_pretty_stdout` anymore 2019-04-30 14:32:03 +02:00
Jean-Sébastien Pédron d0e7d15dcf formatters/pretty_table: Switch to use stdout_formatter library
... instead of the `rabbit_pretty_stdout` module.
2019-04-29 18:32:37 +02:00
Arnaud Cogoluègnes c0c419385e Use string instead of list of chars in clause
[#165316789]

References #342
2019-04-29 15:29:53 +02:00
Michael Klishin af32abbcd9 Merge pull request #351 from rabbitmq/rabbitmq-cli-345
Improve error reporting for invalid node names
2019-04-26 16:38:08 +03:00
Michael Klishin 8e7a02ff81 Naming 2019-04-25 20:13:39 +03:00
Michael Klishin 4cb2d05c9c Improve error reporting of invalid node names
While at it, format errors thrown in a few more risky
code paths.

Closes #345.
2019-04-25 17:15:25 +03:00
Gerhard Lazu d556a1ecef Clarify which Erlang/OTP version is being printed when --offline
re #350
2019-04-25 14:58:20 +01:00
Michael Klishin 27a4c3c2ab Drive by change: squash a few compiler warnings 2019-04-25 16:52:25 +03:00
Daniil Fedotov 6b14b858b0 Change cipher_suites command description
cipher_suites returns default suites by default and needs a flag to return all
2019-04-25 09:49:42 -04:00
Michael Klishin ab5143e7df diagnostics erlang_version: support --offline
Closes #315.
2019-04-25 15:01:18 +03:00
Michael Klishin f754cb9c42 Cosmetics, wording 2019-04-25 14:42:20 +03:00
Michael Klishin a5b2b261a6 Merge branch 'master' into rabbitmq-cli-346 2019-04-25 14:28:22 +03:00
Diana Corbacho da22d12477 Include feature flag status in cluster status
rabbitmq-cli #346
2019-04-25 11:47:36 +01:00
Michael Klishin 50f4d42fac Wording 2019-04-25 04:17:06 +03:00
Daniil Fedotov a74f8b930e Replace multiple format flags with a single `--format` flag. 2019-04-24 17:22:54 -04:00
Daniil Fedotov b53a16681a Add more flags to cipher_suites command to return all available suites and more formats.
Support new map format for cipher suites added in OTP-20.3
Support --all flag to get all available ciphers

Addresses #342
Depends on changes in rabbitmq-server
2019-04-24 15:37:28 -04:00
Michael Klishin d926bc26b8 enable_feature_flag: handle cases where target node does not support the flag
or any flags.

[#163980302]
2019-04-20 02:44:22 +03:00
Michael Klishin 7efc4766d7 If target node does not support feature flag, consider that none are available
Per discussion with @dumbbell.

[#163980302]
2019-04-20 02:23:57 +03:00
Michael Klishin a1de733dae list_feature_flags: handle missing rabbit_ff_extra modules on target node
Part of #343.

[#163980302]
2019-04-20 02:20:23 +03:00
Michael Klishin 11774a3ff1 cluster_status: list RabbitMQ and Erlang versions
Per suggestion from @gerhard.
2019-04-19 05:17:12 +03:00
Michael Klishin 16b8ffc75d Extract Core.Version 2019-04-18 21:12:23 +04:00
Michael Klishin 5f79b2a446 Naming 2019-04-18 20:46:48 +04:00
Michael Klishin 7615b2067c Print stack trace if command execution fails and --print-stacktrace was passed
Per discussion with @dumbbell.
2019-04-18 19:14:02 +04:00
Michael Klishin 11f0b45732 cluster_status: rework output format, support JSON formatter
[#165435068]
2019-04-18 04:00:05 +04:00
Michael Klishin 31be98b8ce Extract Core.ANSI from status and help commands 2019-04-16 19:19:45 +04:00
Michael Klishin 977587a7e6 Remove a stray IO.inspect/1 2019-04-16 17:36:31 +04:00
Michael Klishin 7115676f1b status: support absolute watermark values
While at it, improve watermark formatting.
2019-04-16 17:33:14 +04:00
Michael Klishin 1ba8d7ca7d status: include RabbitMQ server information 2019-04-14 03:11:53 +04:00
Michael Klishin 3c16459e39 status: include node's data directory path 2019-04-14 03:02:16 +04:00
Michael Klishin 7c57a92586 status command: add --unit support for memory and disk space metrics 2019-04-14 01:55:40 +04:00
Michael Klishin 162ef63024 ctl status: add a section on totals
Per suggestion from @gerhard.
2019-04-13 01:14:31 +04:00
Michael Klishin f2c32cdf41 status: add config file, log file and basic plugin information 2019-04-13 00:36:03 +04:00
Michael Klishin 59ec009819 MacOS => macOS
It's the official spelling starting with Sierra.
2019-04-13 00:14:23 +04:00
Michael Klishin 45a83ed65a Naming 2019-04-12 14:01:56 +04:00
Michael Klishin bef351ff1b Format alarms as maps when formatter is JSON 2019-04-12 13:57:45 +04:00
Michael Klishin 2304ff5b0d status: remove leading new line 2019-04-12 04:03:33 +04:00
Michael Klishin e47a53c3c8 New status command: add file descriptors usage section 2019-04-12 03:56:56 +04:00
Michael Klishin 3fa31cacf2 New status command: add memory watermark and usage section 2019-04-12 03:45:46 +04:00
Michael Klishin 5aa19dbd08 Core.Memory.compute_relative_values/1: support map breakdowns 2019-04-12 03:44:52 +04:00
Michael Klishin 30148eab17 Move compute_relative_values/1 to Core.Memory 2019-04-12 03:22:37 +04:00
Michael Klishin 54436642cf status: free disk space and listener sections 2019-04-12 02:59:15 +04:00
Michael Klishin 58ad4f4574 Core.Listeners.listener_map/1: assume that map inputs are preformatted 2019-04-12 02:58:07 +04:00
Michael Klishin 9e7031d2b6 New status command output WIP 2019-04-11 22:11:00 +04:00
Michael Klishin 990e38a245 Extract Core.Memory from Core.Helpers
In preparation for #340.
2019-04-11 22:09:16 +04:00
Michael Klishin a6dd8c46dd Core.Alarms: support a simplified alarm format 2019-04-11 21:43:26 +04:00
Michael Klishin e4aecbaa5d status command: convert raw data to a machine-friendly map 2019-04-11 19:58:22 +04:00
Michael Klishin 24c53b3acf New ctl status output WIP 2019-04-11 15:31:50 +04:00
Michael Klishin b7932ab6d4 Extract Core.Alarms and Core.Listeners from Diagnostics.Helpers 2019-04-11 01:38:20 +03:00
Michael Klishin 9cb776c98e Squash a warning 2019-04-10 15:22:38 +03:00
Michael Klishin d2549de22e Extract several modules from RabbitMQ.CLI.Core.Helpers
In preparation to changing status command output for 3.8
2019-04-10 13:31:38 +03:00
Michael Klishin f49b77c205 ping command: rely on Core.AcceptsDefaultSwitchesAndTimeout 2019-04-09 17:28:42 +04:00
Michael Klishin 801df8cf46 ping: cosmetics, declare --timeout in switches 2019-04-09 16:43:58 +04:00
Michael Klishin 46712a2a70 Cosmetics 2019-04-09 16:43:38 +04:00
Michael Klishin d1863c71f7 DefaultOutput: handle error triplets 2019-04-09 16:43:31 +04:00
Michael Klishin 61b504ca8e ctl delete_queue: help message improvements 2019-04-09 14:40:15 +04:00
Michael Klishin ab3d694d99 ctl delete_queue: fix a typo in alias definition
While at it, correct usage docs to use --kebab-case
for switches.

Closes #339.
2019-04-09 14:37:51 +04:00
Michael Klishin 914524f16d DefaultOutput: correct normalize_output/2 for #336 2019-04-08 22:18:13 +04:00
Michael Klishin 03d2e921d9 Update assertions for #336 2019-04-08 21:33:45 +04:00
Michael Klishin 8eee5dca42 Merge branch 'master' into rabbitmq-cli-336 2019-04-08 19:04:25 +04:00
Michael Klishin 382c664f79 Clarify 2019-04-08 15:30:58 +04:00
Michael Klishin 5ab985d2e4 Explain, references rabbitmq/rabbitmq-server#1971 2019-04-08 15:08:01 +04:00
Michael Klishin e76e00aa06 ctl close_all_connections: don't fail when --vhost is missing in options 2019-04-08 15:07:46 +04:00
Michael Klishin a37cd534e0 Clarify that not every command supports every formatter 2019-04-05 14:28:58 +04:00
Michael Klishin 19880aac00 runtime_thread_stats: mention the new Runtime Tuning guide in help 2019-04-05 14:25:54 +04:00
Luke Bakken 6f4d9bf83d Ensure enumerable value is returned from RpcStream
Fixes #336
2019-04-04 17:56:05 -07:00
Michael Klishin 5685e4c7c9 rabbitmq-plugins formatter: don't print legend if --silent or --quiet is used 2019-04-01 14:56:40 +03:00
Michael Klishin d34b4b7ce0 Tweak argument names in rabbitmq-queues command help 2019-04-01 14:56:40 +03:00
Michael Klishin 11adbf446b A typo 2019-04-01 03:28:30 +03:00
Michael Klishin fe23f38635 Expand help information for more commands (part 4) 2019-04-01 03:26:17 +03:00
Michael Klishin 0d57806e0f Expand help information for more commands (part 3) 2019-04-01 03:00:01 +03:00
Michael Klishin 654ec133b2 Expand help information for more commands
This removes command-specific --formatter option from the docs
per discussion with the team. --formatter will be covered in the
general section only.
2019-03-31 01:33:36 +03:00
Michael Klishin 9f6eb5a13a Rename function 2019-03-31 00:38:52 +03:00
Michael Klishin 171376f9c9 Document arguments/options and relevant guides for more commands 2019-03-30 09:30:26 +03:00
Michael Klishin 6cf71362d1 Correctly format blank command description
Don't print a trailing dot and a new line break,
that is confusing and doesn't look great.
2019-03-26 21:06:42 +03:00
Michael Klishin 2510b0baea A typo
<3 <3 <3 dogs
2019-03-26 20:54:09 +03:00
Michael Klishin fd151e4696 join_cluster: minor doc updates 2019-03-26 17:20:37 +03:00
Michael Klishin a27289af95 Recommend doc guides in --help for more commands 2019-03-26 17:07:18 +03:00
Michael Klishin f2b80a4116 A way for commands to provide a list of relevant doc guides
in the help message.
2019-03-26 15:51:06 +03:00
Michael Klishin fe0bb70420 Compile 2019-03-26 14:20:17 +03:00
Michael Klishin 3dc526c528 usage_additional/0 can return a list of pairs 2019-03-26 14:14:00 +03:00
Michael Klishin 93dbbf342e Rework how command-specific options are displayed in help
Per recommendation from @dumbbell.
usage_addition/0 return format per discussion
with @dcorbacho, @hairyhum, @lukebakken.
2019-03-26 01:21:22 +03:00
Michael Klishin 187d6cd79a Cosmetics 2019-03-21 19:06:27 +03:00
Spring Operator 0a2541afd3 URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.

* http://blog.listincomprehension.com/search/label/procket (200) with 1 occurrences could not be migrated:
   ([https](https://blog.listincomprehension.com/search/label/procket) result ClosedChannelException).
* http://dozzie.jarowit.net/trac/wiki/TOML (200) with 1 occurrences could not be migrated:
   ([https](https://dozzie.jarowit.net/trac/wiki/TOML) result SSLHandshakeException).
* http://dozzie.jarowit.net/trac/wiki/subproc (200) with 1 occurrences could not be migrated:
   ([https](https://dozzie.jarowit.net/trac/wiki/subproc) result SSLHandshakeException).
* http://e2project.org (200) with 1 occurrences could not be migrated:
   ([https](https://e2project.org) result AnnotatedConnectException).
* http://erlang.org/doc/reference_manual/distributed.html (200) with 1 occurrences could not be migrated:
   ([https](https://erlang.org/doc/reference_manual/distributed.html) result ConnectTimeoutException).
* http://nitrogenproject.com/ (200) with 2 occurrences could not be migrated:
   ([https](https://nitrogenproject.com/) result ConnectTimeoutException).
* http://proper.softlab.ntua.gr (200) with 1 occurrences could not be migrated:
   ([https](https://proper.softlab.ntua.gr) result SSLHandshakeException).
* http://yaws.hyber.org (200) with 1 occurrences could not be migrated:
   ([https](https://yaws.hyber.org) result AnnotatedConnectException).
* http://choven.ca (503) with 1 occurrences could not be migrated:
   ([https](https://choven.ca) result ConnectTimeoutException).

# Fixed URLs

## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* http://fixprotocol.org/ (301) with 1 occurrences migrated to:
  https://fixtrading.org ([https](https://fixprotocol.org/) result SSLHandshakeException).
* http://erldb.org (UnknownHostException) with 1 occurrences migrated to:
  https://erldb.org ([https](https://erldb.org) result UnknownHostException).
* http://elixir-lang.org/docs/stable/elixir/OptionParser.html (301) with 1 occurrences migrated to:
  https://elixir-lang.org/docs/stable/elixir/OptionParser.html ([https](https://elixir-lang.org/docs/stable/elixir/OptionParser.html) result 404).
* http://elixir-lang.org/docs/stable/elixir/Stream.html (301) with 1 occurrences migrated to:
  https://elixir-lang.org/docs/stable/elixir/Stream.html ([https](https://elixir-lang.org/docs/stable/elixir/Stream.html) result 404).

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* http://cloudi.org/ with 27 occurrences migrated to:
  https://cloudi.org/ ([https](https://cloudi.org/) result 200).
* http://elixir-lang.org with 1 occurrences migrated to:
  https://elixir-lang.org ([https](https://elixir-lang.org) result 200).
* http://elixir-lang.org/ with 2 occurrences migrated to:
  https://elixir-lang.org/ ([https](https://elixir-lang.org/) result 200).
* http://elixir-lang.org/getting-started/typespecs-and-behaviours.html with 1 occurrences migrated to:
  https://elixir-lang.org/getting-started/typespecs-and-behaviours.html ([https](https://elixir-lang.org/getting-started/typespecs-and-behaviours.html) result 200).
* http://elixir-lang.org/install.html with 1 occurrences migrated to:
  https://elixir-lang.org/install.html ([https](https://elixir-lang.org/install.html) result 200).
* http://erlware.org/ with 1 occurrences migrated to:
  https://erlware.org/ ([https](https://erlware.org/) result 200).
* http://inaka.github.io/cowboy-trails/ with 1 occurrences migrated to:
  https://inaka.github.io/cowboy-trails/ ([https](https://inaka.github.io/cowboy-trails/) result 200).
* http://ninenines.eu with 6 occurrences migrated to:
  https://ninenines.eu ([https](https://ninenines.eu) result 200).
* http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html with 1 occurrences migrated to:
  https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html ([https](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) result 200).
* http://www.actordb.com/ with 2 occurrences migrated to:
  https://www.actordb.com/ ([https](https://www.actordb.com/) result 200).
* http://www.cs.kent.ac.uk/projects/wrangler/Home.html with 1 occurrences migrated to:
  https://www.cs.kent.ac.uk/projects/wrangler/Home.html ([https](https://www.cs.kent.ac.uk/projects/wrangler/Home.html) result 200).
* http://www.rebar3.org with 1 occurrences migrated to:
  https://www.rebar3.org ([https](https://www.rebar3.org) result 200).
* http://contributor-covenant.org with 1 occurrences migrated to:
  https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301).
* http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
  https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301).
* http://inaka.github.com/apns4erl with 1 occurrences migrated to:
  https://inaka.github.com/apns4erl ([https](https://inaka.github.com/apns4erl) result 301).
* http://inaka.github.com/edis/ with 1 occurrences migrated to:
  https://inaka.github.com/edis/ ([https](https://inaka.github.com/edis/) result 301).
* http://lasp-lang.org/ with 1 occurrences migrated to:
  https://lasp-lang.org/ ([https](https://lasp-lang.org/) result 301).
* http://rabbitmq.com/documentation.html with 1 occurrences migrated to:
  https://rabbitmq.com/documentation.html ([https](https://rabbitmq.com/documentation.html) result 301).
* http://saleyn.github.com/erlexec with 1 occurrences migrated to:
  https://saleyn.github.com/erlexec ([https](https://saleyn.github.com/erlexec) result 301).
* http://www.mozilla.org/MPL/ with 290 occurrences migrated to:
  https://www.mozilla.org/MPL/ ([https](https://www.mozilla.org/MPL/) result 301).
* http://zhongwencool.github.io/observer_cli with 1 occurrences migrated to:
  https://zhongwencool.github.io/observer_cli ([https](https://zhongwencool.github.io/observer_cli) result 301).
2019-03-20 03:13:07 -05:00
Michael Klishin 4c1b377330 Reduce generic options section per discussion in #333
The section on node names has been moved to https://www.rabbitmq.com/cli.html#node-names
(not yet live).
2019-03-19 22:23:42 +03:00
Michael Klishin c72b0928f7 Reduce general options section
* Only keep [--timeout <n>] but not a separate section for
   commands that support timeouts.
 * Replace a separate virtual host section with a general option.
   This option doesn't really need a detailed explanation.
 * Replace a separate --quiet/--silent section with a general option.
   This option doesn't really need a detailed explanation.

Per discussion with @gerhard and @acogoluegnes.
2019-03-18 14:36:22 +03:00
Michael Klishin 8c60489719 Replace [-p vhost] in help messages with [--vhost vhost] 2019-03-18 13:53:54 +03:00
Michael Klishin cb3fa1048e Rename <*infoitem> in help messages to <column>
Clearer, easier to read and uniform.
2019-03-18 13:47:46 +03:00
Michael Klishin 1e996b1128 Sort info items in command help
Per suggestion from @gerhard.
2019-03-18 13:42:06 +03:00
Michael Klishin 9bc4b148f1 Document more command-specific arguments and switches 2019-03-18 08:56:17 +03:00
Michael Klishin 7d2b5c4730 Document more command-specific arguments and switches 2019-03-18 07:47:46 +03:00
Michael Klishin f73bca4c1d Move printer module name resolution to PrinterBehaviour
To match FormatterBehaviour.
2019-03-18 07:47:45 +03:00
Michael Klishin ddf09a9cd8 Normalize formatter name
So that json, JSON, Json all work the same way.
This is because we will use "JSON" in command docs
so eventually a user will try that value verbatim.
2019-03-18 07:47:45 +03:00
Michael Klishin 1ce3cb00f6 delete_queue: document switches in --help 2019-03-18 07:47:45 +03:00
Michael Klishin 97960bde37 Cosmetics 2019-03-18 07:47:45 +03:00
Michael Klishin af2b343784 list_channels: @info_keys are meant to be atoms
Even though the implementation now supports
string values as well.
2019-03-18 07:47:44 +03:00
Michael Klishin b47ec93f97 Merge pull request #331 from rabbitmq/list-queue-type
Add queue type to list queues command
2019-03-18 05:53:07 +03:00
Michael Klishin 50f702d63b Global options: mention --formatter=pretty_table 2019-03-17 14:18:33 +03:00
Michael Klishin e1df5c0a87 ctl close_all_connections: additional usage docs 2019-03-17 14:13:13 +03:00
Michael Klishin d54f979ed8 Do not indent lines in usage_additional
We eliminated indentation in other sections
because it is too painful to get aligned
for command author.
2019-03-17 14:12:50 +03:00
Michael Klishin 2f5472e03f Cosmetics 2019-03-17 14:05:42 +03:00
Michael Klishin b5d39b2a2f Handle info keys that are strings
Some commands define them as atoms, others
as strings.
2019-03-17 14:01:04 +03:00
Michael Klishin bea9cf4486 Rework command-specific help
* Display command-specific options first instead of
  generic at the top
* Include one line command synopsis from --list-commands
  in the command-specific message
* List timeout in a separate section. It doesn't
  integrate very well with either command-specific
  or general section
* Format section headings as H2s in Markdown, this makes them stand out
* Assorted small formatting changes
* Update tests to be less fragile to copywriting changes
2019-03-17 13:54:18 +03:00
Michael Klishin c5b5df1282 Help command descriptions, cosmetics 2019-03-17 06:55:22 +03:00
Michael Klishin c48a1fae65 Correctly format management_agent and other multi-segment plugin names
Without this management_agent failed to be formatted
causing an ugly looking exception in --help.
2019-03-16 21:18:22 +03:00
Michael Klishin 10be5d4dec Cosmetics
Rearrange functions to follow a more common
command interface order.
2019-03-16 21:17:12 +03:00
Michael Klishin 30b6069293 restart_vhost belongs to the Virtual Hosts section 2019-03-16 21:16:33 +03:00
Diana Corbacho b56b69f9fa Add queue type to list queues command
[#163984879]
2019-03-15 17:07:11 +00:00
Michael Klishin 7f6ef260da ctl shutdown: consider @localhost nodes to be local
Without this -n has to be used when it previously wasn't required.

Follow-up to #328, references #327, #309.

Per discussion with @lukebakken.
2019-03-07 01:29:23 +03:00
Michael Klishin c339b6a10c ctl shutdown: infer hostnames from node names
inet_db is not a very reliable source as it doesn't take
node name CLI arguments and ERL_INETRC file settings.
That can lead to false positives in environments where
inet_db returns the same value (e.g. `localhost`) for
every cluster member.

Per discussion with @gerhard.

Closes #327.
References #309.
2019-03-06 20:19:52 +03:00
Michael Klishin e589a2b985 ctl forget_cluster_node: improve error formatting 2019-02-26 14:04:41 +03:00
Josh Soref 2dcfd4a34b spelling: parameterised 2019-02-24 02:02:34 -05:00
Josh Soref b81a6a6f04 spelling: enabled 2019-02-13 00:19:35 -05:00
Michael Klishin 34b3467b9f A typo 2019-02-21 21:02:52 +03:00
Michael Klishin ec31098516 Compile 2019-02-21 21:00:53 +03:00
Michael Klishin 74bb6239eb Correct a JSON output inconsistency spotted by @hairyhum 2019-02-21 21:00:36 +03:00
Michael Klishin 6a368e24dc New command group: replication 2019-02-21 20:45:49 +03:00
Michael Klishin 2b2e6e07c3 Merge branch 'master' into rabbitmq-queues-descriptions 2019-02-21 20:37:06 +03:00
Michael Klishin 8ac5f2ec7b Improve formatting of protocol plugin help sections 2019-02-21 19:53:45 +03:00
kjnilsson 50cb1a0329 Add descriptions to rabbitmq-queues commands 2019-02-21 16:44:08 +00:00
Michael Klishin 3f32c237dc Squash a couple of compiler warnings 2019-02-21 19:17:52 +03:00
Michael Klishin aceab7c592 Wording, typos 2019-02-21 19:14:50 +03:00
Michael Klishin ea6294be41 New command: `rabbitmqctl force_gc`
Developed as part of a live coding training session but can be
useful in practice, so let's keep it.

Per discussion with @hairyhum.
2019-02-21 19:11:30 +03:00
Michael Klishin 62b2fdf80c Combine virtual host management, limits, tracing into a single group 2019-02-21 17:54:16 +03:00
Michael Klishin 866ce75fe4 More/slightly improved command descriptions 2019-02-21 17:03:34 +03:00
Michael Klishin cbaf74d269 Help sections for rabbitmq-diagnostics commands 2019-02-21 16:35:41 +03:00
Michael Klishin 4932c339c7 Command groups: naming, rearranging 2019-02-21 15:52:51 +03:00
Michael Klishin 80993dc921 Merge branch 'master' into help-wip 2019-02-21 13:18:59 +03:00
Michael Klishin 5fd924099f Correct usage line 2019-02-21 00:47:36 +03:00
Michael Klishin ade7f479e1 Match on error tuples only here 2019-02-21 00:42:03 +03:00
Michael Klishin b4d2ab6fe0 Return a human-friendly validation error 2019-02-21 00:35:23 +03:00
Michael Klishin f3829006b3 Correct a copy-paste artifact 2019-02-21 00:31:29 +03:00
Michael Klishin 3896103e6b Cosmetics 2019-02-20 23:21:39 +03:00
kjnilsson a56f9cae61 rabbitmq-queues: add --errors-only to grow command
For consistency with shrink

[#162782801]
2019-02-20 17:28:26 +00:00
kjnilsson 67dfe2dfa8 add rabbitmq-queues grow command tests 2019-02-20 13:47:58 +00:00
kjnilsson d158b69cb8 grow command banner refinement 2019-02-20 13:31:15 +00:00
kjnilsson f21e9183e2 rename grow command 2019-02-20 13:31:15 +00:00
Michael Klishin 8147be5d60 Banner message: be more specific 2019-02-20 13:31:15 +00:00
Michael Klishin 748b3ed485 Handle errors returned by the rpc call 2019-02-20 13:31:15 +00:00
Michael Klishin 261dccf3bf Make `rabbitmq-queues` commands follow standard naming pattern 2019-02-20 13:30:00 +00:00
Michael Klishin 7baa1fddde Format, inline 2019-02-20 13:29:59 +00:00
Michael Klishin 41810ab9d8 Reuse RabbitMQ.CLI.Core.AcceptsOnePositionalArgument here 2019-02-20 13:29:59 +00:00
Michael Klishin ddf6841f2f New command: version, closes #314 2019-02-20 13:29:59 +00:00
kjnilsson d088a77570 Add command to grow quorum queues
Allows the operator to provide patterns to match the vhosts and queue
names to be grown and well as two strategies:

all: all matching queues are grown
even: only queues with an even number of members are grown

[#162782801]
2019-02-19 17:07:33 +00:00
kjnilsson b629ccbb61 rabbitmq-queues-shrink better formatting
[#162782789]
2019-02-18 15:53:14 +00:00
Daniil Fedotov 993d4a928a Support custom help sections. 2019-02-14 13:19:46 -05:00
Daniil Fedotov b157b6a7cf Do not use defcmd macro. 2019-02-14 13:16:49 -05:00
Daniil Fedotov 1b4aaac477 Formatting of the help message 2019-02-14 13:11:23 -05:00
Daniil Fedotov a56ee97d74 Make help sections and descriptions similar to man page. 2019-02-14 13:02:00 -05:00
kjnilsson 82fa8f2e1d Add rabbitmq-queues shrink command
That removes all quorum queue members for a given node.

[#162782789]
2019-02-14 17:04:55 +00:00
Daniil Fedotov 7edf3d87ca Use elixir internal distance function instead of a library for command similarity comparison.
Elixir provides String.jaro_distance function, which is similar to
the levenstain distance.
This allows us to remove a dependency.
2019-02-12 15:22:02 -05:00
Daniil Fedotov 9fdeaef417 Clarify that list_connections command ony applies to AMQP 0.9.1 2019-02-12 14:49:16 -05:00
Michael Klishin 9231b21305 Follow-up to #298: descriptions and aliases for TLS-enabled listeners 2019-02-12 14:14:54 +03:00
Daniil Fedotov a5c34042de Example of using defcmd to define constant command callbacks 2019-02-11 14:07:49 -05:00
Daniil Fedotov 680c8969ca Add more command descriptions 2019-02-11 14:07:34 -05:00
Daniil Fedotov 5fabaeddb4 Cleanup help command. Support plugin sections in command list. 2019-02-11 14:06:16 -05:00
Daniil Fedotov 8bae6cd929 Add behaviour helpers.
Instead of calling function_exported? every time to access behaviour
functions, call CommandBehaviour.function.

Isolate all function defaults in the CommandBehaviour module.

Add a macro to define constant command functions.
2019-02-11 14:03:19 -05:00
Daniil Fedotov a7d70f1448 More descriptions for commands 2019-02-11 09:35:12 -05:00
Jean-Sébastien Pédron b17a998ed1 list_feature_flags_command.ex: Add `doc_url` to the columns list
[#160169569]
2019-02-11 11:01:18 +01:00
Daniil Fedotov 3d13da5797 More command descriptions. 2019-02-08 15:57:10 -05:00
Daniil Fedotov d6789e60f2 A new way to display basic usage.
Do not show additional parameters info.
List commands as names and descriptions.
Group commands in sections.

New behaviour callbacks:
help_section/0 - atom name of a group to put command to. Default is :other
description/0 - single line description of the command. Printed in the commands list

Sections ans descriptions are WIP.
2019-02-08 15:33:17 -05:00
Michael Klishin b452733d73 Improve error message produced by `rabbitmqctl shutdown`
References #309.
2019-02-07 04:24:13 +03:00
Michael Klishin f526663e9a Cosmetics 2019-02-05 21:29:28 +03:00
Luke Bakken 95e5b78af6 Output a friendly error if a long node name is used but --longnames not specified 2019-02-05 08:56:04 -08:00
Luke Bakken 962e0cf7c7 Ensure longnames option is passed to normalise_node
Fixes #311
2019-02-05 07:27:34 -08:00
Arnaud Cogoluègnes 97c048cf37 Add active consumer fields if necessary
When calling node is 3.8 and one of the nodes is < 3.8, active and
activity status fields need to be set with default values.

[#163298456]
2019-02-05 15:06:51 +01:00
Jean-Sébastien Pédron aa93258f16 wait_command.ex: Fix function clause with validate/2
The function didn't have the success path, i.e. when one of `--pid` or a
pidfile is specified.
2019-02-04 12:07:53 +01:00
Michael Klishin 041a6c2bdf Reuse existing modules more, rearrange functions 2019-02-04 02:22:21 +03:00
Michael Klishin 56ac8d1cf7 shutdown: correctly wrap badrpc responses in validate/2 2019-02-03 22:00:11 +03:00
Michael Klishin 7ad9176435 Further improvements to the shutdown command
Add --[no-]wait (enabled by default) for those who would prefer
to use it to shut down remote nodes even though it wouldn't wait for
a verified node termination.

Propagate --timeout to calls.

References #309.
2019-02-03 20:40:01 +03:00
Michael Klishin 0786b13d4a Move the node locality to a validator 2019-02-03 18:37:28 +03:00
Michael Klishin 29d01a44fb Merge branch 'master' into shutdown_require_local_host 2019-02-03 18:15:17 +03:00
Michael Klishin da514824c9 No more "error, operation completed successfully" jokes necessary 2019-02-03 06:20:35 +03:00
Michael Klishin db72acf1a3 Squash a couple of warnings 2019-02-03 06:20:04 +03:00
Michael Klishin 2ad334c91f Refactor 2019-02-03 04:55:37 +03:00
Michael Klishin bf00712add Make all list_* commands available to rabbitmq-diagnostics 2019-02-03 04:32:37 +03:00