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;