-
Notifications
You must be signed in to change notification settings - Fork 429
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/listeners #4452
base: master
Are you sure you want to change the base?
Feature/listeners #4452
Conversation
Note that components might register _any_ domain, even one not necessarily provided by a static config or a dynamically configured one. Hence it makes no sense to use the subdomains registration API as it was described in a TODO in `mod_disco:get_external_components/2`. Furthermore, when it comes to discovery, we want to leave all components as discoverable, regardless of whether the component is a subdomain of a static domain as it was previously done. The code filtering out unrelated parent domains comes from long before MongooseIM 1.0.0, as well as the option to set `extra_domains` to reenable visibility.
This option was used to make discoverable components that for a user might not have been discoverable given the domain was unrelated. This was so decided over a decade ago before MongooseIM 1.0.0, but I'd judge a better solution is to leave components as either entirely discoverable or entirely hidden by default, as components are usually dynamic and at the same time fully controllable at the deployment, and we can now have an infinite amount of domains for which a component can become a subdomain and hard-coding "extra_domains" for each static or dynamic domain is not feasible.
Xmpp services
elasticsearch_and_cassandra_27 / elasticsearch_and_cassandra_mnesia / e8c71e9 small_tests_26 / small_tests / e8c71e9 small_tests_27 / small_tests / e8c71e9 small_tests_27_arm64 / small_tests / e8c71e9 ldap_mnesia_26 / ldap_mnesia / e8c71e9 ldap_mnesia_27 / ldap_mnesia / e8c71e9 dynamic_domains_pgsql_mnesia_27 / pgsql_mnesia / e8c71e9 dynamic_domains_mysql_redis_27 / mysql_redis / e8c71e9 dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / e8c71e9 internal_mnesia_27 / internal_mnesia / e8c71e9 pgsql_cets_27 / pgsql_cets / e8c71e9 dynamic_domains_mssql_mnesia_27 / odbc_mssql_mnesia / e8c71e9 mysql_redis_27 / mysql_redis / e8c71e9 pgsql_mnesia_27 / pgsql_mnesia / e8c71e9 pgsql_mnesia_26 / pgsql_mnesia / e8c71e9 cockroachdb_cets_27 / cockroachdb_cets / e8c71e9 mssql_mnesia_27 / odbc_mssql_mnesia / e8c71e9 |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #4452 +/- ##
==========================================
- Coverage 85.35% 85.22% -0.13%
==========================================
Files 550 553 +3
Lines 33883 33959 +76
==========================================
+ Hits 28921 28942 +21
- Misses 4962 5017 +55 ☔ View full report in Codecov by Sentry. |
Components/dynamic domains
elasticsearch_and_cassandra_27 / elasticsearch_and_cassandra_mnesia / 09f5365 small_tests_27 / small_tests / 09f5365 small_tests_26 / small_tests / 09f5365 small_tests_27_arm64 / small_tests / 09f5365 dynamic_domains_mysql_redis_27 / mysql_redis / 09f5365 ldap_mnesia_26 / ldap_mnesia / 09f5365 ldap_mnesia_27 / ldap_mnesia / 09f5365 graphql_roster_SUITE:admin_roster_http:admin_decline_subscription_ask{error,
{timeout_when_waiting_for_stanza,
[{escalus_client,wait_for_stanza,
[{client,
<<"bob_admin_decline_subscription_ask_970@localhost/res1">>,
escalus_tcp,<0.27596.0>,
[{event_manager,<0.27594.0>},
{server,<<"localhost">>},
{username,<<"bOb_admin_decline_subscription_ask_970">>},
{resource,<<"res1">>}],
[{event_client,
[{event_manager,<0.27594.0>},
{server,<<"localhost">>},
{username,
<<"bOb_admin_decline_subscription_ask_970">>},
{resource,<<"res1">>}]},
{resource,<<"res1">>},
{username,<<"bob_admin_decline_subscription_ask_970">>},
{server,<<"localhost">>},
{host,<<"localhost">>},
{port,5222},
{auth,{escalus_auth,auth_plain}},
{wspath,undefined},
{username,<<"bOb_admin_decline_subscription_ask_970">>},
{server,<<"localhost">>},
{password,<<"makrolika">>},
{stream_id,<<"c205ded8ab880d7b">>}]},
1],
[{file,
"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
{line,136}]},
{graphql_roster_SUITE,admin_decline_subscription_ask_story,3,
[{file,
"/home/circleci/project/big_tests/tests/graphql_roster_SUITE.erl"},
{line,258}]},
{escalus_story,story,4,
[{file,
"/home/circleci/project/big_tests/_bui... internal_mnesia_27 / internal_mnesia / 09f5365 dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / 09f5365 dynamic_domains_pgsql_mnesia_27 / pgsql_mnesia / 09f5365 pgsql_cets_27 / pgsql_cets / 09f5365 mysql_redis_27 / mysql_redis / 09f5365 dynamic_domains_mssql_mnesia_27 / odbc_mssql_mnesia / 09f5365 cockroachdb_cets_27 / cockroachdb_cets / 09f5365 pubsub_SUITE:dag+collection_config:disable_payload_leaf_test{error,
{timeout_when_waiting_for_stanza,
[{escalus_client,wait_for_stanza,
[{client,
<<"alice_disable_payload_leaf_test_2927@localhost/res1">>,
escalus_tcp,<0.103375.0>,
[{event_manager,<0.103355.0>},
{server,<<"localhost">>},
{username,<<"alicE_disable_payload_leaf_test_2927">>},
{resource,<<"res1">>}],
[{event_client,
[{event_manager,<0.103355.0>},
{server,<<"localhost">>},
{username,<<"alicE_disable_payload_leaf_test_2927">>},
{resource,<<"res1">>}]},
{resource,<<"res1">>},
{username,<<"alice_disable_payload_leaf_test_2927">>},
{server,<<"localhost">>},
{host,<<"localhost">>},
{port,5222},
{auth,{escalus_auth,auth_plain}},
{wspath,undefined},
{username,<<"alicE_disable_payload_leaf_test_2927">>},
{server,<<"localhost">>},
{password,<<"matygrysa">>},
{stream_id,<<"e127d828caea33cf">>}]},
5000],
[{file,
"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
{line,136}]},
{pubsub_tools,receive_response,3,
[{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
{line,433}]},
{pubsub_tools,receive_and_check_response,4,
[{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
{line,424}]},
{escalus... pgsql_mnesia_27 / pgsql_mnesia / 09f5365 pgsql_mnesia_26 / pgsql_mnesia / 09f5365 mssql_mnesia_27 / odbc_mssql_mnesia / 09f5365 ldap_mnesia_27 / ldap_mnesia / 09f5365 |
Services in the context of MongooseIM means something else.
…of transforming at runtime
Rename components as components instead of the old services
elasticsearch_and_cassandra_27 / elasticsearch_and_cassandra_mnesia / 71d0ce3 small_tests_27 / small_tests / 71d0ce3 small_tests_26 / small_tests / 71d0ce3 small_tests_27_arm64 / small_tests / 71d0ce3 ldap_mnesia_26 / ldap_mnesia / 71d0ce3 ldap_mnesia_27 / ldap_mnesia / 71d0ce3 dynamic_domains_mysql_redis_27 / mysql_redis / 71d0ce3 domain_isolation_SUITE:two_domains:routing_one2one_message_to_another_domain_gets_dropped{error,{test_case_failed,"Incorrect number of instrumentation events - matched: 0, expected: 1"}} domain_isolation_SUITE:end_per_suite{error,{test_case_failed,"Instrumentation events that were logged, but not tested:\n[{router_stanza_dropped,#{host_type => <<\"test type\">>}}]\nYou need to test them with instrument_helper:assert/3"}} dynamic_domains_mssql_mnesia_27 / odbc_mssql_mnesia / 71d0ce3 graphql_server_SUITE:admin_cli:clustering_tests:remove_alive_from_cluster{failed,
{graphql_server_SUITE,end_per_testcase,
{'EXIT',
{{badrpc,nodedown},
[{distributed_helper,rpc,
[#{node => mongooseim3@localhost},
mnesia,system_info,
[is_running]],
[{file,
"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
{line,140}]},
{distributed_helper,has_mnesia,1,
[{file,
"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
{line,31}]},
{distributed_helper,remove_node_from_cluster,2,
[{file,
"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
{line,53}]},
{graphql_server_SUITE,end_per_testcase,2,
[{file,
"/home/circleci/project/big_tests/tests/graphql_server_SUITE.erl"},
{line,121}]},
{test_server,do_end_per_testcase,4,
[{file,"test_server.erl"},{line,1638}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1346}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1235}]}]}}}} graphql_server_SUITE:admin_cli:clustering_tests:remove_node_test{error,{#{what => invalid_response_code,expected_type => ok,
response_code => {exit_status,3}},
[{graphql_helper,assert_response_code,2,
[{file,"/home/circleci/project/big_tests/tests/graphql_helper.erl"},
{line,258}]},
{graphql_helper,get_ok_value,2,
[{file,"/home/circleci/project/big_tests/tests/graphql_helper.erl"},
{line,241}]},
{graphql_server_SUITE,remove_node_test,1,
[{file,"/home/circleci/project/big_tests/tests/graphql_server_SUITE.erl"},
{line,225}]},
{test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1303}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1235}]}]}} graphql_server_SUITE:admin_cli:clustering_tests:stop_node_test{error,{#{what => invalid_response_code,expected_type => ok,
response_code => {exit_status,3}},
[{graphql_helper,assert_response_code,2,
[{file,"/home/circleci/project/big_tests/tests/graphql_helper.erl"},
{line,258}]},
{graphql_helper,get_ok_value,2,
[{file,"/home/circleci/project/big_tests/tests/graphql_helper.erl"},
{line,241}]},
{graphql_server_SUITE,stop_node_test,1,
[{file,"/home/circleci/project/big_tests/tests/graphql_server_SUITE.erl"},
{line,230}]},
{test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1303}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1235}]}]}} last_SUITE:init_per_suite{fail,[{validate_node_failed,{badrpc,nodedown},mongooseim3@localhost}]} metrics_api_SUITE:init_per_suite{fail,[{validate_node_failed,{badrpc,nodedown},mongooseim3@localhost}]} persistent_cluster_id_SUITE:init_per_suite{fail,[{validate_node_failed,{badrpc,nodedown},mongooseim3@localhost}]} sasl_external_SUITE:init_per_suite{fail,[{validate_node_failed,{badrpc,nodedown},mongooseim3@localhost}]} service_domain_db_SUITE:init_per_suite{fail,[{validate_node_failed,{badrpc,nodedown},mongooseim3@localhost}]} service_mongoose_system_metrics_SUITE:init_per_suite{fail,[{validate_node_failed,{badrpc,nodedown},mongooseim3@localhost}]} shutdown_SUITE:init_per_suite{fail,[{validate_node_failed,{badrpc,nodedown},mongooseim3@localhost}]} dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / 71d0ce3 dynamic_domains_pgsql_mnesia_27 / pgsql_mnesia / 71d0ce3 internal_mnesia_27 / internal_mnesia / 71d0ce3 pgsql_cets_27 / pgsql_cets / 71d0ce3 mysql_redis_27 / mysql_redis / 71d0ce3 cockroachdb_cets_27 / cockroachdb_cets / 71d0ce3 pubsub_SUITE:dag+node_config:set_configuration_errors_test{error,
{timeout_when_waiting_for_stanza,
[{escalus_client,wait_for_stanza,
[{client,
<<"alice_set_configuration_errors_test_2949@localhost/res1">>,
escalus_tcp,<0.102497.0>,
[{event_manager,<0.102415.0>},
{server,<<"localhost">>},
{username,<<"alicE_set_configuration_errors_test_2949">>},
{resource,<<"res1">>}],
[{event_client,
[{event_manager,<0.102415.0>},
{server,<<"localhost">>},
{username,
<<"alicE_set_configuration_errors_test_2949">>},
{resource,<<"res1">>}]},
{resource,<<"res1">>},
{username,<<"alice_set_configuration_errors_test_2949">>},
{server,<<"localhost">>},
{host,<<"localhost">>},
{port,5222},
{auth,{escalus_auth,auth_plain}},
{wspath,undefined},
{username,<<"alicE_set_configuration_errors_test_2949">>},
{server,<<"localhost">>},
{password,<<"matygrysa">>},
{stream_id,<<"4d78cd4aa54b5b90">>}]},
5000],
[{file,
"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
{line,136}]},
{pubsub_tools,receive_response,3,
[{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
{line,433}]},
{pubsub_tools,receive_and_check_response,4,
[{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
... pubsub_SUITE:dag+node_config:notify_config_test{error,
{timeout_when_waiting_for_stanza,
[{escalus_client,wait_for_stanza,
[{client,<<"alice_notify_config_test_2953@localhost/res1">>,
escalus_tcp,<0.102510.0>,
[{event_manager,<0.102451.0>},
{server,<<"localhost">>},
{username,<<"alicE_notify_config_test_2953">>},
{resource,<<"res1">>}],
[{event_client,
[{event_manager,<0.102451.0>},
{server,<<"localhost">>},
{username,<<"alicE_notify_config_test_2953">>},
{resource,<<"res1">>}]},
{resource,<<"res1">>},
{username,<<"alice_notify_config_test_2953">>},
{server,<<"localhost">>},
{host,<<"localhost">>},
{port,5222},
{auth,{escalus_auth,auth_plain}},
{wspath,undefined},
{username,<<"alicE_notify_config_test_2953">>},
{server,<<"localhost">>},
{password,<<"matygrysa">>},
{stream_id,<<"21bae79b5ffd8653">>}]},
5000],
[{file,
"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
{line,136}]},
{pubsub_tools,receive_response,3,
[{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
{line,433}]},
{pubsub_tools,receive_and_check_response,4,
[{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
{line,424}]},
{escalus_story,story,4,
[{file,
"/hom... pgsql_mnesia_26 / pgsql_mnesia / 71d0ce3 connect_SUITE:session_replacement:replaced_session_cannot_terminate_different_nodes{skip,
{failed,
{connect_SUITE,init_per_testcase,
{{verify_result,[],
[{times,20,
[{#{node => mongooseim2@localhost},
[mongooseim@localhost],
true},
{#{node => mongooseim@localhost},
[mongooseim2@localhost],
true}]}],
undefined},
[{wait_helper,do_wait_until,1,
[{file,
"/home/circleci/project/big_tests/_build/default/lib/wait_helper/src/wait_helper.erl"},
{line,127}]},
{distributed_helper,verify_result,2,
[{file,
"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
{line,72}]},
{distributed_helper,add_node_to_cluster,2,
[{file,
"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
{line,36}]},
{connect_SUITE,init_per_testcase,2,
[{file,
"/home/circleci/project/big_tests/tests/connect_SUITE.erl"},
{line,201}]},
{test_server,do_init_per_testcase,2,
[{file,"test_server.erl"},{line,1563}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1264}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1234}]}]}}}} gdpr_SUITE:retrieve_personal_data:retrieve_logs{error,{#{what => invalid_response_code,
response_code => {exit_status,1},
expected_type => ok},
[{graphql_helper,assert_response_code,2,
[{file,"/home/circleci/project/big_tests/tests/graphql_helper.erl"},
{line,258}]},
{graphql_helper,get_ok_value,2,
[{file,"/home/circleci/project/big_tests/tests/graphql_helper.erl"},
{line,241}]},
{gdpr_SUITE,request_and_unzip_personal_data,3,
[{file,"/home/circleci/project/big_tests/tests/gdpr_SUITE.erl"},
{line,1691}]},
{gdpr_SUITE,'-retrieve_logs/1-fun-0-',2,
[{file,"/home/circleci/project/big_tests/tests/gdpr_SUITE.erl"},
{line,1544}]},
{escalus_story,story,4,
[{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_story.erl"},
{line,72}]},
{test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1302}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1234}]}]}} pgsql_mnesia_27 / pgsql_mnesia / 71d0ce3 mssql_mnesia_27 / odbc_mssql_mnesia / 71d0ce3 |
Components/tls
elasticsearch_and_cassandra_27 / elasticsearch_and_cassandra_mnesia / fac8b50 small_tests_26 / small_tests / fac8b50 small_tests_27 / small_tests / fac8b50 small_tests_27_arm64 / small_tests / fac8b50 ldap_mnesia_27 / ldap_mnesia / fac8b50 ldap_mnesia_26 / ldap_mnesia / fac8b50 dynamic_domains_mysql_redis_27 / mysql_redis / fac8b50 dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / fac8b50 dynamic_domains_mssql_mnesia_27 / odbc_mssql_mnesia / fac8b50 internal_mnesia_27 / internal_mnesia / fac8b50 cluster_commands_SUITE:join_twice_in_parallel_using_rpc{'EXIT',{{badrpc,timeout},
{distributed_helper,rpc,
[#{timeout => 60000,
node => mongooseim2@localhost},
mongoose_cluster,join,
[mongooseim@localhost]],
[{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
{line,140}]}}} cluster_commands_SUITE:cluster_of_three{error,
{{assertEqual,
[{module,cluster_commands_SUITE},
{line,357},
{expression,"OpCode1"},
{expected,0},
{value,1}]},
[{cluster_commands_SUITE,cluster_of_three,1,
[{file,
"/home/circleci/project/big_tests/tests/cluster_commands_SUITE.erl"},
{line,357}]},
{test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1303}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1235}]}]}} cluster_commands_SUITE:leave_the_three{error,
{{badrpc,timeout},
[{distributed_helper,rpc,
[#{timeout => 60000,node => mongooseim2@localhost},
mongoose_cluster,join,
[mongooseim@localhost]],
[{file,
"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
{line,140}]},
{cluster_commands_SUITE,leave_the_three,1,
[{file,
"/home/circleci/project/big_tests/tests/cluster_commands_SUITE.erl"},
{line,369}]},
{test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1303}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1235}]}]}} cluster_commands_SUITE:remove_alive_from_cluster{error,
{{badrpc,timeout},
[{distributed_helper,rpc,
[#{timeout => 60000,node => mongooseim2@localhost},
mongoose_cluster,join,
[mongooseim@localhost]],
[{file,
"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
{line,140}]},
{cluster_commands_SUITE,remove_alive_from_cluster,1,
[{file,
"/home/circleci/project/big_tests/tests/cluster_commands_SUITE.erl"},
{line,411}]},
{test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1303}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1235}]}]}} component_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} dynamic_domains_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} graphql_server_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} jingle_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} last_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} local_iq_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} metrics_api_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} mod_global_distrib_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} persistent_cluster_id_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} s2s_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} sasl_external_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} service_domain_db_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} service_mongoose_system_metrics_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} shutdown_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} system_probes_SUITE:init_per_suite{fail,[{validate_node_failed,mongooseim_not_running,mongooseim2@localhost}]} dynamic_domains_pgsql_mnesia_27 / pgsql_mnesia / fac8b50 cockroachdb_cets_27 / cockroachdb_cets / fac8b50 pubsub_SUITE:dag+collection_config:disable_persist_items_leaf_test{error,
{timeout_when_waiting_for_stanza,
[{escalus_client,wait_for_stanza,
[{client,
<<"alice_disable_persist_items_leaf_test_2930@localhost/res1">>,
escalus_tcp,<0.103520.0>,
[{event_manager,<0.103517.0>},
{server,<<"localhost">>},
{username,<<"alicE_disable_persist_items_leaf_test_2930">>},
{resource,<<"res1">>}],
[{event_client,
[{event_manager,<0.103517.0>},
{server,<<"localhost">>},
{username,
<<"alicE_disable_persist_items_leaf_test_2930">>},
{resource,<<"res1">>}]},
{resource,<<"res1">>},
{username,<<"alice_disable_persist_items_leaf_test_2930">>},
{server,<<"localhost">>},
{host,<<"localhost">>},
{port,5222},
{auth,{escalus_auth,auth_plain}},
{wspath,undefined},
{username,<<"alicE_disable_persist_items_leaf_test_2930">>},
{server,<<"localhost">>},
{password,<<"matygrysa">>},
{stream_id,<<"0d464b016a2e14e2">>}]},
5000],
[{file,
"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
{line,136}]},
{pubsub_tools,receive_response,3,
[{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
{line,433}]},
{pubsub_tools,receive_and_check_response,4,
[{file,"/home/circleci/project/big_tests/tests/pubsub_too... pgsql_cets_27 / pgsql_cets / fac8b50 mysql_redis_27 / mysql_redis / fac8b50 pgsql_mnesia_26 / pgsql_mnesia / fac8b50 pgsql_mnesia_27 / pgsql_mnesia / fac8b50 mssql_mnesia_27 / odbc_mssql_mnesia / fac8b50 |
[ component_route(Subdomain, Domain) || {Domain, _} <- StaticDomains ] | ||
++ [ component_route(Subdomain, Domain) || {Domain, _} <- DynamicDomains ]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that our intention when creating mongoose_subdomain_core
and mongoose_lazy_routing
was to avoid this... I think that in order to really support dynamic domains, this needs to work for any domains added dynamically after the registration. IMO we need to extend mongoose_component
to work like mongoose_subdomain_core
, where you can register patterns.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, the thing is that components are dynamic in a different way than multi-tenancy is: components can connect and disconnect from MongooseIM with any domain (or subdomain) they want. They really can even make up very arbitrary domains, google.com
if you want to, it doesn't even have to be a subdomain of an existing domain, routing for components happens before S2S+DNS and after local domains (see router_modules
defaults). And when the component disconnects the domain is not served anymore (mongoose_subdomain_core
would read and write to the database, which we don't want).
No description provided.