ソースを参照

Merge pull request #8890 from zhongwencool/add-edition-to-nodes-api

feat: add edition info to /nodes api
zhongwencool 3 年 前
コミット
f6e55a5f7b

+ 5 - 0
apps/emqx/src/emqx_release.erl

@@ -18,6 +18,7 @@
 
 -export([
     edition/0,
+    edition_longstr/0,
     description/0,
     version/0
 ]).
@@ -44,8 +45,12 @@ description() ->
 -spec edition() -> ce | ee.
 -ifdef(EMQX_RELEASE_EDITION).
 edition() -> ?EMQX_RELEASE_EDITION.
+
+edition_longstr() -> <<"Enterprise">>.
 -else.
 edition() -> ce.
+
+edition_longstr() -> <<"Opensource">>.
 -endif.
 
 %% @doc Return the release version.

+ 1 - 1
apps/emqx_machine/src/emqx_machine.app.src

@@ -3,7 +3,7 @@
     {id, "emqx_machine"},
     {description, "The EMQX Machine"},
     % strict semver, bump manually!
-    {vsn, "0.1.0"},
+    {vsn, "0.1.1"},
     {modules, []},
     {registered, []},
     {applications, [kernel, stdlib]},

+ 3 - 2
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) ->

+ 1 - 0
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 => emqx_release:edition_longstr(),
         role => mria_rlog:role()
     }.
 

+ 6 - 1
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(['Opensource', 'Enterprise']),
+                #{desc => <<"Release edition">>, example => "Opensource"}
             )},
         {sys_path,
             mk(

+ 2 - 0
apps/emqx_management/test/emqx_mgmt_api_nodes_SUITE.erl

@@ -57,6 +57,8 @@ t_nodes_api(_) ->
     LocalNodeInfo = hd(NodesResponse),
     Node = binary_to_atom(maps:get(<<"node">>, LocalNodeInfo), utf8),
     ?assertEqual(Node, node()),
+    Edition = maps:get(<<"edition">>, LocalNodeInfo),
+    ?assertEqual(emqx_release:edition_longstr(), Edition),
 
     NodePath = emqx_mgmt_api_test_util:api_path(["nodes", atom_to_list(node())]),
     {ok, NodeInfo} = emqx_mgmt_api_test_util:request_api(get, NodePath),