Mercurial > p > roundup > code
annotate issues/extensions/templating.py @ 6502:7fb13dc67a41
roundup-server native SSL support only TLS 1.2.
1.1 was suported but is deprecated.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Thu, 30 Sep 2021 19:17:56 -0400 |
| parents | bd7015b83ebf |
| children |
| 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 |
