Add rabbitmq_federation to bazel
This commit is contained in:
parent
ad7c0ef502
commit
078c897d2a
|
@ -13,6 +13,7 @@ exports_files([
|
|||
"scripts/rabbitmq-defaults",
|
||||
"scripts/rabbitmq-env",
|
||||
"scripts/rabbitmq-plugins",
|
||||
"scripts/rabbitmq-queues",
|
||||
"scripts/rabbitmq-server",
|
||||
"scripts/rabbitmqctl",
|
||||
])
|
||||
|
|
|
@ -1,24 +1,262 @@
|
|||
load("//:rabbitmq.bzl", "APP_VERSION", "RABBITMQ_ERLC_OPTS", "rabbitmq_lib")
|
||||
load(
|
||||
"@bazel-erlang//:bazel_erlang_lib.bzl",
|
||||
"DEFAULT_TEST_ERLC_OPTS",
|
||||
"erlang_lib",
|
||||
"erlc",
|
||||
"test_erlang_lib",
|
||||
)
|
||||
load("@bazel-erlang//:ct.bzl", "ct_suite")
|
||||
load("//:rabbitmq_home.bzl", "rabbitmq_home")
|
||||
load("//:rabbitmq_run.bzl", "rabbitmq_run")
|
||||
load(
|
||||
"//:rabbitmq.bzl",
|
||||
"APP_VERSION",
|
||||
"RABBITMQ_ERLC_OPTS",
|
||||
"RABBITMQ_TEST_ERLC_OPTS",
|
||||
)
|
||||
|
||||
APP_NAME = "rabbitmq_federation"
|
||||
|
||||
APP_DESCRIPTION = "RabbitMQ Federation"
|
||||
|
||||
APP_MODULE = "rabbit_federation_app"
|
||||
|
||||
APP_ENV = """[
|
||||
{pgroup_name_cluster_id, false},
|
||||
{internal_exchange_check_interval, 90000}
|
||||
]"""
|
||||
|
||||
DEPS = [
|
||||
"//deps/rabbit_common:bazel_erlang_lib",
|
||||
"//deps/rabbit:bazel_erlang_lib",
|
||||
"//deps/amqp_client:bazel_erlang_lib",
|
||||
BUILD_DEPS = [
|
||||
"//deps/rabbitmq_cli:rabbitmqctl",
|
||||
]
|
||||
|
||||
rabbitmq_lib(
|
||||
app_description = "RabbitMQ Federation",
|
||||
DEPS = [
|
||||
"//deps/amqp_client:bazel_erlang_lib",
|
||||
"//deps/rabbit_common:bazel_erlang_lib",
|
||||
"//deps/rabbit:bazel_erlang_lib",
|
||||
]
|
||||
|
||||
erlang_lib(
|
||||
app_description = APP_DESCRIPTION,
|
||||
app_env = APP_ENV,
|
||||
app_module = "rabbit_federation_app",
|
||||
app_name = "rabbitmq_federation",
|
||||
app_module = APP_MODULE,
|
||||
app_name = APP_NAME,
|
||||
app_version = APP_VERSION,
|
||||
build_deps = [
|
||||
"//deps/rabbitmq_cli:rabbitmqctl",
|
||||
],
|
||||
build_deps = BUILD_DEPS,
|
||||
erlc_opts = RABBITMQ_ERLC_OPTS,
|
||||
deps = DEPS,
|
||||
)
|
||||
|
||||
test_erlang_lib(
|
||||
app_description = APP_DESCRIPTION,
|
||||
app_env = APP_ENV,
|
||||
app_module = APP_MODULE,
|
||||
app_name = APP_NAME,
|
||||
app_version = APP_VERSION,
|
||||
build_deps = BUILD_DEPS,
|
||||
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
|
||||
deps = DEPS,
|
||||
)
|
||||
|
||||
rabbitmq_home(
|
||||
name = "broker-for-tests-home",
|
||||
plugins = [
|
||||
"//deps/rabbit:bazel_erlang_lib",
|
||||
":bazel_erlang_lib",
|
||||
],
|
||||
)
|
||||
|
||||
rabbitmq_run(
|
||||
name = "rabbitmq-for-tests-run",
|
||||
home = ":broker-for-tests-home",
|
||||
)
|
||||
|
||||
erlc(
|
||||
name = "rabbit_federation_test_util",
|
||||
testonly = True,
|
||||
srcs = [
|
||||
"test/rabbit_federation_test_util.erl",
|
||||
],
|
||||
hdrs = glob([
|
||||
"include/**/*.hrl",
|
||||
"src/**/*.hrl",
|
||||
]),
|
||||
dest = "test",
|
||||
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
|
||||
deps = [
|
||||
":test_bazel_erlang_lib",
|
||||
"//deps/amqp_client:bazel_erlang_lib",
|
||||
"//deps/rabbit_common:bazel_erlang_lib",
|
||||
],
|
||||
)
|
||||
|
||||
ct_suite(
|
||||
name = "exchange_SUITE",
|
||||
additional_beam = [
|
||||
":rabbit_federation_test_util",
|
||||
],
|
||||
data = [
|
||||
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
|
||||
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
|
||||
],
|
||||
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
|
||||
groups = [
|
||||
"without_automatic_setup",
|
||||
"channel_use_mode_single",
|
||||
"without_disambiguate",
|
||||
"with_disambiguate",
|
||||
],
|
||||
test_env = {
|
||||
"SKIP_MAKE_TEST_DIST": "true",
|
||||
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
|
||||
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/rabbitmq-for-tests-run",
|
||||
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/broker-for-tests-home/sbin/rabbitmqctl",
|
||||
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/broker-for-tests-home/sbin/rabbitmq-plugins",
|
||||
"RABBITMQ_QUEUES": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/broker-for-tests-home/sbin/rabbitmq-queues",
|
||||
},
|
||||
tools = [
|
||||
":rabbitmq-for-tests-run",
|
||||
],
|
||||
runtime_deps = [
|
||||
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
|
||||
"//deps/rabbitmq_cli:rabbitmqctl",
|
||||
"@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
|
||||
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
|
||||
],
|
||||
deps = [
|
||||
"//deps/amqp_client:bazel_erlang_lib",
|
||||
"//deps/rabbit_common:bazel_erlang_lib",
|
||||
],
|
||||
)
|
||||
|
||||
ct_suite(
|
||||
name = "federation_status_command_SUITE",
|
||||
additional_beam = [
|
||||
":rabbit_federation_test_util",
|
||||
],
|
||||
data = [
|
||||
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
|
||||
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
|
||||
],
|
||||
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
|
||||
test_env = {
|
||||
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
|
||||
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/rabbitmq-for-tests-run",
|
||||
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/broker-for-tests-home/sbin/rabbitmqctl",
|
||||
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/broker-for-tests-home/sbin/rabbitmq-plugins",
|
||||
},
|
||||
tools = [
|
||||
":rabbitmq-for-tests-run",
|
||||
],
|
||||
runtime_deps = [
|
||||
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
|
||||
"//deps/rabbitmq_cli:rabbitmqctl",
|
||||
"@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
|
||||
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
|
||||
],
|
||||
deps = [
|
||||
"//deps/amqp_client:bazel_erlang_lib",
|
||||
"//deps/rabbit_common:bazel_erlang_lib",
|
||||
],
|
||||
)
|
||||
|
||||
ct_suite(
|
||||
name = "queue_SUITE",
|
||||
additional_beam = [
|
||||
":rabbit_federation_test_util",
|
||||
],
|
||||
data = [
|
||||
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
|
||||
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
|
||||
],
|
||||
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
|
||||
test_env = {
|
||||
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
|
||||
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/rabbitmq-for-tests-run",
|
||||
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/broker-for-tests-home/sbin/rabbitmqctl",
|
||||
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/broker-for-tests-home/sbin/rabbitmq-plugins",
|
||||
},
|
||||
tools = [
|
||||
":rabbitmq-for-tests-run",
|
||||
],
|
||||
runtime_deps = [
|
||||
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
|
||||
"//deps/rabbitmq_cli:rabbitmqctl",
|
||||
"@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
|
||||
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
|
||||
],
|
||||
deps = [
|
||||
"//deps/amqp_client:bazel_erlang_lib",
|
||||
"//deps/rabbit_common:bazel_erlang_lib",
|
||||
],
|
||||
)
|
||||
|
||||
ct_suite(
|
||||
name = "restart_federation_link_command_SUITE",
|
||||
additional_beam = [
|
||||
":rabbit_federation_test_util",
|
||||
],
|
||||
data = [
|
||||
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
|
||||
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
|
||||
],
|
||||
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
|
||||
test_env = {
|
||||
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
|
||||
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/rabbitmq-for-tests-run",
|
||||
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/broker-for-tests-home/sbin/rabbitmqctl",
|
||||
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/broker-for-tests-home/sbin/rabbitmq-plugins",
|
||||
},
|
||||
tools = [
|
||||
":rabbitmq-for-tests-run",
|
||||
],
|
||||
runtime_deps = [
|
||||
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
|
||||
"//deps/rabbitmq_cli:rabbitmqctl",
|
||||
"@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
|
||||
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
|
||||
],
|
||||
deps = [
|
||||
"//deps/amqp_client:bazel_erlang_lib",
|
||||
"//deps/rabbit_common:bazel_erlang_lib",
|
||||
],
|
||||
)
|
||||
|
||||
ct_suite(
|
||||
name = "unit_inbroker_SUITE",
|
||||
data = [
|
||||
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
|
||||
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
|
||||
],
|
||||
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
|
||||
test_env = {
|
||||
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
|
||||
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/rabbitmq-for-tests-run",
|
||||
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/broker-for-tests-home/sbin/rabbitmqctl",
|
||||
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_federation/broker-for-tests-home/sbin/rabbitmq-plugins",
|
||||
},
|
||||
tools = [
|
||||
":rabbitmq-for-tests-run",
|
||||
],
|
||||
runtime_deps = [
|
||||
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
|
||||
"//deps/rabbitmq_cli:rabbitmqctl",
|
||||
"@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
|
||||
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
|
||||
],
|
||||
deps = [
|
||||
"//deps/rabbit_common:bazel_erlang_lib",
|
||||
],
|
||||
)
|
||||
|
||||
ct_suite(
|
||||
name = "unit_SUITE",
|
||||
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
|
||||
test_env = {
|
||||
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
|
||||
},
|
||||
deps = [
|
||||
"//deps/amqp_client:bazel_erlang_lib",
|
||||
"//deps/rabbit_common:bazel_erlang_lib",
|
||||
],
|
||||
)
|
||||
|
|
|
@ -1308,7 +1308,7 @@ await_binding(Config, Node, Vhost, X, Key, ExpectedBindingCount) when is_integer
|
|||
await_binding(Config, Node, Vhost, X, Key, ExpectedBindingCount, Attempts).
|
||||
|
||||
await_binding(_Config, _Node, _Vhost, _X, _Key, ExpectedBindingCount, 0) ->
|
||||
{error, rabbit_misc:format("expected ~s bindings but they did not materialize in time", [ExpectedBindingCount])};
|
||||
{error, rabbit_misc:format("expected ~b bindings but they did not materialize in time", [ExpectedBindingCount])};
|
||||
await_binding(Config, Node, Vhost, X, Key, ExpectedBindingCount, AttemptsLeft) when is_integer(ExpectedBindingCount) ->
|
||||
case bound_keys_from(Config, Node, Vhost, X, Key) of
|
||||
Bs when length(Bs) < ExpectedBindingCount ->
|
||||
|
|
|
@ -101,7 +101,15 @@ def _impl(ctx):
|
|||
|
||||
scripts = [_copy_script(ctx, script) for script in ctx.files._scripts]
|
||||
|
||||
escripts = [_link_escript(ctx, escript) for escript in ["rabbitmq-plugins", "rabbitmqctl"]]
|
||||
rabbitmq_ctl_copies = [
|
||||
"rabbitmq-diagnostics",
|
||||
"rabbitmq-plugins",
|
||||
"rabbitmq-queues",
|
||||
"rabbitmq-streams",
|
||||
"rabbitmq-upgrade",
|
||||
"rabbitmqctl",
|
||||
]
|
||||
escripts = [_link_escript(ctx, escript) for escript in rabbitmq_ctl_copies]
|
||||
|
||||
plugins = _flatten([_plugins_dir_links(ctx, plugin) for plugin in plugins])
|
||||
|
||||
|
@ -125,6 +133,7 @@ rabbitmq_home = rule(
|
|||
"//deps/rabbit:scripts/rabbitmq-defaults",
|
||||
"//deps/rabbit:scripts/rabbitmq-env",
|
||||
"//deps/rabbit:scripts/rabbitmq-plugins",
|
||||
"//deps/rabbit:scripts/rabbitmq-queues",
|
||||
"//deps/rabbit:scripts/rabbitmq-server",
|
||||
"//deps/rabbit:scripts/rabbitmqctl",
|
||||
],
|
||||
|
|
Loading…
Reference in New Issue