%%%-------------------------------------------------------------------
|
%%% @author bsk
|
%%% @copyright (C) 2018, <COMPANY>
|
%%% @doc
|
%%%
|
%%% @end
|
%%% Created : 12. 十一月 2018 下午5:35
|
%%%-------------------------------------------------------------------
|
-module(clusterInfo).
|
-author("bsk").
|
|
-record(cluster_info, {cluster_id, cluster_name, create_time, update_time, create_by}).
|
|
-include_lib("stdlib/include/ms_transform.hrl").
|
-include_lib("stdlib/include/qlc.hrl").
|
|
%% API
|
%%% 创建,增,删,改,查
|
-export([create_ClusterInfoTable/2, add_ClusterInfo/2, del_ClusterInfo/1, findClusterInfo/1, findClusterInfo/2]).
|
%%% 集群信息,数据格式转换
|
-export([clusterInfoList2Maps/1]).
|
|
%%% 创建集群信息表
|
%%% 应仅在集群初始化的时候调用一次
|
create_ClusterInfoTable(Nodes, TableName) ->
|
Ret = mnesia:create_table(TableName,
|
[{disc_copies, Nodes},
|
{attributes,
|
record_info(fields, cluster_info)}
|
]),
|
io:format("create_ClusterInfoTable Ret=~p~n", [Ret]),
|
%% todo
|
%% syncTool:changeTableConfig(Nodes, TableName),
|
%% mnesia:change_table_copy_type(TableName, node(), disc_copies),
|
Ret.
|
|
|
%%% 增加集群信息
|
%%%
|
%%% @CluId 集群id
|
%%% @CluName 集群名称
|
add_ClusterInfo(CluId, CluName) ->
|
CreateTime = syncTool:getTimeStr(),
|
UpdateTime = syncTool:getTimeStr(),
|
CreateUser = node(),
|
F = fun() ->
|
mnesia:write(#cluster_info{cluster_id = CluId, cluster_name = CluName, create_time = CreateTime,
|
update_time = UpdateTime, create_by = CreateUser})
|
end,
|
mnesia:activity(transaction, F).
|
|
%%% 物理删除
|
del_ClusterInfo(CluId) ->
|
mnesia:transaction(
|
fun() ->
|
mnesia:delete({cluster_info, CluId})
|
end).
|
|
%%% 查询集群信息
|
%%% @TableName 表名
|
%%% @Expertise 约束条件的值
|
findClusterInfo(TableName, Expertise) ->
|
F = fun() ->
|
qlc:eval(qlc:q([{CluId, CluName, CreateTime, UpdateTime, CreateUser}
|
|| #cluster_info{cluster_id = CluId, cluster_name = CluName, create_time = CreateTime, update_time = UpdateTime,
|
create_by = CreateUser}
|
<- mnesia:table(TableName), CluId =:= Expertise]))
|
end,
|
mnesia:activity(transaction, F).
|
|
|
findClusterInfo(TableName) ->
|
F = fun() ->
|
qlc:eval(qlc:q([{CluId, CluName, CreateTime, UpdateTime, CreateUser}
|
|| #cluster_info{cluster_id = CluId, cluster_name = CluName, create_time = CreateTime, update_time = UpdateTime,
|
create_by = CreateUser}
|
<- mnesia:table(TableName)]))
|
end,
|
mnesia:activity(transaction, F).
|
|
|
%%% 集群信息list转map转list
|
clusterInfoList2Maps([]) ->
|
[];
|
clusterInfoList2Maps(_ExpertiseList = [Info | T]) ->
|
TemMaps = #{"cluster_id" => element(1, Info), "cluster_name" => element(2, Info), "create_time" => element(3, Info),
|
"update_time" => element(4, Info), "create_by" => element(5, Info)
|
% -record(cluster_info, {cluster_id, cluster_name, create_time, update_time, create_by}).
|
},
|
[maps:to_list(TemMaps) | clusterInfoList2Maps(T)].
|