annotate tools/load_tracker.py @ 5118:57452bc6d989

issue2550853 - better error handling and cleanup on some postgres tests by Stuart McGraw. My postgres tests passed both before and after I applied his patch, but the code change seems rational. issue2086536 - back_postgresql: fixing pg_command and prefering psycopg2. Patch done by Philipp Gortan (mephinet). His patch also improves handling of retryable errors. Applied and edited by John Rouillard. Edits included removing support for psycopg1. See: https://sourceforge.net/p/roundup/mailman/message/32855027/ for rational for dropping it Again all 137 postgres tests pass.
author John Rouillard <rouilj@ieee.org>
date Sat, 02 Jul 2016 21:15:23 -0400
parents 6e9b9743de89
children 64b05e24dbd8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 #! /usr/bin/env python
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 '''
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 Usage: %s <tracker home> <N>
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 Load up the indicated tracker with N issues and N/100 users.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 '''
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 import sys, os, random
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 from roundup import instance
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 # open the instance
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 if len(sys.argv) < 2:
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 print "Error: Not enough arguments"
3343
53d278e1440f fix error message. backport candidate
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 2261
diff changeset
14 print __doc__.strip()%(sys.argv[0])
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 sys.exit(1)
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 tracker_home = sys.argv[1]
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 N = int(sys.argv[2])
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 # open the tracker
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 tracker = instance.open(tracker_home)
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 db = tracker.open('admin')
4781
6e9b9743de89 Implementation for:
John Rouillard <rouilj@ieee.org>
parents: 4570
diff changeset
22 db.tx_Source = "cli"
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24 priorities = db.priority.list()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 statuses = db.status.list()
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
26 resolved_id = db.status.lookup('resolved')
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
27 statuses.remove(resolved_id)
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 names = ['alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta',
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 'theta', 'iota', 'kappa', 'lambda', 'mu', 'nu', 'xi', 'omicron', 'pi',
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 'rho']
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 titles = '''Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 Duis nibh purus, bibendum sed, condimentum ut, bibendum ut, risus.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 Fusce pede enim, nonummy sit amet, dapibus a, blandit eget, metus.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 Nulla risus.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 Vivamus tincidunt.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 Donec consequat convallis quam.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 Sed convallis vehicula felis.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 Aliquam laoreet, dui quis pharetra vehicula, magna justo.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 Euismod felis, eu adipiscing eros metus id tortor.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 Suspendisse et turpis.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 Aenean non felis.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44 Nam egestas eros.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45 Integer tellus quam, mattis ac, vestibulum sed, egestas quis, mauris.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 Nulla tincidunt diam sit amet dui.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 Nam odio mauris, dignissim vitae, eleifend eu, consectetuer id, risus.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 Suspendisse potenti.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49 Donec tincidunt.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50 Vestibulum gravida.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 Fusce luctus, neque id mattis fringilla, purus pede sodales pede.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52 Quis ultricies urna odio sed orci.'''.splitlines()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
54 try:
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
55 try:
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
56 db.user.lookup('alpha0')
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
57 except:
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
58 # add some users
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
59 M = N/100
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
60 for i in range(M):
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
61 print '\ruser', i, ' ',
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
62 sys.stdout.flush()
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
63 if i/17 == 0:
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
64 db.user.create(username=names[i%17])
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
65 else:
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
66 db.user.create(username=names[i%17]+str(i/17))
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
67
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
68 # assignable user list
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69 users = db.user.list()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
70 users.remove(db.user.lookup('anonymous'))
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
71 print
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
72
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
73 # now create the issues
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
74 for i in range(N):
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
75 print '\rissue', i, ' ',
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
76 sys.stdout.flush()
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
77 # in practise, about 90% of issues are resolved
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
78 if random.random() > .9:
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
79 status = random.choice(statuses)
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
80 else:
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
81 status = resolved_id
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82 db.issue.create(
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
83 title=random.choice(titles),
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
84 priority=random.choice(priorities),
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
85 status=status,
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
86 assignedto=random.choice(users))
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
87 if not i%1000:
2230
ca2664e095be disable forking server when os.fork() not available [SF#938586]
Richard Jones <richard@users.sourceforge.net>
parents: 2228
diff changeset
88 db.commit()
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
89 print
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
90
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
91 db.commit()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92 finally:
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
93 db.close()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
95 # vim: set filetype=python ts=4 sw=4 et si

Roundup Issue Tracker: http://roundup-tracker.org/