[Checkins] SVN: Sandbox/J1m/replaylog make replaylog easier to check out

Jim Fulton jim at zope.com
Sat May 5 02:33:50 EDT 2007


Log message for revision 75483:
  make replaylog easier to check out

Changed:
  A   Sandbox/J1m/replaylog/
  A   Sandbox/J1m/replaylog/replaylog.py
  D   Sandbox/J1m/replaylog.py

-=-
Copied: Sandbox/J1m/replaylog/replaylog.py (from rev 75460, Sandbox/J1m/replaylog.py)

Deleted: Sandbox/J1m/replaylog.py
===================================================================
--- Sandbox/J1m/replaylog.py	2007-05-05 06:33:04 UTC (rev 75482)
+++ Sandbox/J1m/replaylog.py	2007-05-05 06:33:49 UTC (rev 75483)
@@ -1,111 +0,0 @@
-# Replay a log file to load a test server
-
-import logging, re, sys, time, threading, httplib, pdb
-
-logger = logging.getLogger()
-logger.addHandler(logging.StreamHandler())
-
-log_parse = re.compile(
-    r"\d+[.]\d+[.]\d+[.]\d+" # ip
-    r"\s+"
-    r"\S+" # remote login
-    r"\s+"
-    r"\S+" # auth user
-    r"\s+"
-    r"\["
-    r"(\d\d)/([A-Z][a-z][a-z])/(\d\d\d\d):(\d\d):(\d\d):(\d\d)"
-    r"(?: [^ \t\]]+)?"
-    r"\]" # date
-    r"\s+"
-    r'"([^"]+)"' # request
-    r"\s"
-    ).match
-
-months = dict(
-    Jan=1, Feb=2, Mar=3, Apr=4, May=5, Jun=6,
-    Jul=7, Aug=8, Sep=9, Oct=10, Nov=11, Dec=12,
-    )
-
-queue = []
-
-def read(args=None):
-    if args is None:
-        args = sys.argv[1:]
-
-    good = bad = get = 0
-    for fname in args:
-        for line in open(fname):
-            m = log_parse(line)
-            if m is None:
-                bad += 1
-                continue
-
-            good += 1
-
-#            print m.groups()
-
-            day, month, year, hour, minute, second, request = m.groups()
-
-            month = months[month]
-            t = time.mktime(
-                (int(year), month, int(day),
-                 int(hour), int(minute), int(second),
-                 0, 0, 0))
-
-            url = request.split()
-            url.pop()
-            method = url.pop(0)
-            url = '%20'.join(url)
-            if method == 'GET':
-                get += 1
-            queue.append((t, url))
-                
-    print good, bad, get
-
-def process_queue(server):
-    results = {}
-    while 1:
-        try:
-            t, url = queue.pop()
-        except IndexError:
-            break
-
-##         t -= time.time()
-##         if t > 0:
-##             time.sleep(t)
-
-        conn = httplib.HTTPConnection(server)
-        conn.request("GET", url)
-        r = conn.getresponse()
-        results[r.status] = results.get(r.status, 0) + 1
-        r.read()
-        conn.close()
-##         sys.stdout.write('.')
-##         sys.stdout.flush()
-
-    print results
-            
-
-        
-
-def main():
-    global queue
-    queue = []
-
-    args = sys.argv[1:]
-    server = args.pop(0)
-
-    read(args)
-    queue.reverse()
-    threads = []
-##    process_queue()
-    for i in range(50):
-        thread = threading.Thread(target=process_queue, args=(server,))
-        thread.start()
-        threads.append(thread)
-
-    for thread in threads:
-        thread.join()
-            
-if __name__ == '__main__':
-    main()



More information about the Checkins mailing list