-
Bug
-
Resolution: Done
-
Medium
-
None
-
None
Implemented Batch API to group set of VES of messages for sending over http.
Tested against VES Collector.
Enhanced test collector for Batch processing.
Java Sample code:
EvelBatch be = new EvelBatch();
EvelFault flt2 = new EvelFault("Fault_vVNF", "vmname_ip",
"NIC error", "Hardware failed",
EvelHeader.PRIORITIES.EVEL_PRIORITY_HIGH,
EVEL_SEVERITIES.EVEL_SEVERITY_MAJOR,
EVEL_SOURCE_TYPES.EVEL_SOURCE_CARD,
EVEL_VF_STATUSES.EVEL_VF_STATUS_ACTIVE);
flt2.evel_fault_addl_info_add("nichw", "fail");
flt2.evel_fault_addl_info_add("nicsw", "fail");
be.addEvent(flt2);
EvelFault flt3 = new EvelFault("Fault_vVNF", "vmname_ip2",
"NIC error", "Hardware failed",
EvelHeader.PRIORITIES.EVEL_PRIORITY_NORMAL,
EVEL_SEVERITIES.EVEL_SEVERITY_MAJOR,
EVEL_SOURCE_TYPES.EVEL_SOURCE_CARD,
EVEL_VF_STATUSES.EVEL_VF_STATUS_ACTIVE);
flt3.evel_fault_type_set("Interface fault");
flt3.evel_fault_category_set("Failed category");
flt3.evel_fault_interface_set("An Interface Card");
flt3.evel_fault_addl_info_add("nichw", "fail");
flt3.evel_fault_addl_info_add("nicsw", "fail");
be.addEvent(flt3);
EvelStateChange stc = new EvelStateChange("StateChange_vVNF", "vmname_ip",
EvelStateChange.EVEL_ENTITY_STATE.EVEL_ENTITY_STATE_IN_SERVICE,
EvelStateChange.EVEL_ENTITY_STATE.EVEL_ENTITY_STATE_OUT_OF_SERVICE,"bgp");
stc.evel_statechange_addl_info_add("bgpa", "fail");
stc.evel_statechange_addl_info_add("bgpb", "fail");
//AgentMain.evel_post_event(stc);
be.addEvent(stc);
AgentMain.evel_post_event(be);
C sample code
batch = evel_new_batch("batchname","batchtest");
/***************************************************************************/
/* Fault */
/***************************************************************************/
fault = evel_new_fault("alarmname","alarmid", "An alarm condition",
"Things are broken",
EVEL_PRIORITY_NORMAL,
EVEL_SEVERITY_MAJOR,
EVEL_SOURCE_VIRTUAL_MACHINE,
EVEL_VF_STATUS_READY_TERMINATE);
if (fault != NULL)
{
evel_nfcnamingcode_set((EVENT_HEADER*)fault, "TEST");
evel_nfnamingcode_set((EVENT_HEADER*)fault, "TEST");
//evel_rc = evel_post_event((EVENT_HEADER *)fault);
//if (evel_rc != EVEL_SUCCESS)
//{
// EVEL_ERROR("Post failed %d (%s)", evel_rc, evel_error_string());
//}
}
else
{
EVEL_ERROR("New Fault failed");
}
printf(" Processed batch Fault %p\n",fault);
evel_batch_add_event(batch,fault);
fault2 = evel_new_fault("alarmname","alarmid", "Another alarm condition",
"It broke badly",
EVEL_PRIORITY_NORMAL,
EVEL_SEVERITY_MAJOR,
EVEL_SOURCE_PORT,
EVEL_VF_STATUS_REQ_TERMINATE);
if (fault2 != NULL)
{
evel_nfcnamingcode_set((EVENT_HEADER*)fault2, "TEST");
evel_nfnamingcode_set((EVENT_HEADER*)fault2, "TEST");
evel_fault_type_set(fault2, "Bad things happening");
evel_fault_category_set(fault2, "Failed category");
evel_fault_interface_set(fault2, "An Interface Card");
//evel_rc = evel_post_event((EVENT_HEADER *)fault);
//if (evel_rc != EVEL_SUCCESS)
//{
// EVEL_ERROR("Post failed %d (%s)", evel_rc, evel_error_string());
//}
}
else
{
EVEL_ERROR("New Fault failed");
}
evel_batch_add_event(batch,fault2);
fault3 = evel_new_fault("alarmname","alarmid", "My alarm condition",
"It broke very badly",
EVEL_PRIORITY_NORMAL,
EVEL_SEVERITY_MAJOR,
EVEL_SOURCE_HOST,
EVEL_VF_STATUS_PREP_TERMINATE);
if (fault3 != NULL)
{
evel_nfcnamingcode_set((EVENT_HEADER*)fault3, "TEST");
evel_nfnamingcode_set((EVENT_HEADER*)fault3, "TEST");
evel_fault_type_set(fault3, "Bad things happen...");
evel_fault_interface_set(fault3, "My Interface Card");
evel_fault_addl_info_add(fault3, "name1", "value1");
evel_fault_addl_info_add(fault3, "name2", "value2");
evel_batch_add_event(batch,fault3);
evel_rc = evel_post_event((EVENT_HEADER *)batch);
if (evel_rc != EVEL_SUCCESS)
{
EVEL_ERROR("Post batch event failed %d (%s)", evel_rc, evel_error_string());
}
}
else
{
EVEL_ERROR("New Fault failed");
}
printf(" Processed full batch Fault %p\n",fault3);
}