Skip to content
This repository has been archived by the owner on Nov 16, 2020. It is now read-only.

Commit

Permalink
Add cuttlefish schema tests and cuttlefish schema.
Browse files Browse the repository at this point in the history
Fixes #2
  • Loading branch information
lukebakken committed Jun 12, 2017
1 parent 9be16ba commit 5712dcc
Show file tree
Hide file tree
Showing 4 changed files with 138 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -14,6 +14,7 @@
/rebar.config
/rebar.lock
/test/ct.cover.spec
/test/config_schema_SUITE_data/schema/
/xrefr

/rabbitmq_peer_discovery_k8s.d
41 changes: 41 additions & 0 deletions priv/schema/rabbitmq_peer_discovery_k8s.schema
@@ -0,0 +1,41 @@
%% region

{mapping, "cluster_formation.k8s.region", "rabbit.cluster_formation.peer_discovery_k8s.k8s_region", [
{datatype, string}
]}.

{translation, "rabbit.cluster_formation.peer_discovery_k8s.k8s_region",
fun(Conf) ->
case cuttlefish:conf_get("cluster_formation.k8s.region", Conf, undefined) of
undefined -> cuttlefish:unset();
Value -> Value
end
end}.

%% host

{mapping, "cluster_formation.k8s.host", "rabbit.cluster_formation.peer_discovery_k8s.k8s_host", [
{datatype, string}
]}.

{translation, "rabbit.cluster_formation.peer_discovery_k8s.k8s_host",
fun(Conf) ->
case cuttlefish:conf_get("cluster_formation.k8s.host", Conf, undefined) of
undefined -> cuttlefish:unset();
Value -> Value
end
end}.

%% service_name

{mapping, "cluster_formation.k8s.service_name", "rabbit.cluster_formation.peer_discovery_k8s.k8s_service_name", [
{datatype, string}
]}.

{translation, "rabbit.cluster_formation.peer_discovery_k8s.k8s_service_name",
fun(Conf) ->
case cuttlefish:conf_get("cluster_formation.k8s.service_name", Conf, undefined) of
undefined -> cuttlefish:unset();
Value -> Value
end
end}.
64 changes: 64 additions & 0 deletions test/config_schema_SUITE.erl
@@ -0,0 +1,64 @@
%% The contents of this file are subject to the Mozilla Public License
%% Version 1.1 (the "License"); you may not use this file except in
%% compliance with the License. You may obtain a copy of the License at
%% http://www.mozilla.org/MPL/
%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
%% License for the specific language governing rights and limitations
%% under the License.
%%
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is GoPivotal, Inc.
%% Copyright (c) 2017 Pivotal Software, Inc. All rights reserved.
%%

-module(config_schema_SUITE).

-compile(export_all).

all() ->
[
run_snippets
].

%% -------------------------------------------------------------------
%% Testsuite setup/teardown.
%% -------------------------------------------------------------------

init_per_suite(Config) ->
rabbit_ct_helpers:log_environment(),
Config1 = rabbit_ct_helpers:run_setup_steps(Config),
rabbit_ct_config_schema:init_schemas(rabbitmq_peer_discovery_k8s, Config1).


end_per_suite(Config) ->
rabbit_ct_helpers:run_teardown_steps(Config).

init_per_testcase(Testcase, Config) ->
rabbit_ct_helpers:testcase_started(Config, Testcase),
Config1 = rabbit_ct_helpers:set_config(Config, [
{rmq_nodename_suffix, Testcase}
]),
rabbit_ct_helpers:run_steps(Config1,
rabbit_ct_broker_helpers:setup_steps() ++
rabbit_ct_client_helpers:setup_steps()).

end_per_testcase(Testcase, Config) ->
Config1 = rabbit_ct_helpers:run_steps(Config,
rabbit_ct_client_helpers:teardown_steps() ++
rabbit_ct_broker_helpers:teardown_steps()),
rabbit_ct_helpers:testcase_finished(Config1, Testcase).

%% -------------------------------------------------------------------
%% Testcases.
%% -------------------------------------------------------------------

run_snippets(Config) ->
ok = rabbit_ct_broker_helpers:rpc(Config, 0,
?MODULE, run_snippets1, [Config]).

run_snippets1(Config) ->
rabbit_ct_config_schema:run_snippets(Config).

32 changes: 32 additions & 0 deletions test/config_schema_SUITE_data/rabbitmq_peer_discovery_k8s.snippets
@@ -0,0 +1,32 @@
[
{k8s_region, "cluster_formation.k8s.region = us-west-1", [
{rabbit, [
{cluster_formation, [
{peer_discovery_k8s, [
{k8s_region, "us-west-1"}
]}
]}
]}
], [rabbitmq_peer_discovery_k8s]
},
{k8s_host, "cluster_formation.k8s.host = k8s.eng.megacorp.local", [
{rabbit, [
{cluster_formation, [
{peer_discovery_k8s, [
{k8s_host, "k8s.eng.megacorp.local"}
]}
]}
]}
], [rabbitmq_peer_discovery_k8s]
},
{k8s_service_name, "cluster_formation.k8s.service_name = kubernetes-service", [
{rabbit, [
{cluster_formation, [
{peer_discovery_k8s, [
{k8s_service_name, "kubernetes-service"}
]}
]}
]}
], [rabbitmq_peer_discovery_k8s]
}
].

0 comments on commit 5712dcc

Please sign in to comment.