]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/orch: add new timestamps in DaemonDescription
authorSage Weil <sage@redhat.com>
Wed, 4 Mar 2020 16:18:47 +0000 (10:18 -0600)
committerSage Weil <sage@redhat.com>
Thu, 5 Mar 2020 12:42:26 +0000 (06:42 -0600)
Signed-off-by: Sage Weil <sage@redhat.com>
src/pybind/mgr/orchestrator/_interface.py

index eeab627b9c7625d2b2b298be4e371ac5d018a983..61251bc44db8a471c555c52283762f992eed4e40 100644 (file)
@@ -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):
     """