annotate tools/migrate-queries.py @ 5661:b08a308c273b

Better display for Link/Multilink and content Link/Multilink are now displayed as a dictionary by default. The format is controlled by the setting of the @verbose option. With @verbose=0 we get the old behavior displaying only the id. With the default @verbose=1 we get a dictionary with the id and a link inside. With @verbose=2 or larger we get the label property in the dictionary in addition (e.g. the name of a status or the name of a file). The content property is also handled differently now. For @verbose < 2 we get a dictionary with a link property in it. The property points to the standard download link for the content (or message). For @verbose >= 2 we get the previous behavior, the content property as a possibly very large json string.
author Ralf Schlatterbeck <rsc@runtux.com>
date Fri, 22 Mar 2019 14:03:37 +0100
parents 64b05e24dbd8
children fed0f839c260
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
6e9b9743de89 Implementation for:
John Rouillard <rouilj@ieee.org>
parents: 3346
diff changeset
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

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