Loïc Hoguin
f101e8a212
Use Erlang.mk's native Elixir support for CLI
...
This avoids using Mix while compiling which simplifies
a number of things and let us do further build improvements
later on.
Elixir is only enabled from within rabbitmq_cli currently.
Eunit is disabled since there are only Elixir tests.
Dialyzer will force-enable Elixir in order to process
Elixir-compiled beam files.
This commit also includes a few changes that are
related:
* The Erlang distribution will now be started for parallel-ct
* Many unnecessary PROJECT_MOD lines have been removed
* `eunit_formatters` has been removed, it provides little value
* The new `maybe_flock` Erlang.mk function is used where possible
* Build test deps when testing rabbitmq_cli (Mix won't do it anymore)
* rabbitmq_ct_helpers now use the early plugins to have Dialyzer
properly set up
(cherry picked from commit c5d150a7ef
)
2025-03-25 15:20:23 +00:00
Michael Klishin
968eefa1bb
Bump (c) line year
...
There are no functional changes to this massive diff.
2025-01-01 17:54:10 -05:00
Michael Klishin
1b642353ca
Update (c) according to [1]
...
1. https://investors.broadcom.com/news-releases/news-release-details/broadcom-and-vmware-intend-close-transaction-november-22-2023
2023-11-21 23:18:22 -05:00
Michal Kuratczyk
5459975c5c
Revert "Use rabbit_json in the CLI"
...
This reverts commit 6c65715875
.
2023-11-17 13:05:38 +01:00
Michal Kuratczyk
6c65715875
Use rabbit_json in the CLI
...
dep_json doesn't seem to be maintained
and it's unnecessary anyway, since we can
use rabbit_json, which uses thoas
2023-11-16 00:01:14 +01:00
Michael Klishin
84d6908c29
CLI: squash a Dialyzer warning
...
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2023-07-19 21:51:36 +04:00
Michael Klishin
449ab048e6
CLI: squash a Dialyzer warning
...
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2023-07-19 21:51:27 +04:00
Michael Klishin
bd3b44aab9
CLI: set OTP logger log level to 'error'
...
References #8912
2023-07-19 20:25:54 +04:00
Rin Kuryloski
42d29a5ca3
Run 'mix format' with elixir 1.15.2
2023-07-04 17:45:32 +02:00
Michael Klishin
bffc5d519c
Correct a couple of typos
2023-05-02 16:48:14 +04:00
Michael Klishin
c9221bd717
Improve rabbitmq-queues {add,delete}_member error messages
...
when target queue was not found.
2023-05-02 13:28:29 +04:00
Michael Klishin
d5f16d4ce6
mix format
2023-05-02 13:08:31 +04:00
Michael Klishin
e8cb0c4947
rabbitmq-queues add_member: improve error reporting
2023-05-02 12:14:48 +04:00
Michael Klishin
d4a2d48cea
rabbitmq-queues: validate cluster membership of the argument
...
Specifically of the node where new replicas should be
placed.
Closes #8007
2023-05-02 10:55:31 +04:00
Rin Kuryloski
0ac62a4a3b
Forward-port dialyzer related rabbitmq_cli fixes from #7122
2023-02-01 23:21:10 +01:00
Michael Klishin
2cf2133a44
Fix one more issue reported by CLI tools Dialyzer
...
(cherry picked from commit 5d8ba2f32a
)
2023-01-31 17:47:24 -05:00
Rin Kuryloski
bdb2046185
Add rabbitmq_cli dialyze to bazel ( #7066 )
...
* Add rabbitmq_cli dialyze to bazel
and fix a number of warnings
Because we stop mix from recompiling rabbit_common in bazel, many
unknown functions are reported, so this dialyzer analysis is somewhat
incomplete.
* Use erlang dialyzer for rabbitmq_cli rather than mix dialyzer
Since this resolves all of the rabbit functions, there are far fewer
unknown functions.
Requires yet to be released rules_erlang 3.9.2
* Temporarily use pre-release rules_erlang
So that checks can run on this PR without a release
* Fix additional dialyzer warnings in rabbitmq_cli
* rabbitmq_cli: mix format
* Additional fixes for ignored return values
* Revert "Temporarily use pre-release rules_erlang"
This reverts commit c16b5b6815
.
* Use rules_erlang 3.9.2
2023-01-31 15:05:52 +01:00
Michael Klishin
ec4f1dba7d
(c) year bump: 2022 => 2023
2023-01-01 23:17:36 -05:00
Ayanda Dube
4cbbaad2df
mix format rabbitmq_cli
2022-10-02 18:54:11 +01:00
Michael Klishin
c38a3d697d
Bump (c) year
2022-03-21 01:21:56 +04:00
Michael Klishin
17526987c6
Bump (c) year
2021-02-14 00:54:01 +03:00
Michael Klishin
15ea3d3de0
Avoid double spacing between command lines
...
when no arguments are provided. This makes the output
consistent with that of `help' and `--help'.
2020-08-05 19:36:32 +03:00
dcorbacho
679ca254f3
Switch to Mozilla Public License 2.0 (MPL 2.0)
2020-07-11 19:23:07 +01: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
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
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
Jean-Sébastien Pédron
0e15591bf5
Update copyright (year 2020)
2020-03-10 15:39:56 +01: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
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
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
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
5589496678
Squash a few more compiler warnings
2019-07-08 15:55:37 +03: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
b42c7a62d5
Improve error stacktrace reporting.
2019-06-26 12:49:35 -04: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
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
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
d54408b768
Restore Elixir 1.6.6 compatibility
...
That's the version used when producing Debian
packages. Why? Because bintrary.com/rabbitmq-erlang
only provides that version :/
2019-04-19 06:23:28 +03:00
Michael Klishin
e87e83cc93
Don't print stack trace if no option is provided explicitly
2019-04-19 04:43:58 +03:00
Michael Klishin
361d0e05d9
Squash a warning
2019-04-19 02:26:03 +03: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
6219ba07b0
Remove a stray stack trace dump
...
Got accidentally committed in 8bae6cd929
.
2019-03-21 19:06:26 +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
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
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