annotate tools/load_tracker.py @ 7854:171ff2e487df

Add @group for grouping in rest interface. Helpful for using optgroup in select boxes.
author John Rouillard <rouilj@ieee.org>
date Mon, 01 Apr 2024 14:42:36 -0400
parents e1dfd21f2252
children fed0f839c260
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
5376
64b05e24dbd8 Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents: 4781
diff changeset
8 from __future__ import print_function
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 import sys, os, random
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 from roundup import instance
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 # open the instance
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 if len(sys.argv) < 2:
5376
64b05e24dbd8 Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents: 4781
diff changeset
14 print("Error: Not enough arguments")
64b05e24dbd8 Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents: 4781
diff changeset
15 print(__doc__.strip()%(sys.argv[0]))
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 sys.exit(1)
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 tracker_home = sys.argv[1]
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 N = int(sys.argv[2])
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 # open the tracker
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 tracker = instance.open(tracker_home)
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22 db = tracker.open('admin')
4781
6e9b9743de89 Implementation for:
John Rouillard <rouilj@ieee.org>
parents: 4570
diff changeset
23 db.tx_Source = "cli"
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 priorities = db.priority.list()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 statuses = db.status.list()
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
27 resolved_id = db.status.lookup('resolved')
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
28 statuses.remove(resolved_id)
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 names = ['alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta',
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 'theta', 'iota', 'kappa', 'lambda', 'mu', 'nu', 'xi', 'omicron', 'pi',
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 'rho']
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 titles = '''Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 Duis nibh purus, bibendum sed, condimentum ut, bibendum ut, risus.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 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
37 Nulla risus.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 Vivamus tincidunt.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 Donec consequat convallis quam.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 Sed convallis vehicula felis.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 Aliquam laoreet, dui quis pharetra vehicula, magna justo.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 Euismod felis, eu adipiscing eros metus id tortor.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 Suspendisse et turpis.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44 Aenean non felis.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45 Nam egestas eros.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 Integer tellus quam, mattis ac, vestibulum sed, egestas quis, mauris.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 Nulla tincidunt diam sit amet dui.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 Nam odio mauris, dignissim vitae, eleifend eu, consectetuer id, risus.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49 Suspendisse potenti.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50 Donec tincidunt.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 Vestibulum gravida.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52 Fusce luctus, neque id mattis fringilla, purus pede sodales pede.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53 Quis ultricies urna odio sed orci.'''.splitlines()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
54
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
55 try:
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
56 try:
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
57 db.user.lookup('alpha0')
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
58 except:
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
59 # add some users
5400
2120f77554d5 Python 3 preparation: use // and __truediv__ as needed.
Joseph Myers <jsm@polyomino.org.uk>
parents: 5376
diff changeset
60 M = N//100
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
61 for i in range(M):
5376
64b05e24dbd8 Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents: 4781
diff changeset
62 print('\ruser', i, ' ', end=' ')
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
63 sys.stdout.flush()
5400
2120f77554d5 Python 3 preparation: use // and __truediv__ as needed.
Joseph Myers <jsm@polyomino.org.uk>
parents: 5376
diff changeset
64 if i//17 == 0:
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
65 db.user.create(username=names[i%17])
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
66 else:
5400
2120f77554d5 Python 3 preparation: use // and __truediv__ as needed.
Joseph Myers <jsm@polyomino.org.uk>
parents: 5376
diff changeset
67 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
68
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
69 # assignable user list
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
70 users = db.user.list()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
71 users.remove(db.user.lookup('anonymous'))
5376
64b05e24dbd8 Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents: 4781
diff changeset
72 print()
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
73
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
74 # now create the issues
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
75 for i in range(N):
5376
64b05e24dbd8 Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents: 4781
diff changeset
76 print('\rissue', i, ' ', end=' ')
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
77 sys.stdout.flush()
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
78 # in practise, about 90% of issues are resolved
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
79 if random.random() > .9:
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
80 status = random.choice(statuses)
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
81 else:
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
82 status = resolved_id
7741
e1dfd21f2252 feat: randomize creator of generated issues.
John Rouillard <rouilj@ieee.org>
parents: 5400
diff changeset
83 db.journaltag = db.user.get(random.choice(users), 'username')
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
84 db.issue.create(
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85 title=random.choice(titles),
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
86 priority=random.choice(priorities),
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
87 status=status,
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
88 assignedto=random.choice(users))
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
89 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
90 db.commit()
5376
64b05e24dbd8 Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents: 4781
diff changeset
91 print()
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
93 db.commit()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94 finally:
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
95 db.close()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
96
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
97 # vim: set filetype=python ts=4 sw=4 et si

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