From 5e5ac0be507542a4c9cc9c2dfb6eb1c7c0887bbe Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sun, 5 Aug 2018 23:34:13 +0000 Subject: [PATCH] =?UTF-8?q?Clarify=20handling=20of=20'not-really-unitary'?= =?UTF-8?q?=20operations=20=C3=B4.o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/yunohost/log.py | 21 ++++++++++++++++----- src/yunohost/service.py | 4 +++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/yunohost/log.py b/src/yunohost/log.py index 50d48e9a0..4c3a334a5 100644 --- a/src/yunohost/log.py +++ b/src/yunohost/log.py @@ -353,8 +353,16 @@ class UnitOperation(object): name = [self.started_at.strftime("%Y%m%d-%H%M%S")] name += [self.operation] - if self.related_to: - name += [self.related_to[0][1]] + + if hasattr(self, "name_parameter_override"): + # This is for special cases where the operation is not really unitary + # For instance, the regen conf cannot be logged "per service" because of + # the way it's built + name.append(self.name_parameter_override) + elif self.related_to: + # We use the name of the first related thing + name.append(self.related_to[0][1]) + self._name = '-'.join(name) return self._name @@ -432,13 +440,16 @@ class UnitOperation(object): self.error(m18n.n('log_operation_unit_unclosed_properly')) def _get_description_from_name(name): - parts = name.split("-") + parts = name.split("-", 3) try: try: datetime.strptime(" ".join(parts[:2]), "%Y%m%d %H%M%S") except ValueError: - return m18n.n("log_" + parts[0], *parts[1:]) + key = "log_" + parts[0] + args = parts[1:] else: - return m18n.n("log_" + parts[2], *parts[3:]) + key = "log_" + parts[2] + args = parts[3:] + return m18n.n(key, *args) except IndexError: return name diff --git a/src/yunohost/service.py b/src/yunohost/service.py index b5a7a5c11..9f135fe35 100644 --- a/src/yunohost/service.py +++ b/src/yunohost/service.py @@ -381,7 +381,9 @@ def service_regen_conf(uo, names=[], with_diff=False, force=False, dry_run=False if not dry_run: uo.related_to = [('service', x) for x in names] if not names: - uo.related_to = [('service', 'all')] + uo.name_parameter_override = 'all' + elif len(names) != 1: + uo.name_parameter_override = str(len(uo.related_to))+'_services' uo.start() # Clean pending conf directory