Skip to content

Commit 6171e56

Browse files
authored
Merge pull request #2929 from esl/toml-config
TOML config
2 parents 2147068 + 2584101 commit 6171e56

File tree

154 files changed

+5796
-14623
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

154 files changed

+5796
-14623
lines changed

Makefile

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ clean:
1616
-rm -rf asngen
1717
-rm configure.out
1818
-rm rel/configure.vars.config
19-
-rm rel/vars.config
2019
-rm rel/vars-toml.config
2120

2221
# REBAR_CT_EXTRA_ARGS comes from a test runner
@@ -28,7 +27,7 @@ ct:
2827
eunit:
2928
@$(RUN) $(REBAR) eunit
3029

31-
rel: certs configure.out rel/vars.config rel/vars-toml.config
30+
rel: certs configure.out rel/vars-toml.config
3231
. ./configure.out && $(REBAR) as prod release
3332

3433
shell: certs etc/mongooseim.cfg
@@ -41,9 +40,6 @@ rock:
4140
elif [ "$(BRANCH)" ]; then tools/rock_changed.sh $(BRANCH); \
4241
else tools/rock_changed.sh; fi
4342

44-
rel/vars.config: rel/vars.config.in rel/configure.vars.config
45-
cat $^ > $@
46-
4743
rel/vars-toml.config: rel/vars-toml.config.in rel/configure.vars.config
4844
cat $^ > $@
4945

@@ -60,7 +56,7 @@ devrel: $(DEVNODES)
6056
print_devnodes:
6157
@echo $(DEVNODES)
6258

63-
$(DEVNODES): certs configure.out rel/vars.config rel/vars-toml.config
59+
$(DEVNODES): certs configure.out rel/vars-toml.config
6460
@echo "building $@"
6561
(. ./configure.out && \
6662
DEVNODE=true $(RUN) $(REBAR) as $@ release)

big_tests/default.spec

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
{suites, "tests", cluster_commands_SUITE}.
2222
{suites, "tests", component_SUITE}.
2323
{suites, "tests", conf_reload_SUITE}.
24-
{suites, "tests", config_format_SUITE}.
2524
{suites, "tests", connect_SUITE}.
2625
{suites, "tests", disco_and_caps_SUITE}.
2726
{suites, "tests", ejabberdctl_SUITE}.

big_tests/run_common_test.erl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ enable_preset_on_node(Node, PresetVars, HostVarsFilePrefix) ->
294294
ok.
295295

296296
template_config(Template, Vars) ->
297-
MergedVars = merge_vars(Vars),
297+
MergedVars = ensure_binary_strings(merge_vars(Vars)),
298298
%% Render twice to replace variables in variables
299299
Tmp = bbmustache:render(Template, MergedVars, [{key_type, atom}]),
300300
bbmustache:render(Tmp, MergedVars, [{key_type, atom}]).
@@ -306,6 +306,13 @@ merge_vars([Vars1, Vars2|Rest]) ->
306306
merge_vars([Vars|Rest]);
307307
merge_vars([Vars]) -> Vars.
308308

309+
%% bbmustache tries to iterate over lists, so we need to make them binaries
310+
ensure_binary_strings(Vars) ->
311+
lists:map(fun({dbs, V}) -> {dbs, V};
312+
({K, V}) when is_list(V) -> {K, list_to_binary(V)};
313+
({K, V}) -> {K, V}
314+
end, Vars).
315+
309316
call(Node, M, F, A) ->
310317
case rpc:call(Node, M, F, A) of
311318
{badrpc, Reason} ->

big_tests/test.config

