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
# 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)
'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):
"""