def _sanity_check(executable, hostname, hash_executable=None, expiration_delay=DEFAULT_EXPIRATION_DELAY, session=None): """ Check if processes on the host are still running. :param executable: Executable name as a string, e.g., conveyor-submitter. :param hostname: Hostname as a string, e.g., rucio-daemon-prod-01.cern.ch. :param hash_executable: Hash of the executable. :param expiration_delay: time (in seconds) after which any inactive health check will be removed :param session: The database session in use. """ if executable: if not hash_executable: hash_executable = calc_hash(executable) for pid, in session.query(distinct(Heartbeats.pid)).filter_by( executable=hash_executable, hostname=hostname): if not pid_exists(pid): session.query(Heartbeats).filter_by(executable=hash_executable, hostname=hostname, pid=pid).delete() else: for pid, in session.query(distinct( Heartbeats.pid)).filter_by(hostname=hostname): if not pid_exists(pid): session.query(Heartbeats).filter_by(hostname=hostname, pid=pid).delete() if expiration_delay: cardiac_arrest(older_than=expiration_delay, session=session)
def _sanity_check(executable, hostname, hash_executable=None, session=None): """ Check if processes on the host are still running. :param executable: Executable name as a string, e.g., conveyor-submitter. :param hostname: Hostname as a string, e.g., rucio-daemon-prod-01.cern.ch. :param hash_executable: Hash of the executable. :param session: The database session in use. """ if executable: if not hash_executable: hash_executable = calc_hash(executable) for pid, in session.query(distinct(Heartbeats.pid)).filter_by( executable=hash_executable, hostname=hostname): if not pid_exists(pid): session.query(Heartbeats).filter_by(executable=hash_executable, hostname=hostname, pid=pid).delete() else: for pid, in session.query(distinct( Heartbeats.pid)).filter_by(hostname=hostname): if not pid_exists(pid): session.query(Heartbeats).filter_by(hostname=hostname, pid=pid).delete()