summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEUcancER <root@euer.krebsco.de>2011-11-10 18:15:34 +0100
committerEUcancER <root@euer.krebsco.de>2011-11-10 18:15:34 +0100
commit35be61fece8fabb430ef44c3f7a7d62d62b18ffd (patch)
tree58aa9ab4999e40f945ac7ca6b8aa446f569ac428
parenta78c067d47f295ed91242cb9a30ba9c7b4e6b572 (diff)
//retiolum/adv_graphgen: refactor graph generation, fix weight issue
-rwxr-xr-xretiolum/scripts/adv_graphgen/parse_tinc_stats.py5
-rwxr-xr-xretiolum/scripts/adv_graphgen/sanitize.sh18
-rwxr-xr-xretiolum/scripts/adv_graphgen/tinc_stats.py2
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))))