diff options
| author | Scott <[email protected]> | 2021-12-04 21:23:11 -0800 |
|---|---|---|
| committer | Scott <[email protected]> | 2021-12-04 21:23:11 -0800 |
| commit | b29be4f1750fd20bd2eada88e751dfae85817882 (patch) | |
| tree | d776c05519505fa3234ed44ae952163f0853e88c /presence.py | |
| parent | ed8fa2b10b0177b15b7423263bdd390efde2f0c8 (diff) | |
Various changes.
Diffstat (limited to 'presence.py')
| -rwxr-xr-x | presence.py | 19 |
1 files changed, 14 insertions, 5 deletions
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 [email protected] 'cat /home/scott/cron/persisted_mac_addresses.txt'" - ) - self.parse_raw_macs_file(raw, Location.CABIN) + try: + raw = cmd_with_timeout( + "ssh [email protected] '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 |
