From 05dbfe1c64a66f0d810e3a66dc9dc6c4aefa1c17 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 4 Mar 2020 10:18:47 -0600 Subject: [PATCH] mgr/orch: add new timestamps in DaemonDescription Signed-off-by: Sage Weil --- src/pybind/mgr/orchestrator/_interface.py | 28 ++++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/pybind/mgr/orchestrator/_interface.py b/src/pybind/mgr/orchestrator/_interface.py index eeab627b9c7..61251bc44db 100644 --- a/src/pybind/mgr/orchestrator/_interface.py +++ b/src/pybind/mgr/orchestrator/_interface.py @@ -1376,7 +1376,11 @@ class DaemonDescription(object): version=None, status=None, status_desc=None, - last_refresh=None): + last_refresh=None, + created=None, + started=None, + last_configured=None, + last_deployed=None): # Host is at the same granularity as InventoryHost self.hostname = hostname @@ -1408,6 +1412,11 @@ class DaemonDescription(object): # datetime when this info was last refreshed self.last_refresh = last_refresh # type: Optional[datetime.datetime] + self.created = created # type: Optional[datetime.datetime] + self.started = started # type: Optional[datetime.datetime] + self.last_configured = last_configured # type: Optional[datetime.datetime] + self.last_deployed = last_deployed # type: Optional[datetime.datetime] + def name(self): return '%s.%s' % (self.daemon_type, self.daemon_id) @@ -1443,18 +1452,21 @@ class DaemonDescription(object): 'status': self.status, 'status_desc': self.status_desc, } - if self.last_refresh: - out['last_refresh'] = self.last_refresh.strftime(DATEFMT) + for k in ['last_refresh', 'created', 'started', 'last_deployed', + 'last_configured']: + if getattr(self, k): + out[k] = getattr(self, k).strftime(DATEFMT) return {k: v for (k, v) in out.items() if v is not None} @classmethod @handle_type_error def from_json(cls, data): - if 'last_refresh' in data: - data['last_refresh'] = datetime.datetime.strptime( - data['last_refresh'], - DATEFMT) - return cls(**data) + c = data.copy() + for k in ['last_refresh', 'created', 'started', 'last_deployed', + 'last_configured']: + if k in c: + c[k] = datetime.datetime.strptime(c[k], DATEFMT) + return cls(**c) class ServiceDescription(object): """ -- 2.39.5