From b29be4f1750fd20bd2eada88e751dfae85817882 Mon Sep 17 00:00:00 2001 From: Scott Date: Sat, 4 Dec 2021 21:23:11 -0800 Subject: Various changes. --- presence.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'presence.py') diff --git a/presence.py b/presence.py index d7db416..5fad457 100755 --- a/presence.py +++ b/presence.py @@ -5,6 +5,7 @@ from collections import defaultdict import enum import logging import re +import sys from typing import Dict, List # Note: this module is fairly early loaded. Be aware of dependencies. @@ -81,16 +82,24 @@ class PresenceDetection(object): self.update() def update(self) -> None: - from exec_utils import cmd + from exec_utils import cmd_with_timeout try: persisted_macs = config.config['presence_macs_file'] except KeyError: persisted_macs = '/home/scott/cron/persisted_mac_addresses.txt' self.read_persisted_macs_file(persisted_macs, Location.HOUSE) - raw = cmd( - "ssh scott@meerkat.cabin 'cat /home/scott/cron/persisted_mac_addresses.txt'" - ) - self.parse_raw_macs_file(raw, Location.CABIN) + try: + raw = cmd_with_timeout( + "ssh scott@meerkat.cabin 'cat /home/scott/cron/persisted_mac_addresses.txt'", + timeout_seconds=10.0, + ) + self.parse_raw_macs_file(raw, Location.CABIN) + except Exception as e: + logger.exception(e) + logger.error( + 'Unable to fetch MAC Addresses from meerkat; can\'t do proper presence detection.' + ) + sys.exit(1) def read_persisted_macs_file( self, filename: str, location: Location -- cgit v1.3