version 1.36, 2007/04/10 20:31:14
|
version 1.37.16.1, 2008/07/01 15:18:26
|
|
|
| |
try | try |
{ | { |
|
PEG_TRACE ((TRC_INDICATION_GENERATION, Tracer::LEVEL4, |
|
"snmpIndicationHandler %s:%s.%s processing %s Indication", |
|
(const char*)(nameSpace.getCString()), |
|
(const char*)(handler.getClassName().getString().getCString()), |
|
(const char*)(handler.getProperty( |
|
handler.findProperty(PEGASUS_PROPERTYNAME_NAME)). |
|
getValue().toString().getCString()), |
|
(const char*)(indication.getClassName().getString(). |
|
getCString()))); |
CIMClass indicationClass = _repository->getClass( | CIMClass indicationClass = _repository->getClass( |
nameSpace, indication.getClassName(), false, true, | nameSpace, indication.getClassName(), false, true, |
false, CIMPropertyList()); | false, CIMPropertyList()); |
|
|
handler.findProperty(CIMName("SNMPSecurityName")); | handler.findProperty(CIMName("SNMPSecurityName")); |
Uint32 engineIDPos = handler.findProperty(CIMName("SNMPEngineID")); | Uint32 engineIDPos = handler.findProperty(CIMName("SNMPEngineID")); |
| |
if ((targetHostPos != PEG_NOT_FOUND) && |
if (targetHostPos == PEG_NOT_FOUND) |
(targetHostFormatPos != PEG_NOT_FOUND) && |
{ |
(snmpVersionPos != PEG_NOT_FOUND)) |
PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL1, |
|
"Target host is not set for IndicationHandlerSNMPMapper %s" |
|
" Indication.", |
|
(const char*)(indication.getClassName().getString(). |
|
getCString()))); |
|
PEG_METHOD_EXIT(); |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms( |
|
"Handler.snmpIndicationHandler.snmpIndicationHandler." |
|
"INVALID_SNMP_INSTANCE", |
|
"Invalid IndicationHandlerSNMPMapper instance")); |
|
} |
|
if (targetHostFormatPos == PEG_NOT_FOUND) |
|
{ |
|
PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL1, |
|
"Target host format is not set for IndicationHandlerSNMPMapper" |
|
" %s Indication.", |
|
(const char*)(indication.getClassName().getString(). |
|
getCString()))); |
|
PEG_METHOD_EXIT(); |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms( |
|
"Handler.snmpIndicationHandler.snmpIndicationHandler." |
|
"INVALID_SNMP_INSTANCE", |
|
"Invalid IndicationHandlerSNMPMapper instance")); |
|
} |
|
if (snmpVersionPos == PEG_NOT_FOUND) |
|
{ |
|
PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL1, |
|
"SNMP Version is not set for IndicationHandlerSNMPMapper %s" |
|
" Indication.", |
|
(const char*)(indication.getClassName().getString(). |
|
getCString()))); |
|
PEG_METHOD_EXIT(); |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms( |
|
"Handler.snmpIndicationHandler.snmpIndicationHandler." |
|
"INVALID_SNMP_INSTANCE", |
|
"Invalid IndicationHandlerSNMPMapper instance")); |
|
} |
|
else |
{ | { |
// properties from the handler instance | // properties from the handler instance |
String targetHost; | String targetHost; |
|
|
| |
String trapOid; | String trapOid; |
Boolean trapOidAvailable = false; | Boolean trapOidAvailable = false; |
String exceptionStr; |
|
// | // |
// Get snmpTrapOid from context | // Get snmpTrapOid from context |
// | // |
|
|
| |
if (!trapOidAvailable) | if (!trapOidAvailable) |
{ | { |
exceptionStr = "No MappingStrings for snmp trap" |
PEG_TRACE(( |
"is specified for class: "; |
TRC_IND_HANDLER, |
|
Tracer::LEVEL1, |
exceptionStr.append( |
"No MappingStrings for snmp trap is specified " |
indication.getClassName().getString()); |
"for class: %s", |
|
(const char*) |
|
indication.getClassName().getString().getCString() |
|
)); |
| |
PEG_TRACE_STRING(TRC_IND_HANDLER, Tracer::LEVEL4, |
|
exceptionStr); |
|
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
| |
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, |
throw PEGASUS_CIM_EXCEPTION_L( |
|
CIM_ERR_FAILED, |
MessageLoaderParms( | MessageLoaderParms( |
"Handler.snmpIndicationHandler." | "Handler.snmpIndicationHandler." |
"snmpIndicationHandler.NO_MS_FOR_SNMP_TRAP", | "snmpIndicationHandler.NO_MS_FOR_SNMP_TRAP", |
exceptionStr)); |
"No MappingStrings for snmp trap is specified " |
|
"for class: $0", |
|
indication.getClassName().getString())); |
} | } |
} | } |
else | else |
{ | { |
PEG_TRACE_CSTRING(TRC_IND_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_IND_HANDLER, Tracer::LEVEL1, |
"Qualifier MappingStrings can not be found."); | "Qualifier MappingStrings can not be found."); |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
MessageLoaderParms parms( | MessageLoaderParms parms( |
|
|
handler.getProperty(engineIDPos).getValue().get(engineID); | handler.getProperty(engineIDPos).getValue().get(engineID); |
} | } |
| |
|
PEG_TRACE ((TRC_INDICATION_GENERATION, Tracer::LEVEL4, |
|
"snmpIndicationHandler sending %s Indication trap %s to target" |
|
" host %s target port %d", |
|
(const char*)(indication.getClassName().getString(). |
|
getCString()), |
|
(const char*)(trapOid.getCString()), |
|
(const char*)(targetHost.getCString()),portNumber)); |
_snmpTrapSender->deliverTrap( | _snmpTrapSender->deliverTrap( |
trapOid, | trapOid, |
securityName, | securityName, |
|
|
propOIDs, | propOIDs, |
propTYPEs, | propTYPEs, |
propVALUEs); | propVALUEs); |
} |
|
else |
PEG_TRACE ((TRC_INDICATION_GENERATION, Tracer::LEVEL4, |
{ |
"%s Indication trap %s sent to target host %s target port %d " |
PEG_TRACE_CSTRING(TRC_IND_HANDLER, Tracer::LEVEL4, |
"successfully", |
"Invalid IndicationHandlerSNMPMapper instance."); |
(const char*)(indication.getClassName().getString().getCString()), |
PEG_METHOD_EXIT(); |
(const char*)(trapOid.getCString()), |
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms( |
(const char*)(targetHost.getCString()),portNumber)); |
"Handler.snmpIndicationHandler.snmpIndicationHandler." |
|
"INVALID_SNMP_INSTANCE", |
|
"Invalid IndicationHandlerSNMPMapper instance")); |
|
} | } |
} | } |
catch (CIMException& c) | catch (CIMException& c) |
{ | { |
PEG_TRACE_STRING(TRC_IND_HANDLER, Tracer::LEVEL4, c.getMessage()); |
PEG_TRACE_STRING(TRC_IND_HANDLER, Tracer::LEVEL1, c.getMessage()); |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, c.getMessage()); | throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, c.getMessage()); |
} | } |
catch (Exception& e) | catch (Exception& e) |
{ | { |
PEG_TRACE_STRING(TRC_IND_HANDLER, Tracer::LEVEL4, e.getMessage()); |
PEG_TRACE_STRING(TRC_IND_HANDLER, Tracer::LEVEL1, e.getMessage()); |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
| |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, e.getMessage()); | throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, e.getMessage()); |
} | } |
catch (...) | catch (...) |
{ | { |
PEG_TRACE_CSTRING(TRC_IND_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_IND_HANDLER, Tracer::LEVEL1, |
"Failed to deliver trap."); | "Failed to deliver trap."); |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
| |
|
|
"FAILED_TO_DELIVER_TRAP", | "FAILED_TO_DELIVER_TRAP", |
"Failed to deliver trap.")); | "Failed to deliver trap.")); |
} | } |
|
|
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
} | } |
| |