Merge pull request #6410 from SimonUnge/simunge/4230_use-global-longname-settings
See #4230. peer_discovery_consul to use global setting for long/short…
This commit is contained in:
commit
149a893d63
|
|
@ -497,13 +497,13 @@ service_ttl(Value) ->
|
|||
-spec maybe_add_domain(Domain :: atom()) -> atom().
|
||||
maybe_add_domain(Value) ->
|
||||
M = ?CONFIG_MODULE:config_map(?BACKEND_CONFIG_KEY),
|
||||
case get_config_key(consul_use_longname, M) of
|
||||
true ->
|
||||
case rabbit_nodes:name_type() of
|
||||
longnames ->
|
||||
rabbit_data_coercion:to_atom(string:join([atom_to_list(Value),
|
||||
"node",
|
||||
get_config_key(consul_domain, M)],
|
||||
"."));
|
||||
false -> Value
|
||||
shortnames -> Value
|
||||
end.
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -134,6 +134,7 @@ init_per_testcase(_TC, Config) ->
|
|||
reset(),
|
||||
meck:new(rabbit_log, []),
|
||||
meck:new(rabbit_peer_discovery_httpc, [passthrough]),
|
||||
meck:new(rabbit_nodes, [passthrough]),
|
||||
Config.
|
||||
|
||||
end_per_testcase(_TC, Config) ->
|
||||
|
|
@ -335,9 +336,10 @@ list_nodes_return_value_basic_test(_Config) ->
|
|||
Body = "[{\"Node\": {\"Node\": \"rabbit2.internal.domain\", \"Address\": \"10.20.16.160\"}, \"Checks\": [{\"Node\": \"rabbit2.internal.domain\", \"CheckID\": \"service:rabbitmq\", \"Name\": \"Service \'rabbitmq\' check\", \"ServiceName\": \"rabbitmq\", \"Notes\": \"Connect to the port internally every 30 seconds\", \"Status\": \"passing\", \"ServiceID\": \"rabbitmq\", \"Output\": \"\"}, {\"Node\": \"rabbit2.internal.domain\", \"CheckID\": \"serfHealth\", \"Name\": \"Serf Health Status\", \"ServiceName\": \"\", \"Notes\": \"\", \"Status\": \"passing\", \"ServiceID\": \"\", \"Output\": \"Agent alive and reachable\"}], \"Service\": {\"Address\": \"\", \"Port\": 5672, \"ID\": \"rabbitmq\", \"Service\": \"rabbitmq\", \"Tags\": [\"amqp\"]}}, {\"Node\": {\"Node\": \"rabbit1.internal.domain\", \"Address\": \"10.20.16.159\"}, \"Checks\": [{\"Node\": \"rabbit1.internal.domain\", \"CheckID\": \"service:rabbitmq\", \"Name\": \"Service \'rabbitmq\' check\", \"ServiceName\": \"rabbitmq\", \"Notes\": \"Connect to the port internally every 30 seconds\", \"Status\": \"passing\", \"ServiceID\": \"rabbitmq\", \"Output\": \"\"}, {\"Node\": \"rabbit1.internal.domain\", \"CheckID\": \"serfHealth\", \"Name\": \"Serf Health Status\", \"ServiceName\": \"\", \"Notes\": \"\", \"Status\": \"passing\", \"ServiceID\": \"\", \"Output\": \"Agent alive and reachable\"}], \"Service\": {\"Address\": \"\", \"Port\": 5672, \"ID\": \"rabbitmq\", \"Service\": \"rabbitmq\", \"Tags\": [\"amqp\"]}}]",
|
||||
rabbit_json:try_decode(rabbit_data_coercion:to_binary(Body))
|
||||
end),
|
||||
?assertEqual({ok, {['rabbit@rabbit1', 'rabbit@rabbit2'], disc}},
|
||||
rabbit_peer_discovery_consul:list_nodes()),
|
||||
?assert(meck:validate(rabbit_peer_discovery_httpc)).
|
||||
meck:expect(rabbit_nodes, name_type, fun() -> shortnames end),
|
||||
?assertEqual({ok, {['rabbit@rabbit1', 'rabbit@rabbit2'], disc}},
|
||||
rabbit_peer_discovery_consul:list_nodes()),
|
||||
?assert(meck:validate(rabbit_peer_discovery_httpc)).
|
||||
|
||||
list_nodes_return_value_basic_long_node_name_test(_Config) ->
|
||||
application:set_env(rabbit, cluster_formation,
|
||||
|
|
@ -345,8 +347,7 @@ list_nodes_return_value_basic_long_node_name_test(_Config) ->
|
|||
{peer_discovery_backend, rabbit_peer_discovery_consul},
|
||||
{peer_discovery_consul, [
|
||||
{consul_host, "localhost"},
|
||||
{consul_port, 8500},
|
||||
{consul_use_longname, true}
|
||||
{consul_port, 8500}
|
||||
]}
|
||||
]),
|
||||
meck:expect(rabbit_peer_discovery_httpc, get,
|
||||
|
|
@ -354,9 +355,10 @@ list_nodes_return_value_basic_long_node_name_test(_Config) ->
|
|||
Body = "[{\"Node\": {\"Node\": \"rabbit2\", \"Address\": \"10.20.16.160\"}, \"Checks\": [{\"Node\": \"rabbit2\", \"CheckID\": \"service:rabbitmq\", \"Name\": \"Service \'rabbitmq\' check\", \"ServiceName\": \"rabbitmq\", \"Notes\": \"Connect to the port internally every 30 seconds\", \"Status\": \"passing\", \"ServiceID\": \"rabbitmq\", \"Output\": \"\"}, {\"Node\": \"rabbit2\", \"CheckID\": \"serfHealth\", \"Name\": \"Serf Health Status\", \"ServiceName\": \"\", \"Notes\": \"\", \"Status\": \"passing\", \"ServiceID\": \"\", \"Output\": \"Agent alive and reachable\"}], \"Service\": {\"Address\": \"\", \"Port\": 5672, \"ID\": \"rabbitmq\", \"Service\": \"rabbitmq\", \"Tags\": [\"amqp\"]}}, {\"Node\": {\"Node\": \"rabbit1\", \"Address\": \"10.20.16.159\"}, \"Checks\": [{\"Node\": \"rabbit1\", \"CheckID\": \"service:rabbitmq\", \"Name\": \"Service \'rabbitmq\' check\", \"ServiceName\": \"rabbitmq\", \"Notes\": \"Connect to the port internally every 30 seconds\", \"Status\": \"passing\", \"ServiceID\": \"rabbitmq\", \"Output\": \"\"}, {\"Node\": \"rabbit1\", \"CheckID\": \"serfHealth\", \"Name\": \"Serf Health Status\", \"ServiceName\": \"\", \"Notes\": \"\", \"Status\": \"passing\", \"ServiceID\": \"\", \"Output\": \"Agent alive and reachable\"}], \"Service\": {\"Address\": \"\", \"Port\": 5672, \"ID\": \"rabbitmq\", \"Service\": \"rabbitmq\", \"Tags\": [\"amqp\"]}}]",
|
||||
rabbit_json:try_decode(rabbit_data_coercion:to_binary(Body))
|
||||
end),
|
||||
?assertEqual({ok, {['rabbit@rabbit1.node.consul', 'rabbit@rabbit2.node.consul'], disc}},
|
||||
rabbit_peer_discovery_consul:list_nodes()),
|
||||
?assert(meck:validate(rabbit_peer_discovery_httpc)).
|
||||
meck:expect(rabbit_nodes, name_type, fun() -> longnames end),
|
||||
?assertEqual({ok, {['rabbit@rabbit1.node.consul', 'rabbit@rabbit2.node.consul'], disc}},
|
||||
rabbit_peer_discovery_consul:list_nodes()),
|
||||
?assert(meck:validate(rabbit_peer_discovery_httpc)).
|
||||
|
||||
list_nodes_return_value_long_node_name_and_custom_domain_test(_Config) ->
|
||||
application:set_env(rabbit, cluster_formation,
|
||||
|
|
@ -365,18 +367,20 @@ list_nodes_return_value_long_node_name_and_custom_domain_test(_Config) ->
|
|||
{peer_discovery_consul, [
|
||||
{consul_host, "localhost"},
|
||||
{consul_port, 8500},
|
||||
{consul_use_longname, true},
|
||||
{consul_domain, "internal"}
|
||||
]}
|
||||
]),
|
||||
meck:expect(rabbit_peer_discovery_httpc, get,
|
||||
fun(_, _, _, _, _, _, _) ->
|
||||
Body = "[{\"Node\": {\"Node\": \"rabbit2\", \"Address\": \"10.20.16.160\"}, \"Checks\": [{\"Node\": \"rabbit2\", \"CheckID\": \"service:rabbitmq\", \"Name\": \"Service \'rabbitmq\' check\", \"ServiceName\": \"rabbitmq\", \"Notes\": \"Connect to the port internally every 30 seconds\", \"Status\": \"passing\", \"ServiceID\": \"rabbitmq\", \"Output\": \"\"}, {\"Node\": \"rabbit2\", \"CheckID\": \"serfHealth\", \"Name\": \"Serf Health Status\", \"ServiceName\": \"\", \"Notes\": \"\", \"Status\": \"passing\", \"ServiceID\": \"\", \"Output\": \"Agent alive and reachable\"}], \"Service\": {\"Address\": \"\", \"Port\": 5672, \"ID\": \"rabbitmq\", \"Service\": \"rabbitmq\", \"Tags\": [\"amqp\"]}}, {\"Node\": {\"Node\": \"rabbit1\", \"Address\": \"10.20.16.159\"}, \"Checks\": [{\"Node\": \"rabbit1\", \"CheckID\": \"service:rabbitmq\", \"Name\": \"Service \'rabbitmq\' check\", \"ServiceName\": \"rabbitmq\", \"Notes\": \"Connect to the port internally every 30 seconds\", \"Status\": \"passing\", \"ServiceID\": \"rabbitmq\", \"Output\": \"\"}, {\"Node\": \"rabbit1\", \"CheckID\": \"serfHealth\", \"Name\": \"Serf Health Status\", \"ServiceName\": \"\", \"Notes\": \"\", \"Status\": \"passing\", \"ServiceID\": \"\", \"Output\": \"Agent alive and reachable\"}], \"Service\": {\"Address\": \"\", \"Port\": 5672, \"ID\": \"rabbitmq\", \"Service\": \"rabbitmq\", \"Tags\": [\"amqp\"]}}]",
|
||||
rabbit_json:try_decode(rabbit_data_coercion:to_binary(Body))
|
||||
end),
|
||||
?assertEqual({ok, {['rabbit@rabbit1.node.internal', 'rabbit@rabbit2.node.internal'], disc}},
|
||||
rabbit_peer_discovery_consul:list_nodes()),
|
||||
?assert(meck:validate(rabbit_peer_discovery_httpc)).
|
||||
fun(_, _, _, _, _, _, _) ->
|
||||
Body = "[{\"Node\": {\"Node\": \"rabbit2\", \"Address\": \"10.20.16.160\"}, \"Checks\": [{\"Node\": \"rabbit2\", \"CheckID\": \"service:rabbitmq\", \"Name\": \"Service \'rabbitmq\' check\", \"ServiceName\": \"rabbitmq\", \"Notes\": \"Connect to the port internally every 30 seconds\", \"Status\": \"passing\", \"ServiceID\": \"rabbitmq\", \"Output\": \"\"}, {\"Node\": \"rabbit2\", \"CheckID\": \"serfHealth\", \"Name\": \"Serf Health Status\", \"ServiceName\": \"\", \"Notes\": \"\", \"Status\": \"passing\", \"ServiceID\": \"\", \"Output\": \"Agent alive and reachable\"}], \"Service\": {\"Address\": \"\", \"Port\": 5672, \"ID\": \"rabbitmq\", \"Service\": \"rabbitmq\", \"Tags\": [\"amqp\"]}}, {\"Node\": {\"Node\": \"rabbit1\", \"Address\": \"10.20.16.159\"}, \"Checks\": [{\"Node\": \"rabbit1\", \"CheckID\": \"service:rabbitmq\", \"Name\": \"Service \'rabbitmq\' check\", \"ServiceName\": \"rabbitmq\", \"Notes\": \"Connect to the port internally every 30 seconds\", \"Status\": \"passing\", \"ServiceID\": \"rabbitmq\", \"Output\": \"\"}, {\"Node\": \"rabbit1\", \"CheckID\": \"serfHealth\", \"Name\": \"Serf Health Status\", \"ServiceName\": \"\", \"Notes\": \"\", \"Status\": \"passing\", \"ServiceID\": \"\", \"Output\": \"Agent alive and reachable\"}], \"Service\": {\"Address\": \"\", \"Port\": 5672, \"ID\": \"rabbitmq\", \"Service\": \"rabbitmq\", \"Tags\": [\"amqp\"]}}]",
|
||||
rabbit_json:try_decode(rabbit_data_coercion:to_binary(Body))
|
||||
end),
|
||||
|
||||
|
||||
meck:expect(rabbit_nodes, name_type, fun() -> longnames end),
|
||||
?assertEqual({ok, {['rabbit@rabbit1.node.internal', 'rabbit@rabbit2.node.internal'], disc}},
|
||||
rabbit_peer_discovery_consul:list_nodes()),
|
||||
?assert(meck:validate(rabbit_peer_discovery_httpc)).
|
||||
|
||||
list_nodes_return_value_srv_address_test(_Config) ->
|
||||
application:set_env(rabbit, cluster_formation,
|
||||
|
|
|
|||
Loading…
Reference in New Issue