Commit Graph

1817 Commits

Author SHA1 Message Date
Michael Klishin ca815978dd Drop a low importance test that only fails in one environment 2020-06-26 06:35:55 +03:00
Michael Klishin 37c9a5cb75 An attempt to fix a test failing only on Concourse 2020-06-26 06:26:25 +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 82d62726b5 Bump listed version requirements
Technically we support Elixir 1.9 but let's recommend
the latest and greatest.
2020-06-26 01:31:58 +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
Jean-Sébastien Pédron bda56ef30f Update erlang.mk 2020-06-23 17:13:36 +02: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
Jean-Sébastien Pédron e170057456 GitHub Actions: Only dispatch from the master branch
The reason is that currently, the repository dispatch event only
triggers the workflow of the target repository's default branch (i.e.
master in our case).

This is ok for now, but this prevents us from using GitHub Actions with
release branches unfortunately.
2020-06-09 16:47:50 +02:00
Michael Klishin 696ccb18b4 Bump Recon to 2.5.1
for Erlang 23 compatibility of 'rabbitmq-diagnostics observer'

References zhongwencool/observer_cli#68.
2020-06-09 08:22:16 +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 bda0cbfdc3 Update test expectation
References #425, rabbitmq/rabbitmq-server#2363
2020-06-08 05:03:55 +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 92bb8dee18 Cosmetics 2020-06-04 04:42:49 +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
Michael Klishin bc95259d29 Adapt one more test 2020-05-21 08:13:46 +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 56da1bb71e Update test assertion expectations 2020-05-19 06:59:03 +03: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 0ff2e3fb77 Explain 2020-05-16 19:12:31 +03:00
Michael Klishin a2ec22023f Handle variable case in this test 2020-05-16 00:39:07 +03:00
Michael Klishin 0537a9ca36 Don't depend on a single env variable in this test 2020-05-16 00:36:33 +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
Gerhard Lazu f787f96155 Dispatch webhook to rabbit/rabbitmq-server via workflow
Fail unsuccessful HTTP requests, go silent

This will be used to trigger rabbitmq-server tests, because there is a
new commit in a rabbitmq-cli release branch.

cc @dumbbell

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-05-01 12:50:31 +01: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
Gerhard Lazu 383c3cf478 Do not run tests in parallel, default MAX_CASES to 1
@michaelklishin:
> Some test cases cannot be run in parallel since they rely on target
> node state as a shared resource.

If/when we want to improve this:

@michaelklishin:
> What we can do is make this configurable. Some tests can run in
> parallel, e.g. all rabbitmq-diagnostics tests that do not trigger/report
> alarms. But this only would be useful for interactive runs or if we
> split all tests into groups and allow parallel runs for some groups.

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-04-22 15:51:48 +02:00
Gerhard Lazu cc4861d768 Default mix text cases to number of CPUs
This changes the mix test default which is 2 x number of CPUs.

We only append --trace if VERBOSE_TEST is true (enabled by default) and
don't change the number of max-cases. I'm not sure why we coupled the
number of max cases to verbose testing, they don't seem related to me.
Since @dfedotov is no longer with us, I can't ask him, so just making
the change which feels right.

