{
/* Fill cell up parameters */
snprintf (alrm.additionalText, sizeof(alrm.additionalText), \
- "cell id [%d] is up",cellId);
- strcpy(alrm.additionalInfo , "cell UP");
+ "CELL %d UP",cellId);
+ strcpy(alrm.additionalInfo , "CELL UP");
strcpy(alrm.specificProblem, "Active");
strcpy(alrm.alarmRaiseTime, buff);
}
clearCellAlrm(CELL_UP_ALARM_ID);
/* Fill the cell down parameters */
snprintf (alrm.additionalText, sizeof(alrm.additionalText), \
- "cell [%d] is down",cellId);
- strcpy(alrm.additionalInfo , "cell down");
+ "CELL %d DOWN",cellId);
+ strcpy(alrm.additionalInfo , "CELL DOWN");
strcpy(alrm.specificProblem, "Active");
strcpy(alrm.alarmRaiseTime, buff);
}
return os.str();
}
+/*******************************************************************
+ *
+ * @brief Returns Event Severity String
+ *
+ * @details
+ *
+ * Function :getEventSeverity
+ *
+ * Functionality:
+ * - Returns Event Severity String
+ *
+ * @params[in] IN - int severity
+ * @return value of string - success
+ * empty string - failure
+ *
+ * ****************************************************************/
+
+std::string CellStateChange::getEventSeverity(int severity) {
+ string str;
+ switch(severity)
+ {
+ case 3:
+ str = "CRITICAL";
+ break;
+ case 4:
+ str = "MAJOR";
+ break;
+ case 5:
+ str = "MINOR";
+ break;
+ case 6:
+ str = "WARNING";
+ break;
+ default:
+ str = "MAJOR";
+ break;
+ }
+ return str;
+
+
+}
+
/*******************************************************************
*
* @brief prepare CellStateChange Fields
* ****************************************************************/
bool CellStateChange::prepareEventFields(const Message* msg) {
- const Alarm* alrm = dynamic_cast<const Alarm*> (msg);
- if(!alrm) {
+ const Alarm* alarm = dynamic_cast<const Alarm*> (msg);
+ if(!alarm) {
O1_LOG("\nO1 CellStateChange : Casting failed in prepareEventFields");
return false;
}
if(JsonHelper::addNodeToObject(faultFields, "faultFieldsVersion", FAULT_FIELDS_VERSION) == 0) {
ret = false;
}
- if(JsonHelper::addNodeToObject(faultFields, "alarmCondition", ALARM_CONDITION) == 0) {
+ if(JsonHelper::addNodeToObject(faultFields, "alarmCondition", alarm->getAdditionalInfo().c_str()) == 0) {
ret = false;
}
if(JsonHelper::addNodeToObject(faultFields, "alarmInterfaceA", ALARM_INTERFACE_A) == 0) {
ret = false;
}
- if(JsonHelper::addNodeToObject(faultFields, "eventSourceType", EVENT_SOURCE_TYPE) == 0) {
+ if(JsonHelper::addNodeToObject(faultFields, "eventSourceType", ODU_HIGH) == 0) {
ret = false;
}
- if(JsonHelper::addNodeToObject(faultFields, "specificProblem", SPECIFIC_PROBLEM) == 0) {
+ if(JsonHelper::addNodeToObject(faultFields, "specificProblem", alarm->getAdditionalText().c_str()) == 0) {
ret = false;
}
- if(JsonHelper::addNodeToObject(faultFields, "eventSeverity", EVENT_SEVERITY) == 0) {
+ if(JsonHelper::addNodeToObject(faultFields, "eventSeverity", getEventSeverity(alarm->getPerceivedSeverity()).c_str()) == 0) {
ret = false;
}
- if(JsonHelper::addNodeToObject(faultFields, "vfStatus", VF_STATUS) == 0) {
+ if(JsonHelper::addNodeToObject(faultFields, "vfStatus", alarm->getSpecificProblem().c_str()) == 0) {
ret = false;
}
//macros
#define FAULT_FIELDS_VERSION "4.0"
-#define ALARM_CONDITION "CELL Down"
#define ALARM_INTERFACE_A "Slot-0-CELL-1"
-#define EVENT_SOURCE_TYPE "O_RAN_COMPONENT"
-#define SPECIFIC_PROBLEM "CELL 1 Down"
-#define EVENT_SEVERITY "MAJOR"
-#define VF_STATUS "Active"
#define EQUIP_TYPE "O-RAN-DU"
#define VENDOR "Melacon"
#define MODEL "ODU Device"
~CellStateChange();
std::string getISOEventTime();
+ std::string getEventSeverity(int severity);
protected:
bool prepareEventFields(const Message* msg = NULL);
return os.str();
}
+/*******************************************************************
+ *
+ * @brief Returns Event Severity String
+ *
+ * @details
+ *
+ * Function :getEventSeverity
+ *
+ * Functionality:
+ * - Returns Event Severity String
+ *
+ * @params[in] IN - int severity
+ * @return value of string - success
+ * empty string - failure
+ *
+ * ****************************************************************/
+
+
+std::string CellStateChangeStdDef::getEventSeverity(int severity) {
+ string str;
+ switch(severity)
+ {
+ case 3:
+ str = "CRITICAL";
+ break;
+ case 4:
+ str = "MAJOR";
+ break;
+ case 5:
+ str = "MINOR";
+ break;
+ case 6:
+ str = "WARNING";
+ break;
+ case 7:
+ str = "INDETERMINATE";
+ break;
+ case 8:
+ str = "CLEARED";
+ break;
+ default:
+ O1_LOG("\nO1 CellStateChangeStdDef: severity was not mentioned");
+ break;
+ }
+ return str;
+}
+
/*******************************************************************
*
* @brief prepare CellStateChangeStdDef Fields
* ****************************************************************/
bool CellStateChangeStdDef::prepareEventFields(const Message* msg) {
- const Alarm* alrm = dynamic_cast<const Alarm*> (msg);
- if(!alrm) {
+ const Alarm* alarm = dynamic_cast<const Alarm*> (msg);
+ if(!alarm) {
O1_LOG("\nO1 CellStateChangeStdDef : Casting failed in prepareEventFields");
return false;
}
else if(JsonHelper::addNodeToObject(data, "probableCause", PROBABLE_CAUSE) == 0) {
ret = false;
}
- else if(JsonHelper::addNodeToObject(data, "perceivedSeverity",PERCEIVED_SEVERITY) == 0) {
+ else if(JsonHelper::addNodeToObject(data, "perceivedSeverity", getEventSeverity(alarm->getPerceivedSeverity()).c_str()) == 0) {
ret = false;
}
else if(JsonHelper::addNodeToObject(data, "rootCauseIndicator", (bool)false ) == 0) {
ret = false;
}
- else if(JsonHelper::addNodeToObject(data, "specificProblem", "") == 0) {
+ else if(JsonHelper::addNodeToObject(data, "specificProblem", alarm->getAdditionalInfo().c_str()) == 0) {
ret = false;
}
else if(JsonHelper::addNodeToObject(data, "proposedRepairActions", PROPOSED_REPAIR_ACTION) == 0) {
ret = false;
}
- else if(JsonHelper::addNodeToObject(data, "additionalText", ADDITIONAL_TEXT) == 0) {
+ else if(JsonHelper::addNodeToObject(data, "additionalText", alarm->getAdditionalText().c_str())== 0) {
ret = false;
}
additionalInformation ) == 0) {
ret = false;
}
- else if(JsonHelper::addNodeToObject( additionalInformation, "addInfo", ADD_INFO) == 0) {
+ else if(JsonHelper::addNodeToObject( additionalInformation, "addInfo", alarm->getAdditionalInfo().c_str()) == 0) {
ret = false;
}
- else if(JsonHelper::addNodeToObject(data , "alarmId", ALARM_ID) == 0) {
+ else if(JsonHelper::addNodeToObject(data , "alarmId", to_string(alarm->getAlarmId()).c_str()) == 0) {
ret = false;
}
else if(JsonHelper::addNodeToObject(data , "alarmType",ALRAM_TYPE ) == 0) {
#define URI "1"
#define NOTIFICATION_ID 1.0
#define NOTIFICATION_TYPE "notifyNewAlarm"
-#define PROBABLE_CAUSE "real-issue"
+#define PROBABLE_CAUSE "device-issue"
#define TRND_INDICATION "MORE_SEVERE"
#define OBSRVED_MEASUREMENT "new"
#define OBSERVED_VALUE 123.2
#define NEW_ATT "new"
-#define ADD_INFO "new"
-#define ALARM_ID "1"
#define ALRAM_TYPE "COMMUNICATIONS_ALARM"
-#define PERCEIVED_SEVERITY "INDETERMINATE"
-#define PROPOSED_REPAIR_ACTION "Call the police!"
-#define ADDITIONAL_TEXT "O-RAN Software Community"
+#define PROPOSED_REPAIR_ACTION "Config change"
class CellStateChangeStdDef : public Notification
~CellStateChangeStdDef();
std::string getISOEventTime();
+ std::string getEventSeverity(int severity);;
protected:
bool prepareEventFields(const Message* msg = NULL);