private void recordRPOperation(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;
    _log.info("opType: {} detail: {}",opType.toString(),evType.toString() + ':' + evDesc);
    recordBourneRPEvent(dbClient,getId(),evType,status,evDesc);
switch (opType) {
case START_RP_LINK:
case STOP_RP_LINK:
case PAUSE_RP_LINK:
case RESUME_RP_LINK:
case FAILOVER_RP_LINK:
case FAILOVER_CANCEL_RP_LINK:
case CHANGE_RP_IMAGE_ACCESS_MODE:
case SWAP_RP_VOLUME:
      AuditBlockUtil.auditBlock(dbClient,opType,opStatus,opStage,extParam);
    break;
default :
  _log.error("Unrecognized RP operation type");
}
}
 catch (Exception e) {
_log.error("Failed to record RP operation {}, err: {}",opType.toString(),e);
}
}

private void recordRPOperation ( 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 ; _log . info ( "opType: {} detail: {}" , opType . toString ( ) , evType . toString ( ) + ':' + evDesc ) ; recordBourneRPEvent ( dbClient , getId ( ) , evType , status , evDesc ) ; switch ( opType ) { case START_RP_LINK : case STOP_RP_LINK : case PAUSE_RP_LINK : case RESUME_RP_LINK : case FAILOVER_RP_LINK : case FAILOVER_CANCEL_RP_LINK : case CHANGE_RP_IMAGE_ACCESS_MODE : case SWAP_RP_VOLUME : AuditBlockUtil . auditBlock ( dbClient , opType , opStatus , opStage , extParam ) ; break ; default : _log . error ( "Unrecognized RP operation type" ) ; } } catch ( Exception e ) { _log . error ( "Failed to record RP operation {}, err: {}" , opType . toString ( ) , e ) ; } }
record block volume related event and audit
