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().
 | 
					-spec maybe_add_domain(Domain :: atom()) -> atom().
 | 
				
			||||||
maybe_add_domain(Value) ->
 | 
					maybe_add_domain(Value) ->
 | 
				
			||||||
  M = ?CONFIG_MODULE:config_map(?BACKEND_CONFIG_KEY),
 | 
					  M = ?CONFIG_MODULE:config_map(?BACKEND_CONFIG_KEY),
 | 
				
			||||||
  case get_config_key(consul_use_longname, M) of
 | 
					  case rabbit_nodes:name_type() of
 | 
				
			||||||
      true ->
 | 
					      longnames ->
 | 
				
			||||||
          rabbit_data_coercion:to_atom(string:join([atom_to_list(Value),
 | 
					          rabbit_data_coercion:to_atom(string:join([atom_to_list(Value),
 | 
				
			||||||
                                    "node",
 | 
					                                    "node",
 | 
				
			||||||
                                    get_config_key(consul_domain, M)],
 | 
					                                    get_config_key(consul_domain, M)],
 | 
				
			||||||
                                   "."));
 | 
					                                   "."));
 | 
				
			||||||
      false -> Value
 | 
					      shortnames -> Value
 | 
				
			||||||
  end.
 | 
					  end.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%%--------------------------------------------------------------------
 | 
					%%--------------------------------------------------------------------
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -134,6 +134,7 @@ init_per_testcase(_TC, Config) ->
 | 
				
			||||||
    reset(),
 | 
					    reset(),
 | 
				
			||||||
    meck:new(rabbit_log, []),
 | 
					    meck:new(rabbit_log, []),
 | 
				
			||||||
    meck:new(rabbit_peer_discovery_httpc, [passthrough]),
 | 
					    meck:new(rabbit_peer_discovery_httpc, [passthrough]),
 | 
				
			||||||
 | 
					    meck:new(rabbit_nodes, [passthrough]),
 | 
				
			||||||
    Config.
 | 
					    Config.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
end_per_testcase(_TC, 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\"]}}]",
 | 
					               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))
 | 
					               rabbit_json:try_decode(rabbit_data_coercion:to_binary(Body))
 | 
				
			||||||
             end),
 | 
					             end),
 | 
				
			||||||
           ?assertEqual({ok, {['rabbit@rabbit1', 'rabbit@rabbit2'], disc}},
 | 
					    meck:expect(rabbit_nodes, name_type, fun() -> shortnames end),
 | 
				
			||||||
                        rabbit_peer_discovery_consul:list_nodes()),
 | 
					    ?assertEqual({ok, {['rabbit@rabbit1', 'rabbit@rabbit2'], disc}},
 | 
				
			||||||
           ?assert(meck:validate(rabbit_peer_discovery_httpc)).
 | 
					                 rabbit_peer_discovery_consul:list_nodes()),
 | 
				
			||||||
 | 
					    ?assert(meck:validate(rabbit_peer_discovery_httpc)).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
list_nodes_return_value_basic_long_node_name_test(_Config) ->
 | 
					list_nodes_return_value_basic_long_node_name_test(_Config) ->
 | 
				
			||||||
    application:set_env(rabbit, cluster_formation,
 | 
					    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_backend,         rabbit_peer_discovery_consul},
 | 
				
			||||||
                         {peer_discovery_consul,          [
 | 
					                         {peer_discovery_consul,          [
 | 
				
			||||||
                                                           {consul_host,         "localhost"},
 | 
					                                                           {consul_host,         "localhost"},
 | 
				
			||||||
                                                           {consul_port,         8500},
 | 
					                                                           {consul_port,         8500}
 | 
				
			||||||
                                                           {consul_use_longname, true}
 | 
					 | 
				
			||||||
                                                          ]}
 | 
					                                                          ]}
 | 
				
			||||||
                        ]),
 | 
					                        ]),
 | 
				
			||||||
    meck:expect(rabbit_peer_discovery_httpc, get,
 | 
					    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\"]}}]",
 | 
					               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))
 | 
					               rabbit_json:try_decode(rabbit_data_coercion:to_binary(Body))
 | 
				
			||||||
             end),
 | 
					             end),
 | 
				
			||||||
           ?assertEqual({ok, {['rabbit@rabbit1.node.consul', 'rabbit@rabbit2.node.consul'], disc}},
 | 
					    meck:expect(rabbit_nodes, name_type, fun() -> longnames end),
 | 
				
			||||||
                        rabbit_peer_discovery_consul:list_nodes()),
 | 
					    ?assertEqual({ok, {['rabbit@rabbit1.node.consul', 'rabbit@rabbit2.node.consul'], disc}},
 | 
				
			||||||
           ?assert(meck:validate(rabbit_peer_discovery_httpc)).
 | 
					                 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) ->
 | 
					list_nodes_return_value_long_node_name_and_custom_domain_test(_Config) ->
 | 
				
			||||||
    application:set_env(rabbit, cluster_formation,
 | 
					    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,          [
 | 
					                         {peer_discovery_consul,          [
 | 
				
			||||||
                                                           {consul_host,         "localhost"},
 | 
					                                                           {consul_host,         "localhost"},
 | 
				
			||||||
                                                           {consul_port,         8500},
 | 
					                                                           {consul_port,         8500},
 | 
				
			||||||
                                                           {consul_use_longname, true},
 | 
					 | 
				
			||||||
                                                           {consul_domain,       "internal"}
 | 
					                                                           {consul_domain,       "internal"}
 | 
				
			||||||
                                                          ]}
 | 
					                                                          ]}
 | 
				
			||||||
                        ]),
 | 
					                        ]),
 | 
				
			||||||
    meck:expect(rabbit_peer_discovery_httpc, get,
 | 
					    meck:expect(rabbit_peer_discovery_httpc, get,
 | 
				
			||||||
             fun(_, _, _, _, _, _, _) ->
 | 
					                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\"]}}]",
 | 
					                        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))
 | 
					                        rabbit_json:try_decode(rabbit_data_coercion:to_binary(Body))
 | 
				
			||||||
             end),
 | 
					                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)).
 | 
					    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) ->
 | 
					list_nodes_return_value_srv_address_test(_Config) ->
 | 
				
			||||||
    application:set_env(rabbit, cluster_formation,
 | 
					    application:set_env(rabbit, cluster_formation,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue