Mercurial > p > roundup > code
annotate tools/migrate-queries.py @ 7211:506c86823abb
Add config argument to more password.Password invocations.
The work done to allow password_pbkdf2_default_rounds to be overridden
for testing requires that calls to password.Password include a config
argument.
This was needed because using the real value more than quadrupled
testing runtime.
However there are still a few places where config was not being set
when Password was called. I think this fixes all of the ones that are
called from a function that have access to a db.config object.
The remaining ones all call Password(encrypted=x). This results in
Password.unpack() being called. If x is not a propertly formatted
password string ("{scheme}...", it calls encodePassword. It then
should end up raising the ConfigNotSet exception. This is
probably what we want as it means the shape of "x" is not correct.
I don't understand why Password.unpack() attempts to encrypt the value
of encrypted if it doesn't match the right form. According to codecov,
this encryption branch is being used, so somewhere x is of the wrong
form. Hmmm....
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 04 Mar 2023 00:17:26 -0500 |
| parents | 64b05e24dbd8 |
| children | fed0f839c260 |
| rev | line source |
|---|---|
|
3346
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
1 #! /usr/bin/env python |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
2 ''' |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
3 migrate-queries <instance-home> [<instance-home> *] |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
4 |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
5 Migrate old queries in the specified instances to Roundup 0.6.0+ by |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
6 removing the leading ? from their URLs. 0.6.0+ queries do not carry a |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
7 leading ?; it is added by the 0.6.0 templating, so old queries lead |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
8 to query URLs with a double leading ?? and a consequent 404 Not Found. |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
9 ''' |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
10 from __future__ import print_function |
|
3346
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
11 __author__ = 'James Kew <jkew@mediabright.co.uk>' |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
12 |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
13 import sys |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
14 import roundup.instance |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
15 |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
16 if len(sys.argv) == 1: |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
17 print(__doc__) |
|
3346
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
18 sys.exit(1) |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
19 |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
20 # Iterate over all instance homes specified in argv. |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
21 for home in sys.argv[1:]: |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
22 # Do some basic exception handling to catch bad arguments. |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
23 try: |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
24 instance = roundup.instance.open(home) |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
25 except: |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
26 print('Cannot open instance home directory %s!' % home) |
|
3346
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
27 continue |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
28 |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
29 db = instance.open('admin') |
| 4781 | 30 db.tx_Source = "cli" |
|
3346
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
31 |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
32 print('Migrating active queries in %s (%s):'%( |
|
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
33 instance.config.TRACKER_NAME, home)) |
|
3346
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
34 for query in db.query.list(): |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
35 url = db.query.get(query, 'url') |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
36 if url[0] == '?': |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
37 url = url[1:] |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
38 print(' Migrating query%s (%s)'%(query, |
|
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
39 db.query.get(query, 'name'))) |
|
3346
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
40 db.query.set(query, url=url) |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
41 |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
42 db.commit() |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
43 db.close() |
|
a133f03df238
consistency in file formats
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1850
diff
changeset
|
44 |