Lines changed: 5 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@
246246
{odbc_mssql_mnesia,
247247
[{dbs, [redis, mssql]},
248248
{auth_method, "\"rdbms\""},
249-
{rdbms_server_type, "rdbms_server_type = \"mssql\""},
249+
{rdbms_server_type, "\"mssql\""},
250250
{outgoing_pools, "[outgoing_pools.redis.global_distrib]
251251
scope = \"global\"
252252
workers = 10
@@ -357,11 +357,11 @@
357357
strategy = \"next_worker\"
358358
connection.address = \"127.0.0.1\"
359359
connection.port = 8087
360-
connection.username = \"ejabberd\"
361-
connection.password = \"mongooseim_secret\"
362-
connection.tls.ciphers = [\"AES256-SHA\", \"DHE-RSA-AES128-SHA256\"]
360+
connection.credentials.user = \"ejabberd\"
361+
connection.credentials.password = \"mongooseim_secret\"
362+
connection.tls.ciphers = \"AES256-SHA:DHE-RSA-AES128-SHA256\"
363363
connection.tls.server_name_indication = false
364-
connection.cacertfile = \"priv/ssl/cacert.pem\""},
364+
connection.tls.cacertfile = \"priv/ssl/cacert.pem\""},
365365
{mod_last, "[modules.mod_last]
366366
backend = \"riak\""},
367367
{mod_privacy, "[modules.mod_privacy]
@@ -390,140 +390,6 @@
390390
scope = \"global\""},
391391
{mod_offline, "[modules.mod_offline]"}
392392
]}
393-
]},
394-
{cfg, % preset vars for the 'cfg' format - used only by the config equivalence tests
395-
[
396-
{internal_mnesia,
397-
%% dbs variable is used by ./tools/test_runner/presets_to_dbs.sh script
398-
[{dbs, [redis, minio]},
399-
{sm_backend, "{mnesia, []}"},
400-
{auth_method, "internal"},
401-
{outgoing_pools, "{outgoing_pools, [
402-
{redis, global, global_distrib, [{workers, 10}], []}
403-
]}."},
404-
{mod_offline, "{mod_offline, []},"}]},
405-
{pgsql_mnesia,
406-
[{dbs, [redis, pgsql]},
407-
{sm_backend, "{mnesia, []}"},
408-
{auth_method, "rdbms"},
409-
{outgoing_pools, "{outgoing_pools, [
410-
{redis, global, global_distrib, [{workers, 10}], []},
411-
{rdbms, global, default, [{workers, 5}],
412-
[{server, {pgsql, \"localhost\", \"ejabberd\", \"ejabberd\", \"mongooseim_secret\",
413-
[{ssl, required}, {ssl_opts, [{verify, verify_peer},
414-
{cacertfile, \"priv/ssl/cacert.pem\"}, {server_name_indication, disable}]}]}}]}
415-
]}."},
416-
{mod_last, "{mod_last, [{backend, rdbms}]},"},
417-
{mod_privacy, "{mod_privacy, [{backend, rdbms}]},"},
418-
{mod_private, "{mod_private, [{backend, rdbms}]},"},
419-
{mod_offline, "{mod_offline, [{backend, rdbms}]},"},
420-
{mod_vcard, "{mod_vcard, [{backend, rdbms}, {host, \"vjud.@HOST@\"}]},"},
421-
{mod_roster, "{mod_roster, [{backend, rdbms}]},"}]},
422-
{odbc_mssql_mnesia,
423-
[{dbs, [redis, mssql]},
424-
{sm_backend, "{mnesia, []}"},
425-
{auth_method, "rdbms"},
426-
{rdbms_server_type, "{rdbms_server_type, mssql}."},
427-
{outgoing_pools, "{outgoing_pools, [
428-
{redis, global, global_distrib, [{workers, 10}], []},
429-
{rdbms, global, default, [{workers, 5}],
430-
[{server, \"DSN=mongoose-mssql;UID=sa;PWD=mongooseim_secret+ESL123\"}]}
431-
]}."},
432-
{mod_last, "{mod_last, [{backend, rdbms}]},"},
433-
{mod_privacy, "{mod_privacy, [{backend, rdbms}]},"},
434-
{mod_private, "{mod_private, [{backend, rdbms}]},"},
435-
{mod_offline, "{mod_offline, [{backend, rdbms}]},"},
436-
{mod_vcard, "{mod_vcard, [{backend, rdbms}, {host, \"vjud.@HOST@\"}]},"},
437-
{mod_roster, "{mod_roster, [{backend, rdbms}]},"}]},
438-
{mysql_redis,
439-
[{dbs, [redis, mysql]},
440-
{sm_backend, "{redis, []}"},
441-
{auth_method, "rdbms"},
442-
{outgoing_pools, "{outgoing_pools, [
443-
{redis, global, global_distrib, [{workers, 10}], []},
444-
{redis, global, default, [{workers, 10}, {strategy, random_worker}], []},
445-
{rdbms, global, default, [{workers, 5}],
446-
[{server, {mysql, \"localhost\", \"ejabberd\", \"ejabberd\", \"mongooseim_secret\",
447-
[{versions, ['tlsv1.2']}, {verify, verify_peer}, {cacertfile, \"priv/ssl/cacert.pem\"}]}}]}
448-
]}."},
449-
{mod_last, "{mod_last, [{backend, rdbms}]},"},
450-
{mod_privacy, "{mod_privacy, [{backend, rdbms}]},"},
451-
{mod_private, "{mod_private, [{backend, rdbms}]},"},
452-
{mod_offline, "{mod_offline, [{backend, rdbms}]},"},
453-
{mod_vcard, "{mod_vcard, [{backend, rdbms}, {host, \"vjud.@HOST@\"}]},"},
454-
{mod_roster, "{mod_roster, [{backend, rdbms}]},"}]},
455-
{ldap_mnesia,
456-
[{dbs, [redis, ldap]},
457-
{sm_backend, "{mnesia, []}"},
458-
{auth_method, "ldap"},
459-
{outgoing_pools, "{outgoing_pools, [
460-
{redis, global, global_distrib, [{workers, 10}], []},
461-
{ldap, global, default, [{workers, 5}], [{port, 3636},
462-
{rootdn, \"cn=admin,dc=esl,dc=com\"},
463-
{password, \"mongooseim_secret\"},
464-
{encrypt, tls},
465-
{tls_options, [{versions, ['tlsv1.2']},
466-
{verify, verify_peer},
467-
{cacertfile, \"priv/ssl/cacert.pem\"},
468-
{certfile, \"priv/ssl/fake_cert.pem\"},
469-
{keyfile, \"priv/ssl/fake_key.pem\"}]}]},
470-
{ldap, global, bind, [{workers, 5}], [{port, 3636},
471-
{encrypt, tls},
472-
{tls_options, [{versions, ['tlsv1.2']},
473-
{verify, verify_peer},
474-
{cacertfile, \"priv/ssl/cacert.pem\"},
475-
{certfile, \"priv/ssl/fake_cert.pem\"},
476-
{keyfile, \"priv/ssl/fake_key.pem\"}]}]}
477-
]}."},
478-
{mod_offline, "{mod_offline, []},"},
479-
{password_format, "{password_format, scram}"},
480-
{auth_ldap, ", {ldap_base, \"ou=Users,dc=esl,dc=com\"},
481-
{ldap_filter, \"(objectClass=inetOrgPerson)\"}"
482-
},
483-
{mod_vcard,"{mod_vcard, [{backend, ldap}, {host, \"vjud.@HOST@\"},\n"
484-
"{ldap_base, \"ou=Users,dc=esl,dc=com\"},\n"
485-
"{ldap_filter,\"(objectClass=inetOrgPerson)\"}\n"
486-
"]},"}
487-
]},
488-
{riak_mnesia,
489-
[{dbs, [redis, riak]},
490-
{sm_backend, "{mnesia, []}"},
491-
{auth_method, "riak"},
492-
%% Specify a list of ciphers to avoid
493-
%% "no function clause matching tls_v1:enum_to_oid(28)" error
494-
%% on Riak's side running with Erlang R16.
495-
%% https://github.com/basho/riak-erlang-client/issues/232#issuecomment-178612129
496-
%% We also set ciphers in tools/setup_riak on the server side.
497-
{outgoing_pools, "{outgoing_pools, [
498-
{redis, global, global_distrib, [{workers, 10}], []},
499-
{riak, global, default, [{workers, 5},
500-
{strategy, next_worker}],
501-
[{address, \"127.0.0.1\"},{port, 8087},
502-
{ssl_opts, [{ciphers, [\"AES256-SHA\", \"DHE-RSA-AES128-SHA256\"]},
503-
{server_name_indication, disable}]},
504-
{credentials, \"ejabberd\", \"mongooseim_secret\"},
505-
{cacertfile, \"priv/ssl/cacert.pem\"}]}
506-
]}."},
507-
{mod_roster, "{mod_roster, [{backend, riak}]},"},
508-
{mod_private, "{mod_private, [{backend, riak}]},"},
509-
{mod_vcard, "{mod_vcard, [{backend, riak}, {host, \"vjud.@HOST@\"}]},"},
510-
{mod_offline, "{mod_offline, [{backend, riak}]},"},
511-
{mod_last, "{mod_last, [{backend, riak}]},"},
512-
{mod_privacy, "{mod_privacy, [{backend, riak}]},"}
513-
]},
514-
{elasticsearch_and_cassandra_mnesia,
515-
[{dbs, [redis, elasticsearch, cassandra]},
516-
{sm_backend, "{mnesia, []}"},
517-
{outgoing_pools, "{outgoing_pools, [
518-
{redis, global, global_distrib, [{workers, 10}], []},
519-
{cassandra, global, default, [{workers, 20}],
520-
[{ssl,[{cacertfile, \"priv/ssl/cacert.pem\"},
521-
{verify, verify_peer}] }]},
522-
{elastic, global, default, [], []}
523-
]}."},
524-
{auth_method, "internal"},
525-
{mod_offline, "{mod_offline, []},"}
526-
]}
527393
]}
528394
]}.
529395

big_tests/tests/accounts_SUITE.erl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -392,8 +392,5 @@ enable_watcher(Config, Watcher) ->
392392
disable_watcher(Config) ->
393393
restore_mod_register_options(Config).
394394

395-
watcher(Watcher) ->
396-
{registration_watchers, [binary_to_list(Watcher)]}.
397-
398395
domain() ->
399396
ct:get_config({hosts, mim, domain}).

big_tests/tests/config_format_SUITE.erl

Lines changed: 0 additions & 155 deletions
This file was deleted.

0 commit comments

Comments
 (0)