diff --git a/apps/emqx_machine/src/emqx_restricted_shell.erl b/apps/emqx_machine/src/emqx_restricted_shell.erl index cc475cb56..31ee16986 100644 --- a/apps/emqx_machine/src/emqx_restricted_shell.erl +++ b/apps/emqx_machine/src/emqx_restricted_shell.erl @@ -45,9 +45,10 @@ set_prompt_func() -> prompt_func(PropList) -> Line = proplists:get_value(history, PropList, 1), Version = emqx_release:version(), + Edition = emqx_release:edition(), case is_alive() of - true -> io_lib:format(<<"~ts(~s)~w> ">>, [Version, node(), Line]); - false -> io_lib:format(<<"~ts ~w> ">>, [Version, Line]) + true -> io_lib:format(<<"~ts-~ts(~s)~w> ">>, [Edition, Version, node(), Line]); + false -> io_lib:format(<<"~ts-~ts ~w> ">>, [Edition, Version, Line]) end. local_allowed(MF, Args, State) -> diff --git a/apps/emqx_management/src/emqx_mgmt.erl b/apps/emqx_management/src/emqx_mgmt.erl index 8f73d5767..87422697a 100644 --- a/apps/emqx_management/src/emqx_mgmt.erl +++ b/apps/emqx_management/src/emqx_mgmt.erl @@ -141,6 +141,7 @@ node_info() -> node_status => 'running', uptime => proplists:get_value(uptime, BrokerInfo), version => iolist_to_binary(proplists:get_value(version, BrokerInfo)), + edition => edition(), role => mria_rlog:role() }. @@ -553,3 +554,9 @@ max_row_limit() -> ?MAX_ROW_LIMIT. table_size(Tab) -> ets:info(Tab, size). + +edition() -> + case emqx_release:edition() of + ee -> <<"enterprise">>; + ce -> <<"community">> + end. diff --git a/apps/emqx_management/src/emqx_mgmt_api_nodes.erl b/apps/emqx_management/src/emqx_mgmt_api_nodes.erl index e0f0912df..50e65f581 100644 --- a/apps/emqx_management/src/emqx_mgmt_api_nodes.erl +++ b/apps/emqx_management/src/emqx_mgmt_api_nodes.erl @@ -215,7 +215,12 @@ fields(node_info) -> {version, mk( string(), - #{desc => <<"Release version">>, example => "5.0.0-beat.3-00000000"} + #{desc => <<"Release version">>, example => "5.0.0"} + )}, + {edition, + mk( + enum([community, enterprise]), + #{desc => <<"Release edition">>, example => "community"} )}, {sys_path, mk( diff --git a/apps/emqx_management/test/emqx_mgmt_api_nodes_SUITE.erl b/apps/emqx_management/test/emqx_mgmt_api_nodes_SUITE.erl index 4fb512ed0..e1a90f6cc 100644 --- a/apps/emqx_management/test/emqx_mgmt_api_nodes_SUITE.erl +++ b/apps/emqx_management/test/emqx_mgmt_api_nodes_SUITE.erl @@ -57,6 +57,11 @@ t_nodes_api(_) -> LocalNodeInfo = hd(NodesResponse), Node = binary_to_atom(maps:get(<<"node">>, LocalNodeInfo), utf8), ?assertEqual(Node, node()), + Edition = maps:get(<<"edition">>, LocalNodeInfo), + case emqx_release:edition() of + ee -> ?assertEqual(<<"enterprise">>, Edition); + ce -> ?assertEqual(<<"community">>, Edition) + end, NodePath = emqx_mgmt_api_test_util:api_path(["nodes", atom_to_list(node())]), {ok, NodeInfo} = emqx_mgmt_api_test_util:request_api(get, NodePath),