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
+


Reply via email to