Fixed issues with the distributed computing interface. Clients upload the status to the server. 'ppss status' does not need to poll all clients for their status.
This commit is contained in:
parent
300f84ad14
commit
aedad2522b
67
trunk/ppss
67
trunk/ppss
@ -1110,8 +1110,9 @@ upload_status () {
|
||||
set_status () {
|
||||
|
||||
STATUS="$1"
|
||||
NO_PROCESSED=$(wc -l "$PPSS_HOME_DIR/$LIST_OF_PROCESSED_ITEMS" | cut -d " " -f 1)
|
||||
NO_PROCESSED=$(wc -l "$LIST_OF_PROCESSED_ITEMS" | awk '{ print $1 }' )
|
||||
NODE=`cat $PPSS_DIR/$NODE_ID`
|
||||
|
||||
echo "$NODE $HOSTNAME $STATUS $NO_PROCESSED" > "$NODE_STATUS_FILE"
|
||||
if [ ! -z "$SSH_SERVER" ]
|
||||
then
|
||||
@ -1259,7 +1260,10 @@ deploy () {
|
||||
ERROR=0
|
||||
set_error () {
|
||||
|
||||
if [ ! "$1" == "0" ]
|
||||
if [ "$ERROR" == "1" ]
|
||||
then
|
||||
ERROR=1
|
||||
elif [ ! "$1" == "0" ]
|
||||
then
|
||||
ERROR=1
|
||||
fi
|
||||
@ -1273,7 +1277,9 @@ deploy () {
|
||||
KEY=`echo $SSH_KEY | cut -d " " -f 2`
|
||||
|
||||
ssh -q $SSH_OPTS_NODE $SSH_KEY $USER@$NODE "cd ~ && mkdir -p $PPSS_HOME_DIR && mkdir -p $PPSS_HOME_DIR/$JOB_LOG_DIR && mkdir -p $PPSS_HOME_DIR/ITEM_LOCK_DIR >> /dev/null 2>&1"
|
||||
set_error $?
|
||||
ssh -q $SSH_OPTS_NODE $SSH_KEY $USER@$NODE "cd ~ && cd $PPSS_HOME_DIR && cd $PPSS_DIR && echo $NODE > $NODE_ID"
|
||||
set_error $?
|
||||
scp -q $SSH_OPTS_NODE $SSH_KEY $0 $USER@$NODE:~/$PPSS_HOME_DIR
|
||||
set_error $?
|
||||
scp -q $SSH_OPTS_NODE $SSH_KEY $KEY $USER@$NODE:~/$PPSS_HOME_DIR
|
||||
@ -2663,20 +2669,41 @@ start_all_workers () {
|
||||
#}
|
||||
|
||||
#get_node_status_from_server () {
|
||||
get_status_of_node () {
|
||||
get_status_of_nodes () {
|
||||
|
||||
RESULT_FILE="$1"
|
||||
|
||||
ssh $SSH_OPTS $SSH_KEY $USER@$SSH_SERVER cat "$PPSS_HOME_DIR/$PPSS_NODE_STATUS/*" > "$RESULT_FILE" 2>&1
|
||||
|
||||
RES=`ssh $SSH_OPTS $SSH_KEY $USER@$SERVER cat "$PPSS_HOME_DIR/$PPSS_NODE_STATUS/*" 2> /dev/null`
|
||||
IFS=$'\n'
|
||||
for x in $RES
|
||||
|
||||
for x in `cat $RESULT_FILE`
|
||||
do
|
||||
log DSPLY "$x"
|
||||
IP=`echo $x | awk '{ print $1 }'`
|
||||
HOST=`echo $x | awk '{ print $2 }'`
|
||||
STATUS=`echo $x | awk '{ print $3 }'`
|
||||
RES=`echo $x | awk '{ print $4 }'`
|
||||
if [ -z "$RES" ]
|
||||
then
|
||||
RES="0"
|
||||
fi
|
||||
PROCESSED=$((PROCESSED+RES))
|
||||
LINE=`echo "$IP $HOST $RES $STATUS" | awk '{ printf ("%-16s %-18s % 10s %10s\n",$1,$2,$3,$4) }'`
|
||||
log DSPLY "$LINE"
|
||||
done
|
||||
|
||||
log DSPLY "---------------------------------------------------------"
|
||||
LINE=`echo $PROCESSED | awk '{ printf ("Total processed: % 29s\n",$1) }'`
|
||||
log DSPLY "$LINE"
|
||||
|
||||
rm "$RESULT_FILE"
|
||||
|
||||
}
|
||||
|
||||
show_status () {
|
||||
|
||||
source $CONFIG
|
||||
. $CONFIG
|
||||
|
||||
if [ ! -z "$SSH_KEY" ]
|
||||
then
|
||||
SSH_KEY="-i $SSH_KEY"
|
||||
@ -2708,29 +2735,9 @@ show_status () {
|
||||
log DSPLY "---------------------------------------------------------"
|
||||
PROCESSED=0
|
||||
|
||||
for x in `cat $NODES_FILE`
|
||||
do
|
||||
RES=0
|
||||
NODE=`get_status_of_node "$x" | awk '{ print $1 }'`
|
||||
if [ ! "$NODE" == "UNKNOWN" ]
|
||||
then
|
||||
STATUS=`get_status_of_node "$x" | awk '{ print $2 }'`
|
||||
RES=`exec_cmd "grep -i $NODE ~/$PPSS_HOME_DIR/$JOB_LOG_DIR/* 2>/dev/null | wc -l " 1`
|
||||
if [ ! "$?" ] || [ -z "$RES" ]
|
||||
then
|
||||
RES=0
|
||||
fi
|
||||
else
|
||||
STATUS="UNKNOWN"
|
||||
RES=0
|
||||
fi
|
||||
let PROCESSED="$PROCESSED+$RES"
|
||||
LINE=`echo "$x $NODE $RES $STATUS" | awk '{ printf ("%-16s %-18s % 10s %10s\n",$1,$2,$3,$4) }'`
|
||||
log DSPLY "$LINE"
|
||||
done
|
||||
log DSPLY "---------------------------------------------------------"
|
||||
LINE=`echo $PROCESSED | awk '{ printf ("Total processed: % 29s\n",$1) }'`
|
||||
log DSPLY "$LINE"
|
||||
RESULT_FILE="$RADOM$RANDOM.deleteme"
|
||||
get_status_of_nodes "$RESULT_FILE"
|
||||
|
||||
}
|
||||
|
||||
main () {
|
||||
|
Loading…
Reference in New Issue
Block a user