Skip to content
Snippets Groups Projects
Commit e2e0a3e3 authored by pavel.uhanov's avatar pavel.uhanov
Browse files

[*] add cmd id enum

parent d4ffd61a
No related branches found
No related tags found
1 merge request!2120Draft: feature-15728
Pipeline #52330 failed with stage
in 35 minutes and 34 seconds
......@@ -65,7 +65,9 @@ int dap_chain_node_cli_init(dap_config_t * g_config)
s_debug_cli = dap_config_get_item_bool_default(g_config, "cli-server", "debug-cli", false);
if ( dap_cli_server_init(s_debug_cli, "cli-server") )
return log_it(L_ERROR, "Can't init CLI server!"), -1;
dap_chain_node_rpc_init(g_config);
if (dap_config_get_item_bool_default(g_config, "rpc", "enabled", false)) {
dap_chain_node_rpc_init(g_config);
}
dap_cli_server_cmd_add("global_db", com_global_db, "Work with global database",
"global_db flush\n"
......
......@@ -23,6 +23,7 @@
#include "dap_global_db.h"
#include "dap_global_db_cluster.h"
#include "dap_stream.h"
#include "dap_cli_server.h"
#define LOG_TAG "dap_chain_node_rpc"
#define DAP_CHAIN_NODE_RPC_STATES_INFO_CURRENT_VERSION 1
......@@ -49,6 +50,11 @@ DAP_STATIC_INLINE s_get_role_from_str(const char *a_str)
return RPC_ROLE_INVALID;
}
static void s_collect_state_info(int16_t a_cmd_num, bool a_start_measure)
{
}
/**
* @brief get states info about current
* @param a_arg - pointer to callback arg
......@@ -59,6 +65,7 @@ static void s_update_node_rpc_states_info(UNUSED_ARG void *a_arg)
l_info->version = DAP_CHAIN_NODE_RPC_STATES_INFO_CURRENT_VERSION;
l_info->address.uint64 = g_node_addr.uint64;
l_info->links_count = dap_stream_get_links_count();
l_info->cli_thread_count = dap_cli_get_cmd_thread_count();
sysinfo(&l_info->sysinfo);
const char *l_node_addr_str = dap_stream_node_addr_to_str_static(l_info->address);
......@@ -85,10 +92,14 @@ void dap_chain_node_rpc_init(dap_config_t *a_cfg)
log_it(L_ERROR, "Can't create rpc server states cluster");
return;
}
if (l_role == RPC_ROLE_SERVER && dap_proc_thread_timer_add(NULL, s_update_node_rpc_states_info, NULL, s_timer_update_states_info))
log_it(L_ERROR, "Can't activate timer on node states update");
if (l_role == RPC_ROLE_SERVER) {
if (dap_proc_thread_timer_add(NULL, s_update_node_rpc_states_info, NULL, s_timer_update_states_info))
log_it(L_ERROR, "Can't activate timer on node states update");
else
dap_cli_server_statistic_callback_add(s_collect_state_info);
}
}
if (l_role == RPC_ROLE_ROOT || l_role == RPC_ROLE_BALANCER) {
if (l_role != RPC_ROLE_INVALID) {
if (!(s_rpc_node_list_cluster = dap_global_db_cluster_add(
dap_global_db_instance_get_default(), DAP_STREAM_CLUSTER_GLOBAL,
*(dap_guuid_t *)&uint128_0, s_rpc_node_list_group,
......@@ -213,5 +224,7 @@ dap_list_t *dap_chain_node_rpc_get_sorted_list(size_t *a_count)
}
l_ret = dap_list_insert_sorted(l_ret, (void *)l_node_info_curr, s_rpc_node_cmp);
}
if (a_count)
*a_count = l_count;
return l_ret;
}
\ No newline at end of file
......@@ -36,6 +36,56 @@
extern "C" {
#endif
typedef enum dap_chain_node_cli_cmd {
DAP_CHAIN_NODE_CLI_CMD_ID_EXIT,
DAP_CHAIN_NODE_CLI_CMD_ID_TX_HISTORY,
DAP_CHAIN_NODE_CLI_CMD_ID_WALLET,
DAP_CHAIN_NODE_CLI_CMD_ID_MEMPOOL,
DAP_CHAIN_NODE_CLI_CMD_ID_LEDGER,
DAP_CHAIN_NODE_CLI_CMD_ID_TX_CREATE,
DAP_CHAIN_NODE_CLI_CMD_ID_TX_CREATE_JSON,
DAP_CHAIN_NODE_CLI_CMD_ID_TX_VERIFY,
DAP_CHAIN_NODE_CLI_CMD_ID_TX_COND_CREATE,
DAP_CHAIN_NODE_CLI_CMD_ID_TX_COND_REMOVE,
DAP_CHAIN_NODE_CLI_CMD_ID_TX_COND_UNSPENT_FIND,
DAP_CHAIN_NODE_CLI_CMD_ID_CHAIN_CA_COPY,
DAP_CHAIN_NODE_CLI_CMD_ID_DAG,
DAP_CHAIN_NODE_CLI_CMD_ID_DAG_POA,
DAP_CHAIN_NODE_CLI_CMD_ID_BLOCK,
DAP_CHAIN_NODE_CLI_CMD_ID_TOKEN,
DAP_CHAIN_NODE_CLI_CMD_ID_ESBOCS,
DAP_CHAIN_NODE_CLI_CMD_ID_GLOBAL_DB,
DAP_CHAIN_NODE_CLI_CMD_ID_NET_SRV,
DAP_CHAIN_NODE_CLI_CMD_ID_NET,
DAP_CHAIN_NODE_CLI_CMD_ID_SRV_STAKE,
DAP_CHAIN_NODE_CLI_CMD_ID_SRV_DATUM,
DAP_CHAIN_NODE_CLI_CMD_ID_POLL,
DAP_CHAIN_NODE_CLI_CMD_ID_SRV_XCHANGE,
DAP_CHAIN_NODE_CLI_CMD_ID_EMIT_DELEGATE,
DAP_CHAIN_NODE_CLI_CMD_ID_TOKEN_DECL,
DAP_CHAIN_NODE_CLI_CMD_ID_TOKEN_UPDATE,
DAP_CHAIN_NODE_CLI_CMD_ID_TOKEN_UPDATE_SIGN,
DAP_CHAIN_NODE_CLI_CMD_ID_TOKEN_DECL_SIGN,
DAP_CHAIN_NODE_CLI_CMD_ID_CHAIN_CA_PUB,
DAP_CHAIN_NODE_CLI_CMD_ID_TOKEN_EMIT,
DAP_CHAIN_NODE_CLI_CMD_ID_FIND,
DAP_CHAIN_NODE_CLI_CMD_ID_VERSION,
DAP_CHAIN_NODE_CLI_CMD_ID_REMOVE,
DAP_CHAIN_NODE_CLI_CMD_ID_GDB_IMPORT,
DAP_CHAIN_NODE_CLI_CMD_ID_GDB_EXPORT,
DAP_CHAIN_NODE_CLI_CMD_ID_STATS,
DAP_CHAIN_NODE_CLI_CMD_ID_PRINT_LOG,
DAP_CHAIN_NODE_CLI_CMD_ID_STAKE_LOCK,
DAP_CHAIN_NODE_CLI_CMD_ID_EXEC_CMD,
DAP_CHAIN_NODE_CLI_CMD_ID_POLICY,
DAP_CHAIN_NODE_CLI_CMD_ID_DECREE,
DAP_CHAIN_NODE_CLI_CMD_ID_NODE,
DAP_CHAIN_NODE_CLI_CMD_ID_VPN_STAT,
DAP_CHAIN_NODE_CLI_CMD_ID_VPN_CLIENT,
DAP_CHAIN_NODE_CLI_CMD_ID_HELP,
DAP_CHAIN_NODE_CLI_CMD_ID_TOTAL
} dap_chain_node_cli_cmd_t;
/**
* Initialization of the server side of the interaction
* with the console kelvin-node-cli
......
......@@ -29,9 +29,16 @@
uint32_t links_count;
uint32_t cli_thread_count;
struct sysinfo sysinfo;
uint32_t cmd_data_size;
uint8_t cmd_data[];
} DAP_ALIGN_PACKED dap_chain_node_rpc_states_info_t;
void dap_chain_node_rpc_init(dap_config_t *a_cfg);
bool dap_chain_node_rpc_is_my_node_authorized();
int dap_chain_node_rpc_info_save(dap_chain_node_info_t *a_node_info);
dap_string_t *dap_chain_node_rpc_list();
\ No newline at end of file
dap_string_t *dap_chain_node_rpc_list();
DAP_STATIC_INLINE size_t dap_chain_node_rpc_get_states_info_size(dap_chain_node_rpc_states_info_t *a_info)
{
return a_info ? sizeof(dap_chain_node_rpc_states_info_t) + a_info->cmd_data_size : 0;
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment