xref: /aosp_15_r20/external/angle/build/android/host_heartbeat.py (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker#!/usr/bin/env vpython3
2*8975f5c5SAndroid Build Coastguard Worker#
3*8975f5c5SAndroid Build Coastguard Worker# Copyright 2013 The Chromium Authors
4*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
5*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Worker"""Sends a heart beat pulse to the currently online Android devices.
8*8975f5c5SAndroid Build Coastguard WorkerThis heart beat lets the devices know that they are connected to a host.
9*8975f5c5SAndroid Build Coastguard Worker"""
10*8975f5c5SAndroid Build Coastguard Worker# pylint: disable=W0702
11*8975f5c5SAndroid Build Coastguard Worker
12*8975f5c5SAndroid Build Coastguard Workerimport sys
13*8975f5c5SAndroid Build Coastguard Workerimport time
14*8975f5c5SAndroid Build Coastguard Worker
15*8975f5c5SAndroid Build Coastguard Workerimport devil_chromium
16*8975f5c5SAndroid Build Coastguard Workerfrom devil.android import device_utils
17*8975f5c5SAndroid Build Coastguard Worker
18*8975f5c5SAndroid Build Coastguard WorkerPULSE_PERIOD = 20
19*8975f5c5SAndroid Build Coastguard Worker
20*8975f5c5SAndroid Build Coastguard Workerdef main():
21*8975f5c5SAndroid Build Coastguard Worker  devil_chromium.Initialize()
22*8975f5c5SAndroid Build Coastguard Worker
23*8975f5c5SAndroid Build Coastguard Worker  while True:
24*8975f5c5SAndroid Build Coastguard Worker    try:
25*8975f5c5SAndroid Build Coastguard Worker      devices = device_utils.DeviceUtils.HealthyDevices(denylist=None)
26*8975f5c5SAndroid Build Coastguard Worker      for d in devices:
27*8975f5c5SAndroid Build Coastguard Worker        d.RunShellCommand(['touch', '/sdcard/host_heartbeat'],
28*8975f5c5SAndroid Build Coastguard Worker                          check_return=True)
29*8975f5c5SAndroid Build Coastguard Worker    except:
30*8975f5c5SAndroid Build Coastguard Worker      # Keep the heatbeat running bypassing all errors.
31*8975f5c5SAndroid Build Coastguard Worker      pass
32*8975f5c5SAndroid Build Coastguard Worker    time.sleep(PULSE_PERIOD)
33*8975f5c5SAndroid Build Coastguard Worker
34*8975f5c5SAndroid Build Coastguard Worker
35*8975f5c5SAndroid Build Coastguard Workerif __name__ == '__main__':
36*8975f5c5SAndroid Build Coastguard Worker  sys.exit(main())
37