diff --git a/fm-common/sources/fmDbAlarm.cpp b/fm-common/sources/fmDbAlarm.cpp index 9daa11e6..1a09fe56 100644 --- a/fm-common/sources/fmDbAlarm.cpp +++ b/fm-common/sources/fmDbAlarm.cpp @@ -469,6 +469,20 @@ bool CFmDbAlarmOperation::get_all_history_alarms(CFmDBSession &sess, SFmAlarmDat bool CFmDbAlarmOperation::add_alarm_history(CFmDBSession &sess, SFmAlarmDataT &a, bool set){ + std::string sql; + std::string query; + + FM_DB_UT_NAME_VAL(query, FM_ALARM_COLUMN_UUID, a.uuid); + fm_db_util_build_sql_query((const char*)FM_EVENT_LOG_TABLE_NAME, query.c_str(), sql); + + fm_db_result_t result; + if (sess.query(sql.c_str(), result)){ + if (result.size() > 0){ + FM_DEBUG_LOG("Generate new uuid for the event of an updated alarm\n"); + fm_uuid_create(a.uuid); + } + } + if (set){ a.alarm_state = (a.alarm_state == FM_ALARM_STATE_CLEAR) ? FM_ALARM_STATE_SET : a.alarm_state; @@ -509,7 +523,6 @@ bool CFmDbAlarmOperation::add_alarm_history(CFmDBSession &sess, } int id =0; - std::string sql; if (false == fm_db_util_get_next_log_id(sess, id)) { return false; diff --git a/fm-common/sources/fmDbUtils.cpp b/fm-common/sources/fmDbUtils.cpp index dc917498..0797b22b 100644 --- a/fm-common/sources/fmDbUtils.cpp +++ b/fm-common/sources/fmDbUtils.cpp @@ -229,6 +229,7 @@ bool fm_db_util_build_sql_insert(const char* db_table, sprintf(str,"$%lu::int,", ++i); } else if ((it->first == FM_ALARM_COLUMN_CREATED_AT) || (it->first == FM_ALARM_COLUMN_TIMESTAMP)){ + FM_INFO_LOG("insert ***(%s).... (%s)",it->first.c_str(), it->second.c_str()); params.param_values.push_back(it->second.c_str()); params.param_lengths.push_back(strlen(it->second.c_str())); params.param_format.push_back(0); @@ -399,6 +400,7 @@ bool fm_db_util_build_sql_update(const char* db_table, if ((it->first == FM_ALARM_COLUMN_UPDATED_AT) || (it->first == FM_ALARM_COLUMN_TIMESTAMP)){ + FM_INFO_LOG("update ***(%s).... (%s)",it->first.c_str(), it->second.c_str()); params.param_values.push_back(it->second.c_str()); params.param_lengths.push_back(strlen(it->second.c_str())); params.param_format.push_back(0); diff --git a/fm-common/sources/fm_python_mod_main.cpp b/fm-common/sources/fm_python_mod_main.cpp index 40a83017..bd9c2000 100644 --- a/fm-common/sources/fm_python_mod_main.cpp +++ b/fm-common/sources/fm_python_mod_main.cpp @@ -73,6 +73,7 @@ static PyObject * _fm_set(PyObject * self, PyObject *args) { const char *alm_str; EFmErrorT rc; + if (!PyArg_ParseTuple(args, "s", &alm_str)) { ERROR_LOG("Failed to parse args."); Py_RETURN_NONE; @@ -83,7 +84,6 @@ static PyObject * _fm_set(PyObject * self, PyObject *args) { ERROR_LOG("Failed to convert string to alarm."); Py_RETURN_NONE; } - rc = fm_set_fault(&alm_data, &tmp_uuid); if (rc == FM_ERR_OK) { return PyUnicode_FromString(&(tmp_uuid[0]));