|
DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
|
This file is only included in the build when either ::HAVE_POSTGRESQL or ::HAVE_MYSQL are defined. More...
#include "nm_sql.h"#include <cace/ari/cbor.h>#include <cace/amm/typing.h>#include <cace/amm/semtype.h>#include <cace/util/logging.h>#include <cace/ari/text.h>#include <cace/ari/text_util.h>#include <string.h>#include <arpa/inet.h>#include <m-bstring.h>
Include dependency graph for nm_sql.c:Enumerations | |
| enum | db_con_t { DB_CTRL_CON , DB_RPT_CON , DB_REST_CON , MGR_NUM_SQL_CONNECTIONS } |
| enum | queries { ARI_RPTSET_INSERT , ARI_AGENT_INSERT , ARI_EXECSET_INSERT , REFDM_DB_LOG_MSG , MGR_NUM_QUERIES } |
Functions | |
| cace_ari_ac_t * | db_query_ac (size_t dbidx, int ac_id) |
| void | refdm_db_log_msg (const char *file, int line, const char *fun, int level, size_t dbidx, const char *format,...) |
| Utility function to insert debug or error informational messages into the database. | |
| uint32_t | refdm_db_mgt_init (refdm_db_t *parms, uint32_t clear, uint32_t log) |
| uint32_t | refdm_db_mgt_init_con (size_t idx, refdm_db_t *parms) |
| Initialize specified (thread-specific) SQL connection and prepared queries Prepared queries are connection specific. | |
| CACE_LOG_INFO ("refdm_db_mgt_init -->1") | |
| void | refdm_db_mgt_close (void) |
| void | refdm__db_mgt_close_conn (size_t idx) |
| int | refdm_db_mgt_connected (size_t idx) |
| va_start (args, format) | |
| m_string_init_vprintf (query, format, args) | |
| va_end (args) | |
| CACE_LOG_INFO ("-->%d", RET_PASS) | |
| int32_t | refdm_db_mgt_query_insert (int db_idx, uint32_t *idx, char *format,...) |
| static int | transform_cbor_str_to_cace_data (cace_ari_t *ari_item, char *cbor_str, char **errm) |
| Takes a C string and returns the corresponding cace_ari_t. | |
| refdm_agent_t * | refdm_db_fetch_agent (int32_t id) |
| int32_t | refdm_db_fetch_agent_idx (const char *eid) |
| Get the index of an Agent from its endpoint name. | |
| uint32_t | refdm_db_insert_rptset (const cace_ari_t *val, const refdm_agent_t *agent) |
| uint32_t | refdm_db_insert_agent (const m_string_t eid) |
| uint32_t | refdm_db_insert_execset (const cace_ari_t *val, const refdm_agent_t *agent) |
Variables | |
| const char * | TBL_NAME_RPTSET = "ari_rptset" |
| const char * | COL_NAME_REFERENCE_TIME = "reference_time" |
| const char * | COL_NAME_AGENT_ID = "agent_id" |
| const char * | COL_NAME_ARI_RPTSET_ID = "ari_rptset_id" |
| const char * | COL_NAME_REPORT_LIST = "report_list" |
| const char * | COL_NAME_REPORT_LIST_CBOR = "report_list_cbor" |
| const char * | COL_NAME_NONCE_INT = "nonce_int" |
| const char * | COL_NAME_NONCE_BYTES = "nonce_bytes" |
| static refdm_db_t * | gParms |
| static pthread_mutex_t | db_rest_con_use |
| return | |
| return | result |
| m_string_t | query |
| return | RET_PASS |
This file is only included in the build when either ::HAVE_POSTGRESQL or ::HAVE_MYSQL are defined.
| enum db_con_t |
| enum queries |
| CACE_LOG_INFO | ( | "-->%d" | , |
| RET_PASS | |||
| ) |
| CACE_LOG_INFO | ( | "refdm_db_mgt_init -->1" | ) |
| cace_ari_ac_t * db_query_ac | ( | size_t | dbidx, |
| int | ac_id | ||
| ) |
| m_string_init_vprintf | ( | query | , |
| format | , | ||
| args | |||
| ) |
Referenced by refdm_db_mgt_query_insert().
| void refdm__db_mgt_close_conn | ( | size_t | idx | ) |
References MGR_NUM_QUERIES.
Referenced by refdm_db_mgt_close().
| refdm_agent_t * refdm_db_fetch_agent | ( | int32_t | id | ) |
References CACE_LOG_ERR, CACE_LOG_INFO, DB_REST_CON, refdm_agent_init(), result, and RET_PASS.
| int32_t refdm_db_fetch_agent_idx | ( | const char * | eid | ) |
Get the index of an Agent from its endpoint name.
| [in] | sender | The agent EID. |
References CACE_FREE, CACE_LOG_ERR, CACE_LOG_INFO, CACE_MALLOC, DB_REST_CON, DB_RPT_CON, result, and RET_PASS.
Referenced by agentsGetHandler(), agentShowHexReports(), agentShowTextReports(), and refdm_mgr_clear_reports().
| uint32_t refdm_db_insert_agent | ( | const m_string_t | eid | ) |
| eid | agent eid being added |
| status | Set to 0 if parsing fails, but not modified on success |
References ARI_AGENT_INSERT, CACE_LOG_INFO, and DB_RPT_CON.
Referenced by refdm_mgr_agent_add().
| uint32_t refdm_db_insert_execset | ( | const cace_ari_t * | val, |
| const refdm_agent_t * | agent | ||
| ) |
References agent, ARI_EXECSET_INSERT, cace_ari_cbor_encode(), cace_ari_cget_execset(), CACE_ARI_TEXT_ENC_OPTS_DEFAULT, cace_ari_text_encode(), cace_data_deinit(), cace_data_init(), CACE_DATA_INIT_NULL, CACE_LOG_DEBUG, cace_log_is_enabled_for(), DB_RPT_CON, cace_data_t::len, cace_ari_execset_t::nonce, cace_data_t::ptr, and cace_ari_execset_t::targets.
Referenced by agentSendItems().
| uint32_t refdm_db_insert_rptset | ( | const cace_ari_t * | val, |
| const refdm_agent_t * | agent | ||
| ) |
| val | Report |
| agent | agent table set being inserted in |
| status | Set to 0 if parsing fails, but not modified on success |
References agent, ARI_RPTSET_INSERT, cace_ari_cbor_encode(), cace_ari_cget_rptset(), cace_ari_get_tp(), CACE_ARI_TEXT_ENC_OPTS_DEFAULT, cace_ari_text_encode(), cace_data_deinit(), cace_data_init(), CACE_DATA_INIT_NULL, CACE_LOG_DEBUG, CACE_LOG_ERR, CACE_LOG_INFO, cace_log_is_enabled_for(), cace_utctime_encode(), DB_RPT_CON, cace_data_t::len, cace_ari_rptset_t::nonce, cace_data_t::ptr, and cace_ari_rptset_t::reftime.
Referenced by handle_recv().
| void refdm_db_log_msg | ( | const char * | filename, |
| int | lineno, | ||
| const char * | funcname, | ||
| int | level, | ||
| size_t | dbidx, | ||
| const char * | format, | ||
| ... | |||
| ) |
Utility function to insert debug or error informational messages into the database.
NOTE: If operating within a transaction, caller is responsible for committing transaction.
References MGR_NUM_SQL_CONNECTIONS, REFDM_DB_LOG_MSG, va_end(), and va_start().
| void refdm_db_mgt_close | ( | void | ) |
References CACE_LOG_INFO, db_rest_con_use, MGR_NUM_SQL_CONNECTIONS, and refdm__db_mgt_close_conn().
Referenced by refdm_mgr_deinit().
| int refdm_db_mgt_connected | ( | size_t | idx | ) |
References DB_LOG_INFO, DB_RPT_CON, gParms, refdm_db_mgt_init_con(), result, and SQL_CONN_TRIES.
Referenced by refdm_db_mgt_query_insert().
| uint32_t refdm_db_mgt_init | ( | refdm_db_t * | parms, |
| uint32_t | clear, | ||
| uint32_t | log | ||
| ) |
References CACE_LOG_INFO, DB_CTRL_CON, DB_REST_CON, db_rest_con_use, DB_RPT_CON, and refdm_db_mgt_init_con().
Referenced by refdm_mgr_init().
| uint32_t refdm_db_mgt_init_con | ( | size_t | idx, |
| refdm_db_t * | parms | ||
| ) |
Initialize specified (thread-specific) SQL connection and prepared queries Prepared queries are connection specific.
While we may not use all prepared statements for all connections, initializing the same sets everywhere simplifies management.
References ARI_AGENT_INSERT, ARI_EXECSET_INSERT, ARI_RPTSET_INSERT, CACE_LOG_INFO, CACE_LOG_WARNING, gParms, and REFDM_DB_LOG_MSG.
Referenced by refdm_db_mgt_connected(), and refdm_db_mgt_init().
| int32_t refdm_db_mgt_query_insert | ( | int | db_idx, |
| uint32_t * | idx, | ||
| char * | format, | ||
| ... | |||
| ) |
References CACE_LOG_ERR, CACE_LOG_INFO, errm, m_string_init_vprintf(), query, refdm_db_mgt_connected(), va_end(), and va_start().
|
static |
Takes a C string and returns the corresponding cace_ari_t.
RET_PASS on success otherwise RET_FAIL_* on failure.| [out] | ari_item | The ARI to decode into. |
| [in] | cbor_str | The string to decode from. |
| [out] | errm | If non-null, this will be set to a specific error message associated with any failure. When the return code is non-zero, if the pointed-to pointer is non-null it must be freed using CACE_FREE(). |
References cace_ari_cbor_decode(), cace_data_deinit(), cace_data_init_view(), errm, RET_FAIL_UNEXPECTED, and RET_PASS.
| va_end | ( | args | ) |
Referenced by cace_log(), refdm_db_log_msg(), and refdm_db_mgt_query_insert().
| va_start | ( | args | , |
| format | |||
| ) |
Referenced by cace_log(), refdm_db_log_msg(), and refdm_db_mgt_query_insert().
| const char* COL_NAME_AGENT_ID = "agent_id" |
| const char* COL_NAME_ARI_RPTSET_ID = "ari_rptset_id" |
| const char* COL_NAME_NONCE_BYTES = "nonce_bytes" |
| const char* COL_NAME_NONCE_INT = "nonce_int" |
| const char* COL_NAME_REFERENCE_TIME = "reference_time" |
| const char* COL_NAME_REPORT_LIST = "report_list" |
| const char* COL_NAME_REPORT_LIST_CBOR = "report_list_cbor" |
|
static |
Referenced by refdm_db_mgt_close(), and refdm_db_mgt_init().
|
static |
Referenced by refdm_db_mgt_connected(), and refdm_db_mgt_init_con().
| m_string_t query |
Referenced by refdm_db_mgt_query_insert().
| return result |
Referenced by ari_numeric_add(), bp_recv_worker(), bp_send_worker(), builtin_bool_convert(), builtin_real32_convert(), builtin_real64_convert(), builtin_time_convert(), cace_amm_ari_is_truthy(), cace_amm_numeric_promote_type(), cace_amp_proxy_cli_recv(), cace_amp_proxy_cli_send(), cace_amp_proxy_msg_recv(), cace_amp_proxy_msg_send(), cace_ari_equal(), cace_numeric_binary_comparison_operator(), cace_numeric_binary_operator(), cace_numeric_integer_binary_operator(), check_execute(), check_lookup(), refda_adm_ietf_alarms_ctrl_compress_alarms(), refda_adm_ietf_alarms_ctrl_purge_alarms(), refda_adm_ietf_alarms_ctrl_set_alarms_manager_state(), refda_adm_ietf_alarms_edd_alarm_list(), refda_adm_ietf_alarms_edd_category_inventory(), refda_adm_ietf_alarms_edd_resource_inventory(), refda_adm_ietf_dtnma_agent_acl_edd_access_list(), refda_adm_ietf_dtnma_agent_acl_edd_current_groups(), refda_adm_ietf_dtnma_agent_acl_edd_group_list(), refda_adm_ietf_dtnma_agent_ctrl_catch(), refda_adm_ietf_dtnma_agent_ctrl_if_then_else(), refda_adm_ietf_dtnma_agent_ctrl_wait_cond_check(), refda_adm_ietf_dtnma_agent_edd_capability(), refda_adm_ietf_dtnma_agent_edd_const_list(), refda_adm_ietf_dtnma_agent_edd_exec_running(), refda_adm_ietf_dtnma_agent_edd_last_msg_rx_time(), refda_adm_ietf_dtnma_agent_edd_num_exec_failed(), refda_adm_ietf_dtnma_agent_edd_num_exec_started(), refda_adm_ietf_dtnma_agent_edd_num_exec_succeeded(), refda_adm_ietf_dtnma_agent_edd_num_msg_rx(), refda_adm_ietf_dtnma_agent_edd_num_msg_rx_failed(), refda_adm_ietf_dtnma_agent_edd_num_msg_tx(), refda_adm_ietf_dtnma_agent_edd_num_msg_tx_failed(), refda_adm_ietf_dtnma_agent_edd_odm_list(), refda_adm_ietf_dtnma_agent_edd_sbr_list(), refda_adm_ietf_dtnma_agent_edd_sw_vendor(), refda_adm_ietf_dtnma_agent_edd_sw_version(), refda_adm_ietf_dtnma_agent_edd_tbr_list(), refda_adm_ietf_dtnma_agent_edd_typedef_list(), refda_adm_ietf_dtnma_agent_edd_var_list(), refda_adm_ietf_dtnma_agent_oper_add(), refda_adm_ietf_dtnma_agent_oper_bit_and(), refda_adm_ietf_dtnma_agent_oper_bit_not(), refda_adm_ietf_dtnma_agent_oper_bit_or(), refda_adm_ietf_dtnma_agent_oper_bit_xor(), refda_adm_ietf_dtnma_agent_oper_bool_and(), refda_adm_ietf_dtnma_agent_oper_bool_not(), refda_adm_ietf_dtnma_agent_oper_bool_or(), refda_adm_ietf_dtnma_agent_oper_bool_xor(), refda_adm_ietf_dtnma_agent_oper_compare_eq(), refda_adm_ietf_dtnma_agent_oper_compare_ge(), refda_adm_ietf_dtnma_agent_oper_compare_gt(), refda_adm_ietf_dtnma_agent_oper_compare_le(), refda_adm_ietf_dtnma_agent_oper_compare_lt(), refda_adm_ietf_dtnma_agent_oper_compare_ne(), refda_adm_ietf_dtnma_agent_oper_divide(), refda_adm_ietf_dtnma_agent_oper_multiply(), refda_adm_ietf_dtnma_agent_oper_negate(), refda_adm_ietf_dtnma_agent_oper_remainder(), refda_adm_ietf_dtnma_agent_oper_sub(), refda_adm_ietf_dtnma_agent_oper_tbl_filter(), refda_eval_condition(), refda_eval_target(), refda_exec_check_sbr_condition(), refda_exec_proc_expand(), refda_exec_run_sbr(), refda_exec_sbr_enable(), refda_exec_schedule_sbr(), refda_exec_schedule_tbr(), refda_exec_tbr_enable(), refda_reporting_ctrl(), refdm_db_fetch_agent(), refdm_db_fetch_agent_idx(), refdm_db_mgt_connected(), TEST_CASE(), test_refda_eval_target_failure(), test_reporting_edd_int(), test_reporting_edd_one_int(), timespec_numeric_add(), timespec_numeric_div(), timespec_numeric_mul(), and timespec_numeric_sub().
| return RET_PASS |
Referenced by refdm_db_fetch_agent(), refdm_db_fetch_agent_idx(), and transform_cbor_str_to_cace_data().
| return |
| const char* TBL_NAME_RPTSET = "ari_rptset" |