diff --git a/plinth/modules/performance/manifest.py b/plinth/modules/performance/manifest.py index 3101ea0f3..43ac3a92d 100644 --- a/plinth/modules/performance/manifest.py +++ b/plinth/modules/performance/manifest.py @@ -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() }] }]