mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-07-22 11:59:33 +00:00
performance: Fix web client link to Cockpit
Closes: #2022. - Differently URL based on version of Cockpit used. - Lazily evaluate when necessary. - Cache the result. [sunil: Use subprocess.run() instead of getoutput() for security] [sunil: Use long form arguments in command invocation for readability] [sunil: Perform isort] Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
This commit is contained in:
parent
cbdd3bb0c0
commit
4ca0421581
@ -3,12 +3,36 @@
|
||||
FreedomBox app for System Monitoring (cockpit-pcp) in ‘System’.
|
||||
"""
|
||||
|
||||
import subprocess
|
||||
from functools import lru_cache
|
||||
|
||||
from django.utils.functional import lazy
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from plinth.utils import Version
|
||||
|
||||
|
||||
@lru_cache
|
||||
def _get_url():
|
||||
"""Return the web client URL based on Cockpit version."""
|
||||
process = subprocess.run(
|
||||
['dpkg-query', '--showformat=${Version}', '--show', 'cockpit'],
|
||||
stdout=subprocess.PIPE)
|
||||
cockpit_version = process.stdout.decode()
|
||||
if Version(cockpit_version) >= Version('235'):
|
||||
url = '/_cockpit/metrics'
|
||||
else:
|
||||
url = '/_cockpit/system/graphs'
|
||||
|
||||
return url
|
||||
|
||||
|
||||
get_url = lazy(_get_url, str)
|
||||
|
||||
clients = [{
|
||||
'name': _('Cockpit'),
|
||||
'platforms': [{
|
||||
'type': 'web',
|
||||
'url': '/_cockpit/system/graphs'
|
||||
'url': get_url()
|
||||
}]
|
||||
}]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user