Ignore:
Timestamp:
04/26/13 17:08:20 (11 years ago)
Author:
sdipsl
Message:

First try. Include rabbitMQ C client call within IGCM_debug_PushStack and IGCM_debug_PopStack. See r138
Flag protected so won't affect normal behaviour

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libIGCM/libIGCM_debug/libIGCM_debug.ksh

    r830 r855  
    3737    echo "Stack of an libIGCM job :" >  ${StackFileLocation}/stack 
    3838  fi 
     39 
     40  if [ -f ${StackFileLocation}/fullstack ] ; 
     41  then 
     42    echo "Full stack of an libIGCM job :" >> ${StackFileLocation}/fullstack 
     43  else 
     44    echo "Full stack of an libIGCM job :" >  ${StackFileLocation}/fullstack 
     45  fi 
     46 
    3947fi 
    4048 
     
    7179#D- 
    7280function IGCM_debug_CallStack { 
    73   echo 
    74   echo "!!!!!!!!!!!!!!!!!!!!!!!!!!" 
    75   echo "!! IGCM_debug_CallStack !!" 
    76   echo "!------------------------!" 
    77   echo 
     81  #echo 
     82  #echo "!!!!!!!!!!!!!!!!!!!!!!!!!!" 
     83  #echo "!! IGCM_debug_CallStack !!" 
     84  #echo "!------------------------!" 
     85  #echo 
    7886  if ( $DEBUG_debug ) ; then 
    7987    # La pile d'appels est affichée de la plus vieille à la plus récente  
     
    8492      decal=0 
    8593      until [ $decal -eq ${i} ]; do 
    86         printf -- ' ' 
     94        printf -- ' ' >> ${StackFileLocation}/fullstack 
    8795        (( decal = decal + 1 )) 
    8896      done 
    8997      echo "$i - ${IGCM_debug_Stack[$(( $IGCM_debug_LenStack-$i-1 ))]}"\ 
    90            "(${IGCM_debug_StackArgs[$(( $IGCM_debug_LenStack-$i-1 ))]})" 
     98           "(${IGCM_debug_StackArgs[$(( $IGCM_debug_LenStack-$i-1 ))]})" >> ${StackFileLocation}/fullstack 
    9199      ((i = i + 1)) 
    92100    done 
    93     echo "!------------------------!" 
     101    #echo "!------------------------!" 
    94102  fi 
    95103} 
     
    100108#D- 
    101109function IGCM_debug_PushStack { 
     110 
    102111  if ( $DEBUG_debug ) ; then 
    103112    typeset decal inputs 
     
    108117      (( decal = decal + 1 )) 
    109118    done 
    110     echo "> ${IGCM_debug_LenStack} : ${@}" >> ${StackFileLocation}/stack 
    111119 
    112120    # STORE input list in an indexed array 
     
    121129      IGCM_debug_StackArgs[0]=$(echo ${INPUTS[*]:1} | sed -e "s/\ /,/g") 
    122130    fi 
     131 
     132    # Fill the stack file 
     133    echo "> ${IGCM_debug_LenStack} : ${@}" >> ${StackFileLocation}/stack 
     134 
     135    # Fill the rabbitMQ queue 
     136    if [ X${ActivateBigBro} = Xtrue ] ; then 
     137      code=2000 
     138      # 
     139      encodedBody=$( echo "{\"code\":\"${code}\",\"jobid\":\"${jobid}\",\"nesting\":\"${IGCM_debug_LenStack}\",\"command\":\"${INPUTS[*]}\",\"timestamp\":\"$( date +"%Y-%m-%d-%T" )\"}" | base64 -w 0 ) 
     140      # 
     141      #sendAMQPMsg -h localhost -p 5672 -f ${SUBMIT_DIR}/config.card.base64 -b ${encodedBody} 
     142      echo sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} >> /tmp/sendAMQP.history.txt 
     143      sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} 
     144      status=$? 
     145      if [ ${status} -gt 0 ] ; then 
     146        IGCM_debug_Print 2 "IGCM_debug_PushStack : command sendAMQPMsg failed error code ${status}" 
     147        echo  sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} 
     148        exit 
     149      fi 
     150    fi 
     151 
     152    # Increment LenStack 
    123153    (( IGCM_debug_LenStack = IGCM_debug_LenStack + 1 )) 
    124154 
    125155    # If you want to print CallStack each time : 
    126     # IGCM_debug_CallStack 
     156    IGCM_debug_CallStack 
    127157  fi 
    128158} 
     
    134164function IGCM_debug_PopStack { 
    135165  if ( $DEBUG_debug ) ; then 
    136     if ( ${ExitFlag} ) ; then 
    137       echo '!!! ExitFlag has been activated !!!' >> ${StackFileLocation}/stack 
    138     fi 
     166 
    139167    typeset decal 
    140168    if [ "${IGCM_debug_Stack[0]}" = "${1}" ]; then 
     
    151179      (( decal = decal + 1 )) 
    152180    done 
    153     echo "< ${IGCM_debug_LenStack} : ${@}" >> ${StackFileLocation}/stack 
     181 
     182    if ( ${ExitFlag} ) ; then 
     183      # Inform the stack file 
     184      echo '!!! ExitFlag has been activated !!!' >> ${StackFileLocation}/stack 
     185      # Inform the rabbitMQ queue 
     186      if [ X${ActivateBigBro} = Xtrue ] ; then 
     187        code=9000 
     188        # 
     189        encodedBody=$( echo "{\"code\":\"${code}\",\"jobid\":\"${jobid}\",\"status\":\"NOK\",\"out\":\"true\",\"nesting\":\"${IGCM_debug_LenStack}\",\"command\":\"${INPUTS[*]}\",\"timestamp\":\"$( date +"%Y-%m-%d-%T" )\"}" | base64 -w 0 ) 
     190        # 
     191        #sendAMQPMsg -h localhost -p 5672 -f ${SUBMIT_DIR}/config.card -b ${encodedBody} 
     192        echo sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} >> /tmp/sendAMQP.history.txt 
     193        sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} 
     194        status=$? 
     195        if [ ${status} -gt 0 ] ; then 
     196          IGCM_debug_Print 2 "IGCM_debug_PopStack : command sendAMQPMsg failed error code ${status}" 
     197          echo  sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} 
     198          exit 
     199        fi 
     200      fi 
     201    else 
     202      # Inform the stack file 
     203      echo "< ${IGCM_debug_LenStack} : ${@}" >> ${StackFileLocation}/stack 
     204 
     205      # Inform the rabbitMQ queue 
     206      if [ X${ActivateBigBro} = Xtrue ] ; then 
     207        code=3000 
     208        # 
     209        encodedBody=$( echo "{\"code\":\"${code}\",\"jobid\":\"${jobid}\",\"status\":\"OK\",\"out\":\"true\",\"nesting\":\"${IGCM_debug_LenStack}\",\"command\":\"${INPUTS[*]}\",\"timestamp\":\"$( date +"%Y-%m-%d-%T" )\"}" | base64 -w 0 ) 
     210 
     211        # 
     212        #sendAMQPMsg -h localhost -p 5672 -f ${SUBMIT_DIR}/config.card.base64 -b ${encodedBody} 
     213        echo sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} >> /tmp/sendAMQP.history.txt 
     214        sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} 
     215        status=$? 
     216        if [ ${status} -gt 0 ] ; then 
     217          IGCM_debug_Print 2 "IGCM_debug_PopStack : command sendAMQPMsg failed error code ${status}" 
     218          echo  sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} 
     219          exit 
     220        fi 
     221      fi 
     222    fi 
    154223 
    155224    if [ ${IGCM_debug_LenStack} = 0 ]; then 
     
    166235    fi 
    167236  fi 
    168   #IGCM_debug_CallStack 
     237  IGCM_debug_CallStack 
     238} 
     239 
     240#D-#================================================================== 
     241#D-function IGCM_debug_ActivateBigBro 
     242#D-* Purpose: switch rabbitMQ on 
     243#D- 
     244function IGCM_debug_ActivateBigBro { 
     245  IGCM_debug_PushStack "IGCM_debug_ActivateBigBro" 
     246 
     247  set -vx 
     248 
     249  # Fill the rabbitMQ queue 
     250  if [ X${BigBrother}=Xtrue ] ; then 
     251    jobid=${config_UserChoices_JobName}.${config_UserChoices_ExperimentName}.${config_UserChoices_SpaceName}.${config_UserChoices_TagName}.p86denv.TGCC.CURIE 
     252    if ( ${FirstInitialize} ) ; then 
     253      code=0000 
     254    else 
     255      code=1000 
     256    fi 
     257    encodedBody=$( echo "{\"code\":\"${code}\",\"jobid\":\"${jobid}\",\"status\":\"OK\",\"out\":\"false\",\"nesting\":\"${IGCM_debug_LenStack}\",\"timestamp\":\"$( date +"%Y-%m-%d-%T" )\"}" | base64 -w 0 ) 
     258    # 
     259    cat ${SUBMIT_DIR}/config.card | base64 -w 0 > ${SUBMIT_DIR}/config.card.base64 
     260    # 
     261    #sendAMQPMsg -h localhost -p 5672 -f ${SUBMIT_DIR}/config.card.base64 -b ${encodedBody} 
     262    echo sendAMQPMsg -h localhost -p 5672 -f ${SUBMIT_DIR}/config.card.base64 -b ${encodedBody} >> /tmp/sendAMQP.history.txt 
     263    sendAMQPMsg -h localhost -p 5672 -f ${SUBMIT_DIR}/config.card.base64 -b ${encodedBody} 
     264    status=$? 
     265    if [ ${status} -gt 0 ] ; then 
     266      IGCM_debug_Print 2 "IGCM_debug_ActivateBigBro : command failed error code ${status}" 
     267      IGCM_debug_Exit "IGCM_debug_ActivateBigBro" 
     268    fi 
     269    ActivateBigBro=true 
     270  fi 
     271  IGCM_debug_PopStack "IGCM_debug_ActivateBigBro" 
    169272} 
    170273 
     
    176279  IGCM_debug_PushStack "IGCM_debug_Exit" 
    177280  echo "IGCM_debug_Exit : " "${@}" 
    178   IGCM_debug_CallStack 
     281  #IGCM_debug_CallStack 
    179282  ExitFlag=true 
    180283  IGCM_debug_PopStack "IGCM_debug_Exit" 
     
    198301      IGCM_sys_Tree ${R_SAVE} 
    199302      echo 
     303    fi 
     304    if [ X${ActivateBigBro} = Xtrue ] ; then 
     305      code=9999 
     306      # 
     307      encodedBody=$( echo "{\"code\":\"${code}\",\"jobid\":\"${jobid}\",\"status\":\"FATAL\",\"timestamp\":\"$( date +"%Y-%m-%d-%T" )\"}" | base64 -w 0 ) 
     308      # 
     309      #sendAMQPMsg -h localhost -p 5672 -f ${SUBMIT_DIR}/config.card -b ${encodedBody} 
     310      echo sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} >> /tmp/sendAMQP.history.txt 
     311      sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} 
     312      status=$? 
     313      if [ ${status} -gt 0 ] ; then 
     314        IGCM_debug_Print 2 "IGCM_debug_PopStack : command sendAMQPMsg failed error code ${status}" 
     315        echo  sendAMQPMsg -h localhost -p 5672 -b ${encodedBody} 
     316        exit 
     317      fi 
    200318    fi 
    201319    # Mail notification 
Note: See TracChangeset for help on using the changeset viewer.