This is in response to GitHub Actions failing consistently with:

    == Compilation error in file test/ctl/list_connections_command_test.exs ==
    ** (exit) exited in: :gen_server.call(#PID<32153.2990.0>, {:read_cache, -576460752303386991}, :infinity)
        ** (EXIT) no connection to rabbit_ctl_36@fv-az56
    ##[error]    (stdlib 3.8) gen_server.erl:223: :gen_server.call/3
    ##[error]    (stdlib 3.8) erl_eval.erl:680: :erl_eval.do_apply/6
    ##[error]    (stdlib 3.8) erl_eval.erl:888: :erl_eval.expr_list/6
    ##[error]    (stdlib 3.8) erl_eval.erl:411: :erl_eval.expr/5
    ##[error]    (elixir 1.10.2) lib/kernel/parallel_compiler.ex:396: Kernel.ParallelCompiler.require_file/2
    ##[error]    (elixir 1.10.2) lib/kernel/parallel_compiler.ex:306: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/7
    ##[error]Makefile:114: recipe for target 'tests' failed

Our assumption is that limiting the number of test parallelism will make
these failures go away.

cc @michaelklishin @dumbbell

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-04-22 15:51:45 +02: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 d54876be57 Drive by change: correct a typo 2020-04-22 01:23:50 +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
Jean-Sébastien Pédron 7df1d4312b Update erlang.mk 2020-04-21 16:18:05 +02: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
Michael Klishin b6d1de740c Output a more realistic example in this message 2020-03-25 00:22:24 +03:00
Michael Klishin a3d60d35c5 Be less generous in empty whitespace use in setup_all functions 2020-03-24 19:08:00 +03:00
Michael Klishin 2536d15e0d Update CONTRIBUTING.md 2020-03-24 18:35:44 +03:00
Michael Klishin 58b404650a WaitCommandTest: make sure distribution is started before used 2020-03-24 17:49:42 +03:00
Michael Klishin 2f5a182a68 TestHelper.await_rabbitmq_startup/0: introduce retries 2020-03-24 17:49:22 +03:00
Jean-Sébastien Pédron 0e15591bf5 Update copyright (year 2020) 2020-03-10 15:39:56 +01:00
Gerhard Lazu deae237704 Update rabbitmq-components.mk 2020-03-06 09:19:14 +00:00
Gerhard Lazu 1b7b1bf12d Update erlang.mk 2020-03-06 09:17:27 +00:00
Jean-Sébastien Pédron d02ae015b6 Travis CI: Add configuration
Compared to the regular configuration we use, it modifies it heavily to:
* start a background RabbitMQ node with the federation and STOMP plugins
  enabled
* run the specific test target of the CLI
* test against the oldest and latest versions of Elixir
2020-03-06 08:22:31 +01:00
Jean-Sébastien Pédron 4e6e87b9fc Update mock_rabbitmq_plugin_for_3_8 to support RabbitMQ 3.9.x 2020-03-06 08:19:31 +01:00
Jean-Sébastien Pédron e3c64718ef mix.exs: Bump Elixir requirement from 1.7 to 1.8
We started to use `File.exists?/2` which was added to 1.8.0.
2020-03-06 08:19:31 +01:00
Jean-Sébastien Pédron 32625b19be mix.exs: Bump `csv` to version 2.3.x
This fixes several compilation warnings and looks like to fix the CLI
with the upcoming Erlang 23.0.
2020-03-05 16:20:54 +01:00
Jean-Sébastien Pédron 16391c4625 Makefile: Move $ERLANG_MK_* variables before `-include erlang.mk`
Otherwise, they are ineffective.
2020-03-03 18:28:12 +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
Gerhard Lazu 2d54b2ea64 Update rabbitmq-components.mk 2020-02-11 15:31:42 +00:00
Hanjun Kim 2574d4d610 fix typo 2020-02-05 20:11:49 +09:00
Michael Klishin 69c6bc7f22 Bump upper supported Elixir version bound to 1.10 2020-01-28 21:04:14 +03: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
Jean-Sébastien Pédron cccf81d0ff test/fixtures: Fix mock plugins' dependencies
They should depend on `rabbit`, not on `rabbit_common`.

This will be even required #rabbitmq/rabbitmq-server#2212 is accepted.
2020-01-16 14:39:47 +01: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 b5c47be4e6 Tests for the CLI part of rabbitmq-queues check_if_node_is_quorum_critical
Key tests for the target function are in the server repo.
2019-12-12 17:11:52 +03:00
Michael Klishin c49eb2fafc A typo 2019-12-12 16:55:59 +03: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 33d436266e Update rabbitmq-components.mk 2019-12-12 13:14:52 +01: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
Michael Klishin 01e950fd18 Make tests that mess with node or quorum state sequential
As most tests already are. It's highly unlikely that these
were meant to execute in parallel by design.
2019-12-11 14:51:10 +01:00
Michael Klishin 8b7c83bf6e Rename a test file 2019-12-11 04:56:04 +03:00
Jean-Sébastien Pédron 332c893dee mix.exs: Explicitly list `goldrush` and `lager` as dependencies
They are not dependencies of the CLI, but dependencies of rabbit_common.
Unfortunately, mix(1) doesn't embed them in the final escripts. In fact,
it doesn't embed any dependencies of rabbit_common, but the CLI probably
doesn't call the code which would trigger a crash.
2019-12-05 15:20:04 +01:00
Jean-Sébastien Pédron 03caf7392f Makefile: Don't remove/recreate files if source and target are equal
... when installing the escripts.
2019-12-05 15:20:04 +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
Michael Klishin 99e9b0b2b6 Simplify these assertions a bit 2019-10-08 09:41:31 -05:00
Michael Klishin 7b1bf6c734 Squash a warning 2019-10-08 09:41:17 -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
Jean-Sébastien Pédron 0cb95e7b55 log_tail_stream_command_test: Bump stream duration to 15 seconds
... from 5 seconds. Hopefully this will increase the chance of seeing
the messages logged by the testcase.
2019-09-24 11:48: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 99f1790ac3 Update test expectations 2019-09-24 01:52:31 +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
Luke Bakken 0ad420d293 Merge pull request #377 from Whitespirit0/patch-1
Fix set_parameter command output
2019-09-20 08:57:04 -07:00
Luke Bakken 526ddfed9c Restore rabbitmq-cli specific test directions 2019-09-20 08:41:29 -07:00
dcorbacho 9d7a873c97 Consume events stream command
[#168224266]
2019-09-20 13:52:51 +01:00
Whitespirit0 ea2ace438c Update set_parameter test to match new output 2019-09-20 11:41:33 +02: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
Karl Nilsson 2b430c0763 Merge pull request #373 from rabbitmq/rebalance-quorum-queue
Rebalance quorum queues command
2019-09-13 15:55:51 +01:00
kjnilsson 6534b029ec Update rabbitmq-components.mk 2019-09-13 10:24:16 +01:00
Diana Corbacho 5ebbd46989 Rebalance command
[#166551605]
2019-09-12 11:21:33 +01:00
kjnilsson 139975667b Update rabbitmq-components.mk 2019-09-04 10:30:54 +01:00
Jean-Sébastien Pédron ed9de9d591 rabbitmqctl.ex: Don't call System.stacktrace()
... now we depend on Elixir 1.7+. We can use the new syntax or, in this
case, simply call `Exception.format_stacktrace()` without any argument:
it will take care of querying the stacktrace.

This fixes a warning reported by elixirc.
2019-09-03 15:19:56 +02:00
Michael Klishin 32030ed581 Merge pull request #371 from rabbitmq/vhost-description
Use new 'description' and 'tag' items on list vhosts
2019-08-30 13:09:02 +03:00
Jean-Sébastien Pédron a716fb4bfe Update erlang.mk 2019-08-29 20:44:56 +02: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 74b271ae4d Merge branch 'master' into vhost-description 2019-08-27 16:28:29 +03:00
Luke Bakken 317610499b Add GitHub issue templates 2019-08-26 18:59:50 -07: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
Michael Klishin 5b1086156e diagnostics log_tail_stream: remove a fragile test
It makes a lot of assumptions about Lager's log flush
timing and can be tripped by the peak rate protection
mechanism. This test module has a high rate of false
positives on Concourse.

There is another test that asserts over a "folded" stream, so
code coverage is kept about the same.
2019-08-11 13:20:19 +10:00
Michael Klishin f4be415e3b Update rabbitmq-components.mk 2019-08-11 01:47:50 +10:00
Jean-Sébastien Pédron 082f4e9189 Update erlang.mk 2019-08-02 09:53:39 +02:00
Michael Klishin 890b7c689d Update rabbitmq-components.mk 2019-08-01 17:13:11 +03: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
Michael Klishin d84340959b Make sure the app is started in these tests 2019-07-18 18:50:43 +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
Arnaud Cogoluègnes 39baf2d80a Update rabbitmq-components.mk 2019-07-09 16:05:52 +02: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 82f413c926 Require Elixir 1.7
We'd go to 1.8 if some CI environments did not use
OTP 19.3 which requires OTP 20.
2019-07-08 15:39:45 +03:00
Michael Klishin b8acce6a85 Squash a compile warning
(cherry picked from commit 2a8fd5c1b2eae73f936991b17dfaa6fbd0fdbf85)
2019-07-08 03:23:55 +03:00
Michael Klishin 462b480f16 Same as d3c01b3a1f1a65d1d935c3e6e0441388da44ba57 in more places
(cherry picked from commit 68c8d204c08eb9956925e0fb71608a0737f3e771)
2019-07-06 20:31:43 +03:00
Michael Klishin 535f00e08f Let Lager's log message rate lapse before logging in these tests
Otherwise some log messages we assert on might be dropped.

(cherry picked from commit d3c01b3a1f1a65d1d935c3e6e0441388da44ba57)
2019-07-06 18:47:11 +03:00
Michael Klishin 1f07517c96 Wording 2019-07-06 18:08:05 +03:00
Michael Klishin 4f179948ad Cosmetics 2019-07-06 18:07:28 +03:00
Michael Klishin 955f77e902 diagnostics log_location: support JSON formatter 2019-07-06 18:07:01 +03:00
Michael Klishin fe1e95a28c Wording 2019-07-06 17:59:49 +03:00
Michael Klishin 7de3958482 Await log update in this test 2019-07-06 17:57:54 +03:00
Michael Klishin ff051eec63 Test expectation update 2019-07-06 17:39:49 +03:00
Michael Klishin e50489eba7 Display 50 lines by default; cosmetics 2019-07-06 13:47:39 +03:00
Michael Klishin 435670c083 Update test expectations 2019-07-04 18:57:40 +02: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