summaryrefslogtreecommitdiff
path: root/presence.py
diff options
context:
space:
mode:
Diffstat (limited to 'presence.py')
-rwxr-xr-xpresence.py19
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