Mercurial > p > roundup > code
annotate website/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 | a35d4e0c4e07 |
| children | bc95f7431efb |
| rev | line source |
|---|---|
|
6477
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
1 import logging |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
2 logger = logging.getLogger('extension') |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
3 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
4 import sys |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
5 from roundup import __version__ as roundup_version |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
6 def AboutPage(db): |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
7 "report useful info about this tracker" |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
8 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
9 def is_module_loaded(module): |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
10 modules = list(sys.modules.keys()) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
11 return module in modules |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
12 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
13 def get_status_of_module(module, prefix=None, version=True): |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
14 modules = list(sys.modules.keys()) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
15 is_enabled = module in modules |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
16 if is_enabled: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
17 if module == 'pyme': |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
18 from pyme import version |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
19 version="version %s"%version.versionstr |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
20 elif module == 'pychart': |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
21 from pychart import version |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
22 version="version %s"%version.version |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
23 elif module == 'sqlite3': |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
24 from sqlite3 import version |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
25 version="version %s"%version |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
26 elif module == 'xapian': |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
27 from xapian import version_string |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
28 version="version %s"%version_string() |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
29 else: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
30 if version: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
31 m = __import__(module) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
32 try: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
33 version="version %s"%m.__version__ |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
34 except AttributeError: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
35 version="version unavailable - exception thrown" |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
36 else: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
37 version="version unavailable" |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
38 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
39 if prefix: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
40 return "%s %s %s enabled: %s"%(prefix, module, version, is_enabled) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
41 else: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
42 return "Module: %s %s enabled: %s"%(module, version, is_enabled) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
43 else: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
44 if prefix: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
45 return "%s %s enabled: %s"%(prefix, module, is_enabled) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
46 else: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
47 return "Module: %s enabled: %s"%(module, is_enabled) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
48 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
49 info = [] |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
50 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
51 info.append("Tracker name: %s<br>"%db.config['TRACKER_NAME']) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
52 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
53 info.append("<h2>Operating environment</h2>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
54 info.append('<a href="http://roundup.sourceforge.net/">Roundup</a> version: %s<br>'%roundup_version) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
55 info.append("Python Version: %s<br>"%sys.version) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
56 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
57 info.append("<h2>Configuration</h2>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
58 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
59 backend = db.config['RDBMS_BACKEND'] |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
60 info.append("Roundup backend: %s<br>"%backend) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
61 if backend != 'anydbm': |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
62 info.append("Roundup db cache: %s<br>"%db.config['RDBMS_CACHE_SIZE']) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
63 info.append("Roundup isolation_level: %s<br>"%db.config['RDBMS_ISOLATION_LEVEL']) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
64 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
65 info.append("Roundup template: %s<br>"%db.config['TEMPLATE_ENGINE']) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
66 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
67 info.append("<h2>Database modules</h2>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
68 info.append(get_status_of_module('anydbm', version=False) + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
69 info.append(get_status_of_module('dbm', version=False) + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
70 info.append(get_status_of_module('sqlite3') + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
71 info.append(get_status_of_module('MySQLdb') + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
72 info.append(get_status_of_module('psycopg2') + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
73 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
74 info.append("<h2>Other modules</h2>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
75 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
76 indexer = db.config['INDEXER'] |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
77 if not indexer: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
78 if is_module_loaded('xapian'): |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
79 indexer="unset using xapian" |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
80 elif is_module_loaded('whoosh'): |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
81 indexer="unset using woosh" |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
82 else: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
83 indexer="unset using native" |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
84 else: |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
85 indexer="set to " + indexer |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
86 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
87 info.append("Indexer used for full-text: %s<br>"%indexer) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
88 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
89 info.append("Available indexers:<br><ul>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
90 if is_module_loaded('xapian'): |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
91 info.append("<li>%s</li>"%get_status_of_module('xapian', prefix="Indexer loaded:")) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
92 if is_module_loaded('whoosh'): |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
93 info.append("<li>%s</li>"%get_status_of_module('whoosh', prefix="Indexer loaded:")) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
94 info.append("<li>Indexer loaded: native: True</li>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
95 info.append("</ul>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
96 info.append(get_status_of_module('pytz') + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
97 info.append(get_status_of_module('pyme') + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
98 info.append(get_status_of_module('OpenSSL') + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
99 info.append(get_status_of_module('pychart') + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
100 info.append(get_status_of_module('pygal') + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
101 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
102 info.append(get_status_of_module('jinja2') + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
103 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
104 uid = db._db.getuid() |
|
6478
a35d4e0c4e07
Fix permissions check. Use role not perm check.
John Rouillard <rouilj@ieee.org>
parents:
6477
diff
changeset
|
105 if uid == "1" or db._db.user.has_role(uid,"Admin"): |
|
6477
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
106 #may leak sensitive info about system, directory paths etc. |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
107 #and keys so require admin user access. Consider expanding |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
108 #to Admin rights for tracker. |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
109 info.append("") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
110 info.append("Module Path: %r"%sys.path) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
111 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
112 info.append("<h2>Environment Variables</h2>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
113 info.append("<pre>") # include pre to prevent wrapping of values |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
114 for key in db._client.env.keys(): |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
115 info.append("%s=%s"%(key,db._client.env[key]) + "<br>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
116 info.append("</pre>") |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
117 return "\n".join(info) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
118 |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
119 def init(instance): |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
120 instance.registerUtil('AboutPage', AboutPage) |
|
0ecfa817299b
Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
121 |
