in cdsreaper/jobwatcher.py [0:0]
def job_is_failed(s:V1JobStatus)->bool:
"""
returns true if the given job is NOT running and it has no successful completions
:param s: V1JobStatus object to be interrogated
:return: boolean
"""
return (s.active is None or s.active==0) and (s.succeeded is None or s.succeeded==0) and s.start_time is not None