#ifndef __INCLUDE_ALARM_H__ #define __INCLUDE_ALARM_H__ /* * Copyright (c) 2016-2017, 2024 Wind River Systems, Inc. * * SPDX-License-Identifier: Apache-2.0 * */ /** * @file * Wind River Titanium Cloud Maintenance Alarm Service Header */ #include "nodeBase.h" #include "nodeUtil.h" /* for ... common utilities */ #include "alarmUtil.h" /* for ... common alarm definitions */ #include "msgClass.h" /* for ... msgClassSock type definition */ /* external APIs */ #include "fmAPI.h" #define MAX_ALARM_REQ_PER_MSG (4) #define MAX_ALARM_REQ_MSG_SIZE (500) #define MAX_ALARM_REQ_SIZE (MAX_ALARM_REQ_PER_MSG*MAX_ALARM_REQ_MSG_SIZE) /** Heartbeat Alarm Abstract Reference IDs */ typedef enum { HBS_ALARM_ID__HB_MGMNT = 0, HBS_ALARM_ID__HB_CLSTR = 1, HBS_ALARM_ID__PMOND = 2, HBS_ALARM_ID__SERVICE = 3, HBS_ALARM_ID__LAST = 4, } alarm_id_enum ; string alarmUtil_getId_str ( alarm_id_enum alarm_id_num ); int alarmUtil_getId_enum ( string alarm_id_str, alarm_id_enum & alarm_id_num ); /** Converts FM severity to representative string */ string alarmUtil_getSev_str ( EFmAlarmSeverityT severity ); EFmAlarmSeverityT alarmUtil_getSev_enum ( string severity ); #ifndef __MODULE_PRIVATE__ int alarm_register_user ( msgClassSock * sock_ptr ); void alarm_unregister_user ( void ); /* Public API */ int alarm_ ( string hostname, const char * id, EFmAlarmStateT state, EFmAlarmSeverityT severity, const char * entity, string prefix ); int alarm_clear ( string hostname, const char * id_ptr, string entity ); int alarm_warning ( string hostname, const char * id_ptr, string entity ); int alarm_minor ( string hostname, const char * id_ptr, string entity ); int alarm_major ( string hostname, const char * id_ptr, string entity ); int alarm_critical ( string hostname, const char * id_ptr, string entity ); int alarm_critical_log ( string hostname, const char * id_ptr, string entity ); int alarm_major_log ( string hostname, const char * id_ptr, string entity ); int alarm_minor_log ( string hostname, const char * id_ptr, string entity ); int alarm_warning_log ( string hostname, const char * id_ptr, string entity, string prefix ); int alarm_log ( string hostname, const char * id_ptr, string entity ); #else typedef struct { string alarmid ; string hostname ; string operation ; string severity ; string entity ; string prefix ; FMTimeT timestamp ; } queue_entry_type; #define MAX_FAILED_B2B_RECEIVES_B4_RESTART (5) /* Test Commandss * STR="{\"mtcalarm\":[{\"alarmid\":\"200.009\",\"hostname\":\"compute-3\",\"operation\":\"clear\",\"severity\":\"clear\",\"entity\":\"cluster-host\",\"prefix\":\"service=heartbeat\"}, {\"alarmid\":\"200.005\",\"hostname\":\"compute-3\",\"operation\":\"set\",\"severity\":\"major\",\"entity\":\"Management\",\"prefix\":\"service=heartbeat\"}]}" PROTOCOL="UDP4-DATAGRAM" ADDRESS="127.0.0.1" port="2122" echo "${STR}" | socat - ${PROTOCOL}:${ADDRESS}:${port} */ #define MTCALARM_REQ_LABEL ((const char *)"mtcalarm") #define MTCALARM_REQ_KEY__OPERATION ((const char *)"operation") #define MTCALARM_REQ_KEY__HOSTNAME ((const char *)"hostname") #define MTCALARM_REQ_KEY__ALARMID ((const char *)"alarmid") #define MTCALARM_REQ_KEY__SEVERITY ((const char *)"severity") #define MTCALARM_REQ_KEY__ENTITY ((const char *)"entity") #define MTCALARM_REQ_KEY__PREFIX ((const char *)"prefix") /* in alarmData.cpp */ void alarmData_init ( void ); alarmUtil_type * alarmData_getAlarm_ptr ( string alarm_id_str ); /* in alarmHdlr.cpp */ int alarmHdlr_request_handler ( char * msg_ptr ); void alarmMgr_queue_clear ( void ); void alarmMgr_queue_alarm (queue_entry_type entry); void alarmMgr_service_queue(void); int alarmUtil_clear ( string hostname, string alarm_id, string entity ); int alarmUtil_critical ( string hostname, string alarm_id, string entity, FMTimeT & timestamp ); int alarmUtil_major ( string hostname, string alarm_id, string entity, FMTimeT & timestamp ); int alarmUtil_minor ( string hostname, string alarm_id, string entity, FMTimeT & timestamp ); int alarmUtil_warning ( string hostname, string alarm_id, string entity, FMTimeT & timestamp ); int alarmUtil_critical_log ( string hostname, string alarm_id, string entity, FMTimeT & timestamp ); int alarmUtil_major_log ( string hostname, string alarm_id, string entity, FMTimeT & timestamp ); int alarmUtil_minor_log ( string hostname, string alarm_id, string entity, FMTimeT & timestamp ); int alarmUtil_warning_log ( string hostname, string alarm_id, string entity, string prefix, FMTimeT & timestamp ); #endif // _MODULE_PRIVATE_ #endif // __INCLUDE_ALARM_H__