Show More
@@ -0,0 +1,75 b'' | |||
|
1 | <% | |
|
2 | elems = [ | |
|
3 | ## general | |
|
4 | (_('RhodeCode Enterprise version'), c.rhodecode_version, ''), | |
|
5 | (_('Upgrade info endpoint'), c.rhodecode_update_url, ''), | |
|
6 | (_('Configuration INI file'), c.rhodecode_config_ini, ''), | |
|
7 | ## systems stats | |
|
8 | (_('RhodeCode Enterprise Server IP'), c.server_ip, ''), | |
|
9 | (_('RhodeCode Enterprise Server ID'), c.server_id, ''), | |
|
10 | (_('Platform'), c.platform, ''), | |
|
11 | (_('Uptime'), c.uptime_age, ''), | |
|
12 | (_('Storage location'), c.storage, ''), | |
|
13 | (_('Storage disk space'), "%s/%s, %s%% used%s" % (h.format_byte_size_binary(c.disk['used']), h.format_byte_size_binary(c.disk['total']),(c.disk['percent']), ' %s' % c.disk['error'] if 'error' in c.disk else ''), ''), | |
|
14 | ||
|
15 | (_('Search index storage'), c.index_storage, ''), | |
|
16 | (_('Search index size'), "%s %s" % (h.format_byte_size_binary(c.disk_index['used']), ' %s' % c.disk_index['error'] if 'error' in c.disk_index else ''), ''), | |
|
17 | ||
|
18 | (_('Gist storage'), c.gist_storage, ''), | |
|
19 | (_('Gist storage size'), "%s (%s items)%s" % (h.format_byte_size_binary(c.disk_gist['used']),c.disk_gist['items'], ' %s' % c.disk_gist['error'] if 'error' in c.disk_gist else ''), ''), | |
|
20 | ||
|
21 | (_('Archive cache'), c.archive_storage, ''), | |
|
22 | (_('Archive cache size'), "%s%s" % (h.format_byte_size_binary(c.disk_archive['used']), ' %s' % c.disk_archive['error'] if 'error' in c.disk_archive else ''), ''), | |
|
23 | ||
|
24 | (_('System memory'), c.system_memory, ''), | |
|
25 | (_('CPU'), '%s %%' %(c.cpu), ''), | |
|
26 | (_('Load'), '1min: %s, 5min: %s, 15min: %s' %(c.load['1_min'],c.load['5_min'],c.load['15_min']), ''), | |
|
27 | ||
|
28 | ## rhodecode stuff | |
|
29 | (_('Python version'), c.py_version, ''), | |
|
30 | (_('Python path'), c.py_path, ''), | |
|
31 | (_('GIT version'), c.git_version, ''), | |
|
32 | (_('HG version'), c.hg_version, ''), | |
|
33 | (_('SVN version'), c.svn_version, ''), | |
|
34 | (_('Database'), "%s @ version: %s" % (c.db_type, c.db_migrate_version), ''), | |
|
35 | (_('Database version'), c.db_version, ''), | |
|
36 | ||
|
37 | ] | |
|
38 | %> | |
|
39 | ||
|
40 | <pre> | |
|
41 | SYSTEM INFO | |
|
42 | ----------- | |
|
43 | ||
|
44 | % for dt, dd, tt in elems: | |
|
45 | ${dt}: ${dd} | |
|
46 | % endfor | |
|
47 | ||
|
48 | PYTHON PACKAGES | |
|
49 | --------------- | |
|
50 | ||
|
51 | % for key, value in c.py_modules: | |
|
52 | ${key}: ${value} | |
|
53 | % endfor | |
|
54 | ||
|
55 | SYSTEM SETTINGS | |
|
56 | --------------- | |
|
57 | ||
|
58 | % for key, value in sorted(c.rhodecode_ini_safe.items()): | |
|
59 | % if isinstance(value, dict): | |
|
60 | ||
|
61 | % for key2, value2 in value.items(): | |
|
62 | [${key}]${key2}: ${value2} | |
|
63 | % endfor | |
|
64 | ||
|
65 | % else: | |
|
66 | ${key}: ${value} | |
|
67 | % endif | |
|
68 | % endfor | |
|
69 | ||
|
70 | </pre> | |
|
71 | ||
|
72 | ||
|
73 | ||
|
74 | ||
|
75 |
@@ -49,7 +49,7 b' from rhodecode.lib.compat import Ordered' | |||
|
49 | 49 | from rhodecode.lib.ext_json import json |
|
50 | 50 | from rhodecode.lib.utils import jsonify |
|
51 | 51 | |
|
52 | from rhodecode.model.db import RhodeCodeUi, Repository | |
|
52 | from rhodecode.model.db import RhodeCodeUi, Repository, User | |
|
53 | 53 | from rhodecode.model.forms import ApplicationSettingsForm, \ |
|
54 | 54 | ApplicationUiSettingsForm, ApplicationVisualisationForm, \ |
|
55 | 55 | LabsSettingsForm, IssueTrackerPatternsForm |
@@ -60,6 +60,7 b' from rhodecode.model.meta import Session' | |||
|
60 | 60 | from rhodecode.model.settings import ( |
|
61 | 61 | IssueTrackerSettingsModel, VcsSettingsModel, SettingNotFound, |
|
62 | 62 | SettingsModel) |
|
63 | ||
|
63 | 64 | from rhodecode.model.supervisor import SupervisorModel, SUPERVISOR_MASTER |
|
64 | 65 | |
|
65 | 66 | |
@@ -524,6 +525,7 b' class SettingsController(BaseController)' | |||
|
524 | 525 | def settings_system(self): |
|
525 | 526 | """GET /admin/settings/system: All items in the collection""" |
|
526 | 527 | # url('admin_settings_system') |
|
528 | snapshot = str2bool(request.GET.get('snapshot')) | |
|
527 | 529 | c.active = 'system' |
|
528 | 530 | |
|
529 | 531 | defaults = self._form_defaults() |
@@ -558,6 +560,35 b' class SettingsController(BaseController)' | |||
|
558 | 560 | except TypeError: |
|
559 | 561 | c.system_memory = 'NOT AVAILABLE' |
|
560 | 562 | |
|
563 | rhodecode_ini_safe = rhodecode.CONFIG.copy() | |
|
564 | blacklist = [ | |
|
565 | 'rhodecode_license_key', | |
|
566 | 'routes.map', | |
|
567 | 'pylons.h', | |
|
568 | 'pylons.app_globals', | |
|
569 | 'pylons.environ_config', | |
|
570 | 'sqlalchemy.db1.url', | |
|
571 | ('app_conf', 'sqlalchemy.db1.url') | |
|
572 | ] | |
|
573 | for k in blacklist: | |
|
574 | if isinstance(k, tuple): | |
|
575 | section, key = k | |
|
576 | if section in rhodecode_ini_safe: | |
|
577 | rhodecode_ini_safe[section].pop(key, None) | |
|
578 | else: | |
|
579 | rhodecode_ini_safe.pop(k, None) | |
|
580 | ||
|
581 | c.rhodecode_ini_safe = rhodecode_ini_safe | |
|
582 | ||
|
583 | # TODO: marcink, figure out how to allow only selected users to do this | |
|
584 | c.allowed_to_snapshot = False | |
|
585 | ||
|
586 | if snapshot: | |
|
587 | if c.allowed_to_snapshot: | |
|
588 | return render('admin/settings/settings_system_snapshot.html') | |
|
589 | else: | |
|
590 | h.flash('You are not allowed to do this', category='warning') | |
|
591 | ||
|
561 | 592 | return htmlfill.render( |
|
562 | 593 | render('admin/settings/settings.html'), |
|
563 | 594 | defaults=defaults, |
@@ -45,6 +45,9 b'' | |||
|
45 | 45 | <div class="panel panel-default"> |
|
46 | 46 | <div class="panel-heading"> |
|
47 | 47 | <h3 class="panel-title">${_('System Info')}</h3> |
|
48 | % if c.allowed_to_snapshot: | |
|
49 | <a href="${url('admin_settings_system', snapshot=1)}" class="panel-edit">${_('create snapshot')}</a> | |
|
50 | % endif | |
|
48 | 51 | </div> |
|
49 | 52 | <div class="panel-body"> |
|
50 | 53 | <dl class="dl-horizontal settings"> |
General Comments 0
You need to be logged in to leave comments.
Login now