Author: sleon
Date: 2006-04-08 01:39:46 +0000 (Sat, 08 Apr 2006)
New Revision: 8497
Modified:
trunk/apps/freeviz/ciclegraph.py
trunk/apps/freeviz/db.py
trunk/apps/freeviz/gen.py
trunk/apps/freeviz/handler.py
trunk/apps/freeviz/histogram.py
trunk/apps/freeviz/parser.py
trunk/apps/freeviz/server.py
trunk/apps/freeviz/watchdog.sh
Log:
fixed bug with ip detection
Modified: trunk/apps/freeviz/ciclegraph.py
===================================================================
--- trunk/apps/freeviz/ciclegraph.py 2006-04-07 20:01:48 UTC (rev 8496)
+++ trunk/apps/freeviz/ciclegraph.py 2006-04-08 01:39:46 UTC (rev 8497)
@@ -69,4 +69,4 @@
- im.save('/tmp/outputc.png','PNG')
+ im.save('/home/freeviz/public_html/outputc.png','PNG')
Modified: trunk/apps/freeviz/db.py
===================================================================
--- trunk/apps/freeviz/db.py 2006-04-07 20:01:48 UTC (rev 8496)
+++ trunk/apps/freeviz/db.py 2006-04-08 01:39:46 UTC (rev 8497)
@@ -5,7 +5,7 @@
#mport pydot
-uri = 'mysql://twisted:severe at 127.0.0.1/twisted?cache=False'
+uri = 'mysql://freeviz:password at 127.0.0.1/freenet_freeviz?cache=False'
#con = connectionForURI(uri)
#sqlhub.processConnection = con
Modified: trunk/apps/freeviz/gen.py
===================================================================
--- trunk/apps/freeviz/gen.py 2006-04-07 20:01:48 UTC (rev 8496)
+++ trunk/apps/freeviz/gen.py 2006-04-08 01:39:46 UTC (rev 8497)
@@ -3,7 +3,9 @@
import sys,os
import pydot
import sys
-sys.path+=['/home/sleon/freeviz/']
+sys.path+=['/home/freeviz/freeviz']
+sys.path+=['/home/freeviz/freeviz/SQLObject/']
+sys.path+=['/home/freeviz/freeviz/FormEncode/']
import re
import handler
import math
@@ -31,7 +33,7 @@
edgeOK='#238500'
edgeBLOCKED='#ee4a1e'
edgeCRITICAL='#c08000'
- defaultSize='3px'
+ defaultSize='10'
# minEdges=3
#saves previous state of nodes
@@ -124,7 +126,7 @@
# nodecolor=self.nodeLCONNS
if node.requests != '0' or node.inserts != '0' or
node.transferring_requests != '0':
- transinfosize="10px"
+ transinfosize="22"
gnode = pydot.Node(node.name, style='filled',
color=nodecolor , label='''\
<
@@ -135,7 +137,7 @@
</tr>
<tr><td align="left"><FONT point-size="%s">%s</FONT></td></tr>
<tr><td align="left"><FONT point-size="%s">R:%s I:%s
TR:%s</FONT></td></tr>
- <tr><td align="left"><FONT point-size="5px">Ver. %s</FONT></td></tr>
+ <tr><td align="left"><FONT point-size="10">Ver. %s</FONT></td></tr>
</table>
>''' % (transinfosize, node.name,transinfosize,
@@ -168,7 +170,7 @@
edgecolor= self.edgeCRITICAL
#print "adding %s-%s" %
(node_pair.node1.name,node_pair.node2.name)
gedge = pydot.Edge(node_pair.node1.name ,
node_pair.node2.name, color=edgecolor,
- fontcolor=edgecolor, label='d: %0.3f' %
distance, fontsize='9.5',arrowhead='none')
+ fontcolor=edgecolor, label='d: %0.3f' %
distance, fontsize='16',arrowhead='none')
#node1 is tail, node2 is head
if edgecolor == self.edgeBLOCKED:
@@ -203,9 +205,15 @@
else:
print "oldnstate empty!"
- g.write_png('/tmp/output.png',prog='circo')
- g.size="10,10"
- g.write_png('/tmp/output_small.png',prog='circo')
+ print "writing big image..."
+ g.write_png('/home/freeviz/public_html/output.png',prog='circo')
+ print "done"
+ g.size="16,18"
+ g.ratio="fill"
+ g.fontsize="36"
+ print "writing small image"
+
g.write_png('/home/freeviz/public_html/output_small.png',prog='circo')
+ print "done"
self.oldnstate = nstate
# g.write_dot('bla.dot')
@@ -228,7 +236,7 @@
delay=60
print "delay is %d" % delay
-while(True):
+for i in range(10):
con = db.get_con()
trans = con.transaction()
generator = Generator(oldnstate)
@@ -241,4 +249,5 @@
oldnstate = generator.oldnstate
trans.close()
db.close_con(con)
+ print "sleeping for %d seconds" % delay
sleep(delay)
Modified: trunk/apps/freeviz/handler.py
===================================================================
--- trunk/apps/freeviz/handler.py 2006-04-07 20:01:48 UTC (rev 8496)
+++ trunk/apps/freeviz/handler.py 2006-04-08 01:39:46 UTC (rev 8497)
@@ -1,12 +1,32 @@
import db
import parser
import time
+import re
timedelta=360
+mandatory_version = 599
+
def handle(data,trans):
(nodeinfo, nodeinfos, backoffs)=parser.parse(data)
+
+ #checking the version
+ version_parser = re.compile('.*,(\d+)')
+
+ if 'version' in nodeinfo:
+ version = version_parser.match(nodeinfo['version']).group(1)
+ #print "Node version is " + version
+ version = int(version)
+
+ #exit when non mandatory version
+ if version < mandatory_version:
+ print "Skipping following data, because node is too old"
+ print data
+ return
+
+
+
#deleting first
if 'identity' in nodeinfo:
db.refresh(nodeinfo,trans)
Modified: trunk/apps/freeviz/histogram.py
===================================================================
--- trunk/apps/freeviz/histogram.py 2006-04-07 20:01:48 UTC (rev 8496)
+++ trunk/apps/freeviz/histogram.py 2006-04-08 01:39:46 UTC (rev 8497)
@@ -5,7 +5,7 @@
import gdchart
from math import floor
import sys
-sys.path+=['/home/sleon/public_html/bla/']
+sys.path+=['/home/freeviz/freeviz/']
import histdata
@@ -53,6 +53,6 @@
column_name = str(chunk * i)
label.append(column_name)
x.setLabels(label)
- x.draw("/tmp/histogram.png")
+ x.draw("/home/freeviz/public_html/histogram.png")
#print histogram
#print histogram_percents
Modified: trunk/apps/freeviz/parser.py
===================================================================
--- trunk/apps/freeviz/parser.py 2006-04-07 20:01:48 UTC (rev 8496)
+++ trunk/apps/freeviz/parser.py 2006-04-08 01:39:46 UTC (rev 8497)
@@ -60,8 +60,8 @@
"""
def parse(data):
- optionsline = re.compile('(\S+)=(.+)')
- connection =
re.compile('^CONNECTED\s+(\d+\.\d+\.\d+\.\d+:\d+)\s+(.+)\s+(0\.\d+)\s+(Fred\S+)\sbackoff:
(\d+) \((\d+)\)\|(\S+)')
+ optionsline = re.compile('(\S+)\s*=(.+)')
+ connection =
re.compile('^CONNECTED\s+(\d+\.\d+\.\d+\.\d+:\d+|\S+:\d+)\s+(.+)\s+(0\.\d+)\s+(Fred\S+)\sbackoff:
(\d+) \((\d+)\)\|(\S+)')
options={}
connections=[]
@@ -72,7 +72,7 @@
con = connection.match(i)
if op:
- options[op.group(1)]=op.group(2).strip()
+ options[op.group(1).strip()]=op.group(2).strip()
elif con:
di={'address': con.group(1), 'name': con.group(2),
'location' : con.group(3) ,
'version': con.group(4),
'identity':con.group(7) }
@@ -83,6 +83,9 @@
options['name']=options['myName']
+ if 'physical.udp' in options.keys():
+ options['address'] = options['physical.udp']
+
return (options, connections, backoffs)
Modified: trunk/apps/freeviz/server.py
===================================================================
--- trunk/apps/freeviz/server.py 2006-04-07 20:01:48 UTC (rev 8496)
+++ trunk/apps/freeviz/server.py 2006-04-08 01:39:46 UTC (rev 8497)
@@ -1,3 +1,6 @@
+import sys
+sys.path+=['/home/freeviz//freeviz/SQLObject/']
+sys.path+=['/home/freeviz/freeviz/FormEncode/']
import socket
import threading
import handler
@@ -64,7 +67,7 @@
Base.conns -=1
Base.vlock.release()
return
- self.clnsock.shutdown(socket.SHUT_RDWR)
+# self.clnsock.shutdown(socket.SHUT_RDWR)
self.clnsock.close()
Base.vlock.acquire()
Base.chunks.append(self.chunk)
Modified: trunk/apps/freeviz/watchdog.sh
===================================================================
--- trunk/apps/freeviz/watchdog.sh 2006-04-07 20:01:48 UTC (rev 8496)
+++ trunk/apps/freeviz/watchdog.sh 2006-04-08 01:39:46 UTC (rev 8497)
@@ -1,4 +1,38 @@
-MAXTHREADS=100
-DELAY=10
+#! /bin/bash
+PSCMD="ps -C circo -o time,pid --no-headers"
-while (true);do A=$(netstat -atlnp 2>/dev/null |grep python|grep -c
CLOSE_WAIT); if (($A > $MAXTHREADS ));then (printf "warning too many
threads"|mail -s "WARNING freeviz" sleon) ; fi;sleep $DELAY;done
+function kgen {
+ echo killing generator proccess
+ kill -9 $(ps -e -o pid,cmd|grep python|grep gen|grep -E -o
"^[[:space:]]*[[:digit:]]+")
+}
+
+PROCESSES=$($PSCMD)
+OIFS=$IFS;IFS=
+for i in $PROCESSES;do
+ IFS=$OIFS
+ LINE=($i)
+ IFS=
+ PID=${LINE[1]}
+ DATA=${LINE[0]}
+ IFS=:
+ TIME=($DATA)
+ IFS=
+
+ #echo $PID $DATA DEBUG
+ #echo ${TIME[@]:0} DEBUG
+
+ if [ "${TIME[0]}" != "00" ];then
+ echo killing $PID , runs for several hours already
+ kill -9 $PID
+ kgen
+ fi
+
+ if (( "${TIME[1]}" > 3 ));then
+ echo killing $PID, runs more then 3 minutes
+ kill -9 $PID
+ kgen
+ fi
+done
+
+IFS=$OIFS
+