parent
caf87c25dd
commit
297f59c0db
1 changed files with 0 additions and 86 deletions
@ -1,86 +0,0 @@ |
|||||||
#!/usr/bin/env python3 |
|
||||||
import errno |
|
||||||
import fcntl |
|
||||||
import os |
|
||||||
import signal |
|
||||||
import subprocess |
|
||||||
import sys |
|
||||||
import time |
|
||||||
|
|
||||||
import requests |
|
||||||
|
|
||||||
from common.params import Params |
|
||||||
from common.timeout import Timeout |
|
||||||
|
|
||||||
HOST = "testing.comma.life" |
|
||||||
|
|
||||||
|
|
||||||
def unblock_stdout(): |
|
||||||
# get a non-blocking stdout |
|
||||||
child_pid, child_pty = os.forkpty() |
|
||||||
if child_pid != 0: # parent |
|
||||||
|
|
||||||
# child is in its own process group, manually pass kill signals |
|
||||||
signal.signal(signal.SIGINT, lambda signum, frame: os.kill(child_pid, signal.SIGINT)) |
|
||||||
signal.signal(signal.SIGTERM, lambda signum, frame: os.kill(child_pid, signal.SIGTERM)) |
|
||||||
|
|
||||||
fcntl.fcntl(sys.stdout, fcntl.F_SETFL, fcntl.fcntl(sys.stdout, fcntl.F_GETFL) | os.O_NONBLOCK) |
|
||||||
|
|
||||||
while True: |
|
||||||
try: |
|
||||||
dat = os.read(child_pty, 4096) |
|
||||||
except OSError as e: |
|
||||||
if e.errno == errno.EIO: |
|
||||||
break |
|
||||||
continue |
|
||||||
|
|
||||||
if not dat: |
|
||||||
break |
|
||||||
|
|
||||||
try: |
|
||||||
sys.stdout.write(dat.decode('utf8')) |
|
||||||
except (OSError, IOError, UnicodeDecodeError): |
|
||||||
pass |
|
||||||
|
|
||||||
# os.wait() returns a tuple with the pid and a 16 bit value |
|
||||||
# whose low byte is the signal number and whose high byte is the exit satus |
|
||||||
exit_status = os.wait()[1] >> 8 |
|
||||||
os._exit(exit_status) |
|
||||||
|
|
||||||
|
|
||||||
def heartbeat(): |
|
||||||
work_dir = '/data/openpilot' |
|
||||||
|
|
||||||
while True: |
|
||||||
try: |
|
||||||
with open(os.path.join(work_dir, "selfdrive", "common", "version.h")) as _versionf: |
|
||||||
version = _versionf.read().split('"')[1] |
|
||||||
|
|
||||||
tmux = "" |
|
||||||
|
|
||||||
# try: |
|
||||||
# tmux = os.popen('tail -n 100 /tmp/tmux_out').read() |
|
||||||
# except Exception: |
|
||||||
# pass |
|
||||||
|
|
||||||
params = Params() |
|
||||||
msg = { |
|
||||||
'version': version, |
|
||||||
'dongle_id': params.get("DongleId").rstrip().decode('utf8'), |
|
||||||
'remote': subprocess.check_output(["git", "config", "--get", "remote.origin.url"], cwd=work_dir).decode('utf8').rstrip(), |
|
||||||
'branch': subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"], cwd=work_dir).decode('utf8').rstrip(), |
|
||||||
'revision': subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=work_dir).decode('utf8').rstrip(), |
|
||||||
'serial': subprocess.check_output(["getprop", "ro.boot.serialno"]).decode('utf8').rstrip(), |
|
||||||
'tmux': tmux, |
|
||||||
} |
|
||||||
with Timeout(10): |
|
||||||
requests.post('http://%s/eon/heartbeat/' % HOST, json=msg, timeout=5.0) |
|
||||||
except Exception as e: |
|
||||||
print("Unable to send heartbeat", e) |
|
||||||
|
|
||||||
time.sleep(5) |
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__": |
|
||||||
unblock_stdout() |
|
||||||
heartbeat() |
|
Loading…
Reference in new issue