annotate issues/extensions/templating.py @ 6503:4c7381f5051b

Enable bionic build replacing xenail Enable bionic 18.04 replacing xenial 16.04. Curl https://oligarchy.co.uk/xapian/ is failing to validate the SSL cert with the CA on xenial. See if this fixes it. Python 3.4 is not supported on bionic is obsolete so remove testing. It was retained because 3.4 was EPEL version for centos 7. With centos demise, removed it from 'python:' settings. Test latest 2.x release, earliest 3.x release supported by bionic (3.6), last two production 3.x releases and nightly to cut down on cost of testing. Also run tests in 3.x series in reverse order so 3.9 runs first. Hence we fail early as newest pythons seem to have more issues with the code.
author John Rouillard <rouilj@ieee.org>
date Thu, 30 Sep 2021 20:31:29 -0400
parents bd7015b83ebf
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6475
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
1 import logging
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
2 logger = logging.getLogger('extension')
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
3
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
4 import sys
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
5 from roundup import __version__ as roundup_version
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
6 def AboutPage(db):
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
7 "report useful info about this tracker"
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
8
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
9 def is_module_loaded(module):
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
10 modules = sys.modules.keys()
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
11 return module in modules
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
12
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
13 def get_status_of_module(module, prefix=None, version=True):
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
14 modules = sys.modules.keys()
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
15 is_enabled = module in modules
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
16 if is_enabled:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
17 if module == 'pyme':
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
18 from pyme import version
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
19 version="version %s"%version.versionstr
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
20 elif module == 'pychart':
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
21 from pychart import version
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
22 version="version %s"%version.version
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
23 elif module == 'sqlite3':
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
24 from sqlite3 import version
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
25 version="version %s"%version
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
26 else:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
27 if version:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
28 m = __import__(module)
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
29 try:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
30 version="version %s"%m.__version__
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
31 except AttributeError:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
32 version="version unavailable - exception thrown"
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
33 else:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
34 version="version unavailable"
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
35
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
36 if prefix:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
37 return "%s %s %s enabled: %s"%(prefix, module, version, is_enabled)
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
38 else:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
39 return "Module: %s %s enabled: %s"%(module, version, is_enabled)
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
40 else:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
41 if prefix:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
42 return "%s %s enabled: %s"%(prefix, module, is_enabled)
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
43 else:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
44 return "Module: %s enabled: %s"%(module, is_enabled)
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
45
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
46 info = []
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
47
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
48 info.append("Tracker name: %s<br>"%db.config['TRACKER_NAME'])
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
49
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
50 info.append("<h2>Operating environment</h2>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
51 info.append('<a href="http://roundup.sourceforge.net/">Roundup</a> version: %s<br>'%roundup_version)
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
52 info.append("Python Version: %s<br>"%sys.version)
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
53
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
54 info.append("<h2>Configuration</h2>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
55
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
56 backend = db.config['RDBMS_BACKEND']
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
57 info.append("Roundup backend: %s<br>"%backend)
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
58 if backend != 'anydbm':
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
59 info.append("Roundup db cache: %s<br>"%db.config['RDBMS_CACHE_SIZE'])
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
60 info.append("Roundup isolation_level: %s<br>"%db.config['RDBMS_ISOLATION_LEVEL'])
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
61
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
62 info.append("Roundup template: %s<br>"%db.config['TEMPLATE_ENGINE'])
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
63
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
64 info.append("<h2>Database modules</h2>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
65 info.append(get_status_of_module('anydbm', version=False) + "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
66 info.append(get_status_of_module('sqlite3') + "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
67 info.append(get_status_of_module('MySQLdb') + "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
68 info.append(get_status_of_module('psycopg2') + "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
69
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
70 info.append("<h2>Other modules</h2>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
71
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
72 info.append(get_status_of_module('pytz') + "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
73 if is_module_loaded('xapian'):
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
74 info.append(get_status_of_module('xapian', prefix="Test indexer:") +
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
75 "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
76 elif is_module_loaded('whoosh'):
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
77 info.append(get_status_of_module('whoosh', prefix="Test indexer:") +
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
78 "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
79 else:
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
80 info.append("Text indexer: Native enabled: True<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
81
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
82 info.append(get_status_of_module('pyme') + "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
83 info.append(get_status_of_module('OpenSSL') + "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
84 info.append(get_status_of_module('pychart') + "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
85
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
86 info.append(get_status_of_module('jinja2') + "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
87
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
88 if db._db.getuid() == "1":
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
89 #may leak sensitive info about system, directory paths etc.
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
90 #and keys so require admin user access. Consider expanding
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
91 #to Admin rights for tracker.
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
92 info.append("")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
93 info.append("Module Path: %r"%sys.path)
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
94
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
95 info.append("<h2>Environment Variables</h2>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
96 info.append("<pre>") # include pre to prevent wrapping of values
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
97 for key in db._client.env.keys():
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
98 info.append("%s=%s"%(key,db._client.env[key]) + "<br>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
99 info.append("</pre>")
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
100 return "\n".join(info)
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
101
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
102 def init(instance):
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
103 instance.registerUtil('AboutPage', AboutPage)
bd7015b83ebf add about page with homeurl and query args ?@template=about
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
104

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