From 35be61fece8fabb430ef44c3f7a7d62d62b18ffd Mon Sep 17 00:00:00 2001 From: EUcancER Date: Thu, 10 Nov 2011 18:15:34 +0100 Subject: //retiolum/adv_graphgen: refactor graph generation, fix weight issue --- retiolum/scripts/adv_graphgen/parse_tinc_stats.py | 5 ++++- retiolum/scripts/adv_graphgen/sanitize.sh | 18 ++++++++++++------ retiolum/scripts/adv_graphgen/tinc_stats.py | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/retiolum/scripts/adv_graphgen/parse_tinc_stats.py b/retiolum/scripts/adv_graphgen/parse_tinc_stats.py index 410e5229..b8054b0d 100755 --- a/retiolum/scripts/adv_graphgen/parse_tinc_stats.py +++ b/retiolum/scripts/adv_graphgen/parse_tinc_stats.py @@ -59,6 +59,9 @@ def generate_stats(nodes): pass for k,v in nodes.iteritems(): conns = v.get('to',[]) + for c in conns: #sanitize weights + if float(c['weight']) > 9000: c['weight'] = str(9001) + elif float(c['weight']) < 0: c['weight'] = str(0) v['num_conns'] = len(conns) v['avg_weight'] = get_node_avg_weight(conns) v['availability'] = get_node_availability(k,jlines) @@ -132,7 +135,7 @@ def write_node(k,v): node = " "+k+"[label=\"" node += k+"\\l" node += "availability: %f\\l" % v['availability'] - node += "avg weight: %.2f\\l" % v['avg_weight'] + #node += "avg weight: %.2f\\l" % v['avg_weight'] if v.has_key('num_conns'): node += "Num Connects:"+str(v['num_conns'])+"\\l" node += "external:"+v['external-ip']+":"+v['external-port']+"\\l" diff --git a/retiolum/scripts/adv_graphgen/sanitize.sh b/retiolum/scripts/adv_graphgen/sanitize.sh index 402ce256..5572b9d9 100755 --- a/retiolum/scripts/adv_graphgen/sanitize.sh +++ b/retiolum/scripts/adv_graphgen/sanitize.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -xeuf cd $(dirname `readlink -f $0`) GRAPH_SETTER1=dot GRAPH_SETTER2=circo @@ -9,16 +10,21 @@ TYPE=svg TYPE2=png OPENER=/bin/true DOTFILE=`mktemp` -trap 'rm $DOTFILE' SIGTERM +trap 'rm $DOTFILE' INT TERM sudo LOG_FILE=$LOG_FILE python tinc_stats.py |\ python parse_tinc_stats.py > $DOTFILE -$GRAPH_SETTER1 -T$TYPE -o $1/retiolum_1.$TYPE $DOTFILE -$GRAPH_SETTER2 -T$TYPE -o $1/retiolum_2.$TYPE $DOTFILE -$GRAPH_SETTER3 -T$TYPE -o $1/retiolum_3.$TYPE $DOTFILE -$GRAPH_SETTER4 -T$TYPE -o $1/retiolum_4.$TYPE $DOTFILE + +i=1 +for setter in dot circo 'neato -Goverlap=prism ' sfdp +do + tmpgraph=`mktemp --tmpdir=$1` + $setter -T$TYPE -o $tmpgraph $DOTFILE + chmod go+rx $tmpgraph + mv $tmpgraph $1retiolum_$i.$TYPE + i=`expr $i + 1` +done #convert -resize 20% $1/retiolum_1.$TYPE $1/retiolum_1.$TYPE2 #convert -resize 20% $1/retiolum_2.$TYPE $1/retiolum_2.$TYPE2 #convert -resize 20% $1/retiolum_3.$TYPE $1/retiolum_3.$TYPE2 #convert -resize 20% $1/retiolum_4.$TYPE $1/retiolum_4.$TYPE2 -#$OPENER $1/retiolum_1.$TYPE &>/dev/null diff --git a/retiolum/scripts/adv_graphgen/tinc_stats.py b/retiolum/scripts/adv_graphgen/tinc_stats.py index be3bbbff..d0d47aff 100755 --- a/retiolum/scripts/adv_graphgen/tinc_stats.py +++ b/retiolum/scripts/adv_graphgen/tinc_stats.py @@ -78,6 +78,6 @@ def parse_input(log_data): if __name__ == '__main__': import subprocess,time - subprocess.popen("pkill -SIGUSR2 tincd") + subprocess.call(["pkill","-SIGUSR2", "tincd"]) time.sleep(1) print json.dumps(parse_input((get_tinc_block(SYSLOG_FILE)))) -- cgit v1.2.3