question: public void recordSRDFOperation ( DbClient dbClient , OperationTypeEnum opType , Operation . Status status , Object ... extParam ) { try { boolean opStatus = ( Operation . Status . ready == status ) ? true : false ; String evType ; evType = opType . getEvType ( opStatus ) ; String evDesc = opType . getDescription ( ) ; String opStage = AuditLogManager . AUDITOP_END ; _logger . info ( "opType: {} detail: {}" , opType . toString ( ) , evType . toString ( ) + ':' + evDesc ) ; recordBourneSRDFEvent ( dbClient , getId ( ) , evType , status , evDesc ) ; String id = ( String ) extParam [ 0 ] ; switch ( opType ) { case CREATE_SRDF_LINK : AuditBlockUtil . auditBlock ( dbClient , opType , opStatus , opStage , extParam ) ; break ; case SUSPEND_SRDF_LINK : AuditBlockUtil . auditBlock ( dbClient , opType , opStatus , opStage , extParam ) ; break ; case DETACH_SRDF_LINK : AuditBlockUtil . auditBlock ( dbClient , opType , opStatus , opStage , extParam ) ; break ; case PAUSE_SRDF_LINK : AuditBlockUtil . auditBlock ( dbClient , opType , opStatus , opStage , extParam ) ; break ; case RESUME_SRDF_LINK : AuditBlockUtil . auditBlock ( dbClient , opType , opStatus , opStage , extParam ) ; break ; case FAILOVER_SRDF_LINK : AuditBlockUtil . auditBlock ( dbClient , opType , opStatus , opStage , extParam ) ; break ; case SWAP_SRDF_VOLUME : AuditBlockUtil . auditBlock ( dbClient , opType , opStatus , opStage , extParam ) ; break ; case STOP_SRDF_LINK : AuditBlockUtil . auditBlock ( dbClient , opType , opStatus , opStage , extParam ) ; break ; case SYNC_SRDF_LINK : AuditBlockUtil . auditBlock ( dbClient , opType , opStatus , opStage , extParam ) ; break ; default : _logger . error ( "unrecognized SRDF operation type" ) ; } } catch ( Exception e ) { _logger . error ( "Failed to record SRDF operation {}, err: {}" , opType . toString ( ) , e ) ; } }
target:  Record block volume related event and audit